Linuxカーネルの第一の機能は、コンピューターへの物理デバイスのアクセスを制御する事といつどのようにこれらのデバイスを相互に作用させるかスケジュールする事です。/procディレクトリには、実行中のLinuxカーネルの最新状態を示す仮想フォルダとファイルの階層が入っています。/proc内のファイルを見る事は、システム内のカーネルの状態を見ることです。さらに、これら仮想ファイルを使用すると、設定の変更内容をカーネルに伝えることができます。
Linuxでは、すべてのものがファイルとして保存されています。ユーザーの大部分はテキストファイルとバイナリファイルという基本的な2つのファイルタイプについて熟知していることと思います。しかし、/procディレクトリには、システムに接続されている物理的記憶装置に関連付けられたファイルシステムのいずれにも属さないファイルが含まれています。こうした/proc内の仮想ファイルはむしろ、仮想ファイルシステムの一部といえます。
/proc内の仮想ファイルにはおもしろい性質があります。大部分のファイルサイズは0バイトです。しかし、ファイルが表示されると、多くの情報が表示されます。さらに、大部分の日時設定は現在の日時を反映します。つまり、常に更新されているということです。
アプリケーションもシステム管理者も、カーネルの状態、マシンの属性、個々のプロセスの状態その他についての情報を得るための手段として、/procを使います。interrupts、meminfo、mounts、partitionsなどこのディレクトリ内の大部分のファイルは、システムの物理的な最新の状態を提供します。file systemsや/proc/sys/ディレクトリといったその他は、ソフトウェア設定情報を提供します。
簡単にするために、すべてのIDEデバイス用の/proc/ideのように、類似トピックの情報が入っているファイルは、仮想ディレクトリとサブディレクトリにグループ化されています。
cat、more、lessコマンドを/proc内のファイルと共に使用して、システムについての膨大な情報に即座にアクセスできます。たとえば、コンピュータで使用しているCPUの見る場合は、cat cpuinfoと入力すると、以下のような表示が得られます。
processor : 0 vendor_id : AuthenticAMD cpu family : 5 model : 9 model name : AMD-K6(tm) 3D+ Processor stepping : 1 cpu MHz : 400.919 cache size : 256 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr mce cx8 pge mmx syscall 3dnow k6_mtrr bogomips : 799.53 |
/proc内の様々な仮想ファイルを見ると、情報の一部は意味が分かります。一部は人間が読めないコードになっています。これが、ユーティリティが存在する理由で、それによって、これらのファイルからデータが抽出され、わかりやすく表示されます。そのようなアプリケーションの例としては、apm、freetopなどがあります。
![]() | 注意 |
|---|---|
/procのファイルの一部はルートユーザーのみ読み取り可能として設定されています。 |
一般的なルールとして、/proc内の多くの仮想ファイルは読み取り専用です。しかし、カーネルの設定で、調整できるファイルもあります。特に、/proc/sys/サブディレクトリのファイルが調整可能です。
仮想ファイルの値を変更するために、echoコマンドと>記号を使って、ファイルに新しい値をリダイレクトします。例えば、ホスト名を変更するには、以下のように入力します。
echo bob.subgenious.com > /proc/sys/kernel/hostname |
他のファイルはバイナリスイッチとして作用します。例えば、cat /proc/sys/net/ipv4/ip_forwardと入力すると、0または1が戻ります。0は、カーネルがネットワークパケットをフォワードしないという事を示します。echoコマンドを使って、ip_forwardファイルを1に変更すると、すぐにパケットがフォワードされます。
/proc/sys/内のいくつかのカーネル設定ファイルのリストは、/proc/sys/項を参照してください。