5. udev

昔は、そしてもし本当にそうしたければ今日でも、次のようなコマンドを使ってデバイスノードを作成していました。

mknod /dev/sdb1 b 8 3

このコマンドは、デバイスノード /dev/sdb1 を作成し、メジャー番号 8、マイナー番号 3 のブロックデバイス (b) として作成します。

デバイスを削除するには、単に /dev ディレクトリ内のデバイスファイルを rm するだけでした。

幸いなことに、udev のおかげで、私たちはもはやこれを行う必要がありません。udev システムは、デバイスが接続されているかどうかに応じて、デバイスファイルを動的に作成および削除します。システム上で udevd デーモンが実行されており、システムに接続されたデバイスに関するカーネルからのメッセージをリッスンします。Udevd はその情報を解析し、データを /etc/udev/rules.d で指定されたルールと照合します。これらのルールに応じて、ほとんどの場合、デバイスのデバイスノードとシンボリックリンクを作成します。独自の udev ルールを作成することもできますが、それはこのレッスンの範囲を少し超えています。幸いなことに、システムにはすでに多くの udev ルールが付属しているため、独自のルールを作成する必要はないかもしれません。

udevadm コマンドを使用して、udev データベースと sysfs を表示することもできます。このツールは非常に便利ですが、時には非常に複雑になることがあります。デバイスの情報を表示する簡単なコマンドは次のとおりです。

udevadm info --query=all --name=/dev/sda

ログインして学習進捗を保存

サインイン

演習

練習は完璧をもたらします!Linux でのハードウェアの相互作用とデバイス管理の理解を深めるための実践的なラボをいくつか紹介します。

  1. Linux でハードウェアデバイスを探索する - このラボでは、Linux 環境内でハードウェアデバイスを探索、識別、および検査するための不可欠なスキルを学びます。強力なコマンドラインユーティリティを実際に使用して、オペレーティングシステムが物理コンポーネントとどのように相互作用するかを理解する経験を積みます。これは、デバイスノードと udev の役割を理解するために不可欠です。

このラボは、実際のシナリオで概念を適用し、Linux ハードウェア管理に自信をつけるのに役立ちます。

クイズ

デバイスを動的に追加および削除するものは何ですか?