/dev/ja

/dev ディレクトリ
多くの Linux ユーザは、 はカーネルが認識した最初のディスクの最初のパーティションを指す最短の手段だということを知っています. これはとても平易でしょう.

しかし、USB や IEEE 1394、ホットスワップ可能な PCI などのホットプラグ対応デバイスを考えてみてください. 最初のデバイスというのはこれらのうちどれのことでしょう？ そして、いつまで最初のデバイスといえるのでしょう？ 最初のデバイスが消えたとき、他のデバイスは何と名付けられるのでしょうか？ それは進行中の処理に影響するでしょうか？ 誰かが(たまたま最初のプリンターになっていた)レーザープリンターのプラグを引っこ抜いたというだけの理由で、印刷ジョブが高性能なレーザープリンターからほとんど壊れかけのマトリックスプリンターに突然移ってしまったとしたら、笑ってしまいませんか？

デバイスマネージャに入ってみましょう. （ や  のような）今どきのデバイスマネージャならば必ず:


 * ユーザスペースで動作します.
 * 動的にデバイスファイルが生成されたり削除されたりします.
 * 一貫したデバイス命名を行います.
 * ユーザスペースのアプリケーション・プログラム・インターフェイス(API)を提供します.

デバイスの構造に変化が生じるたびにカーネルは uevent を発行し、デバイスマネージャがそれを受け取ります. それから、デバイスマネージャは 、  および  ディレクトリで定義されたルールに従います. uevent 内に含まれている情報を元に実行する必要があるルール(群)を探し必要なアクションを行います. これらのアクションにはデバイスファイルの作成・削除も含まれており、また特定のファームウェアファイルのカーネルメモリへの読み込みも実行します.