写真1 /procと,/proc/1の内容(Fedora 8の場合)
写真1 /procと,/proc/1の内容(Fedora 8の場合)
[画像のクリックで拡大表示]
[画像のクリックで拡大表示]
[画像のクリックで拡大表示]

 /procは,プロセスやメモリーなどのLinuxシステム上のリソース関連情報を,あたかもファイルであるかのように配置した仮想的なファイル・システム(写真1)である。仮想的とはいえ,通常のファイルと同じようにアクセスできる。Linux関連の標準仕様を定めた「Linux Standard Base(LSB)」の標準には記述されていないが,Red Hat系,Debian GNU/Linux系などの多くのLinuxディストリビューションが/procファイル・システムを備えている。

 /procには,プロセス関連情報やメモリー関連情報などが,ファイルとして配置されている(表1)。/procディレクトリにあるサブディレクトリの名前(数字)は,プロセスIDを意味する。写真1の下部に表示されているように,それぞれのディレクトリには,プロセスの状態を示すstatusや,実行パスを示すcmdlineなどのファイルが含まれる(表2)。psコマンドの出力と,statusの内容はほぼ一対一対応している。

 /procにあるcpuinfo(CPUの情報)や,partitions(パーティション情報),uptime(システムの駆動情報),version(Linuxカーネルのバージョン情報)などのファイルの値は,他のコマンドが情報を出力する際に直接参照されている。これらの値の実態は,稼働中のLinuxカーネルの内部情報である。

 例えば,/proc/sys以下には,システムの動作速度に関する情報がファイルとして配置されている。これらのファイルの内容を書き換えることで,カーネル内部の変数を変更できる。一例を挙げると,/proc/sys/dev以下には「./cdrom/autoeject」というファイルが存在し,メディアの自動排出動作を設定できる。また,/proc/sys/net以下にはネットワーク処理に使う設定ファイルが,/proc/sys/vm以下にはキャッシュ関連の設定ファイルが集められている。