Udev
udevは3つの部分から構成される:
ライブラリlibudevはデバイスの情報にアクセスするために利用される。
デーモンudevdはユーザー空間で動作し、仮想的な/devを管理する。
管理用コマンドudevadmは診断情報出力のために用いられる。
udevはnetlinkソケット経由でカーネルからの呼び出しを受ける。初期のバージョンでは、hotplugを使用し、その目的で/etc/hotplug.d/defaultにudev自身へのリンクを追加していた。
udevは一般的なカーネルデバイス管理ツールである。Linuxシステム上のデーモンとして動作する。新しいデバイスがシステムに装着され初期化された場合、またはデバイスがシステムから接続を解除された場合、カーネルはnetlink(英語版)ソケット経由でueventsをudevに送信し、udevはこれを受信する。システムはイベント条件と発見したデバイスの特性に対しマッチするルール一式(rulesファイル)を供給する。マッチングルールにより、うまくいけばデバイス名が決定され、デバイスノードが実際に作成される。そして、プログラムとデバイスのセットアップを行う。
udevのrulesファイルはカーネルサブシステム、カーネルデバイス名、デバイスの物理的配置、またはデバイスのシリアル番号のような特性などによるマッチングルールで構成される。また、rulesファイルにより、デバイス名を付けたり、またはシステムによって発見されたデバイスの順番を無視し、常に同一の名前になるよう特別なデバイス名を付ける目的で、外部のプログラムに情報を要求することも可能である。