2.5. カーネル管理と課題解決

2.5. カーネル管理と課題解決

2.5.1. /procの確認

/procカーネル内のデータへのインターフェイスとなるファイルシステムのこと。

lsdevコマンド

デバイスごとのDMA(/proc/dma),IRQ(/proc/interrupts),I/Oアドレス(/proc/ioports)を表示するコマンド。

lsdev

lspciコマンド

すべてのPCIバスと接続されているPCIデバイスに関する情報を表示するコマンド。

lspci [オプション]
オプション意味
-v詳細に情報表示
-vvさらに詳細に情報表示
-tツリー上に表示
-bカーネルではなくPCIバス認識に沿って表示

lsusbコマンド

接続されているUSBデバイスに関する情報の表示をするコマンド。

lsusb [オプション]
オプション意味
-v詳細に情報表示
-tツリー上に表示

2.5.2. デバイスファイル

デバイスファイルはデバイスを抽象化したファイル/dev以下に存在する。
デバイスファイルにはブロックデバイスキャラクタデバイスの2種類がある。 それぞれファイルタイプはbcとなる。

  • ブロックデバイス
    • バッファを持ちランダムアクセスが可能
    • ブロック単位でアクセス可能
    • ハードディスク、フロッピーディスク、RAMディスク、RAIDボリュームなど
  • キャラクタデバイス
    • ランダムアクセスが不可能なデバイス
    • キーボード、マウス、プリンタなど

なおカーネルが認識しているデバイスは/proc/devicesファイルで確認可能。

2.5.3. udev

udevはデバイスファイルを管理するための仕組み
実際にはudevとsysfsが連携して管理するようになっている。 udevの仕組みは以下の通り。

  1. ハードウェアの接続をカーネルが検知
  2. 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