2.5. カーネル管理と課題解決
2.5.1. /procの確認
/procはカーネル内のデータへのインターフェイスとなるファイルシステムのこと。
lsdevコマンド
デバイスごとのDMA(/proc/dma),IRQ(/proc/interrupts),I/Oアドレス(/proc/ioports)を表示するコマンド。
lsdevlspciコマンド
すべてのPCIバスと接続されているPCIデバイスに関する情報を表示するコマンド。
lspci [オプション]| オプション | 意味 | 
|---|---|
| -v | 詳細に情報表示 | 
| -vv | さらに詳細に情報表示 | 
| -t | ツリー上に表示 | 
| -b | カーネルではなくPCIバス認識に沿って表示 | 
lsusbコマンド
接続されているUSBデバイスに関する情報の表示をするコマンド。
lsusb [オプション]| オプション | 意味 | 
|---|---|
| -v | 詳細に情報表示 | 
| -t | ツリー上に表示 | 
2.5.2. デバイスファイル
デバイスファイルはデバイスを抽象化したファイルで/dev以下に存在する。
デバイスファイルにはブロックデバイスとキャラクタデバイスの2種類がある。
それぞれファイルタイプはbとcとなる。
- ブロックデバイス- バッファを持ちランダムアクセスが可能
- ブロック単位でアクセス可能
- ハードディスク、フロッピーディスク、RAMディスク、RAIDボリュームなど
 
- キャラクタデバイス- ランダムアクセスが不可能なデバイス
- キーボード、マウス、プリンタなど
 
なおカーネルが認識しているデバイスは/proc/devicesファイルで確認可能。
2.5.3. udev
udevはデバイスファイルを管理するための仕組み。
実際にはudevとsysfsが連携して管理するようになっている。
udevの仕組みは以下の通り。
- ハードウェアの接続をカーネルが検知
- udevデーモンが必要なデバイスファイルを作成する
このため認識している分のデバイスファイルしか作成されないということになる。
またデバイスファイル作成の際に参照される設定ファイルは/etc/udev/rules.dとなる。
/etc/udev/rules.dの書式
この設定ファイルの書式は以下の通り。
認識キー==値, 代入キー==値またsysfsがどのデバイスを扱うかはudevadm infoコマンドで確認可能
udevadm infoコマンド
sysfsがデバイスをどのように扱っている確認できるコマンド。
udevadm info [オプション]| オプション | 意味 | 
|---|---|
| -a | 指定したデバイスの上位デバイスについても表示する | 
| -p デバイス | sysfsより上のデバイスを指定 | 
| -n デバイス | /dev以下のデバイスファイルを指定 | 
| -q 種類 | 表示する情報の種類を指定(name, symlink, path, env, all) | 
udevadm monitorコマンド
デバイスの検知をモニタリングするコマンド。
カーネルのイベントを監視して、udevのルールやイベントの表示を行える。
udevmonitorコマンドでも可能。
udevadm monitor