すべてのハードウェアはデバイスファイルとして抽象化され、デバイスファイルの読み書きによって、ハードウェアにアクセスします。
デバイスファイルはudevによって自動的に作成され、udevが作ったデバイスファイルは/dev配下に作成されます。
●デバイスの接続に必要なデバイスファイルは下記の流れで自動作成されます。
①新たにデバイスを接続すると、まずカーネルが認識します。
②カーネルがデバイス情報を検知し/sys配下にデバイス情報を作成 ※★1
③D-Busによってデバイス情報がudev(udevd)デーモンへ伝えられ、そのデバイス情報をudev(udevd)デーモンが参照し、/dev配下にデバイスファイルを作成する。※★2
※★1
カーネル内部のデータをアプリケーションが直接参照できないため sys fs(sys ファイルシステム)という、
動作中のカーネルの内部構造を仮想的なファイルシステムで表示させる仕組みで、 /sys ディレクトリ配下にデバイス名のついたディレクトリを作成し表示させ、アプリケーションから参照したり変更したりできるようになっています。
※★2
D-Bus(Desktop Bus)という、アプリケーション間で情報を交換するシステムが、デバイス情報をudev(udevd)デーモンに伝えます。