Red Hat Training

A Red Hat training course is available for Red Hat Linux

付録E proc ファイルシステム

Linux カーネルには、コンピューター上の物理デバイスへのアクセスを制御し、それらのデバイスとプロセスがいつ、どのような方法で情報のやりとりを行うかをスケジュールするという、2 つの主要な機能があります。/proc/ ディレクトリ (別名 proc ファイルシステム) には、カーネルの現在の状況を示す特殊なファイルの階層が含まれています。これにより、アプリケーション及びユーザーがシステムのカーネルビューを確認することができます
/proc/ ディレクトリには、システムのハードウェア及び実行中のプロセスに関する詳細情報が大量に格納されています。又、/proc/ 内のファイルの一部をユーザーやアプリケーションが操作することによって、設定の変更をカーネルに伝達することもできます。

注記

2.6 カーネルの後続バージョンでは、/proc/ide/ 及び /proc/pci/ のディレクトリは廃止されています。/proc/ide/ ファイルシステムに代わって sysfs 内のファイルが使用されるようになったので、PCI デバイ上の情報を取得するには、代わりに lspci を使用して下さい。sysfs または lspci に関する詳しい情報は、それぞれの man ページを参照して下さい。

E.1. 仮想ファイルシステム

Linux システムでは、すべてのデータが ファイル として保管されます。大半のユーザーは、主要な 2 つのファイルタイプ (テキストとバイナリ) について精通していますが、/proc/ ディレクトリには、仮想ファイル と呼ばれる別のタイプのファイルも含まれています。このため、/proc/ は、仮想ファイルシステム と呼ばれる場合もよくあります。
仮想ファイルには、固有の性質があります。大半の仮想ファイルは、サイズがゼロバイトで表示されていても、表示すると大量の情報が格納されている場合があります。又、仮想ファイルの時刻及び日付のスタンプの大半は、現在の時刻と日付を反映します。これは、常に更新されていることを示しています。
/proc/interrupts/proc/meminfo/proc/mounts、及び /proc/partitions などの仮想ファイルは、システムのハードウェアの最新状態のビューを提供します。/proc/filesystems ファイルや /proc/sys/ ディレクトリなど、その他の仮想ファイルは、システムの設定情報及びインターフェースを提供します。
情報を体系化するために、同様のトピックに関する内容が記載されたファイルは、仮想ディレクトリ/サブディレクトリにグループ化されます。プロセスディレクトリには、システムで実行中の各プロセスに関する情報が格納されます。

E.1.1. 仮想ファイルの表示

/proc/ ファイル内の大半のファイルは、テキストファイルと同様に機能し、システム及びハードウェアの有用なデータを人間が読み取れるテキスト形式で保管します。このため、catmoreless などを使用して内容を表示することができます。例えば、システムの CPU に関する情報を表示するには、cat /proc/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/ 内のファイルの一部には、人間には読み取れない情報が含まれています。このようなファイルから情報を取得するには、lspciapmfreetop などのツールを使用して下さい。

注記

/proc/ ディレクトリ内の仮想ファイルには、root ユーザーしか読み取れないものがあります。

E.1.2. 仮想ファイルの変更

原則として、/proc/ ディレクトリ内の仮想ファイルの大半は読み取り専用です。但し、一部は、カーネルの設定を調整するのに使用することができます。これは特に /proc/sys/ サブディレクトリ内のファイルに該当します。
仮想ファイルの値を変更するには、以下のコマンドを使用します:
echo value > /proc/file
例えば、オンザフライでホスト名を変更するには、以下のコマンドを実行します:
echo www.example.com > /proc/sys/kernel/hostname
その他のファイルは、バイナリまたはブールスイッチとして機能します。cat /proc/sys/net/ipv4/ip_forward と入力すると、0 (off または false) もしくは 1 (on または true) と返されます。0 は、カーネルがネットワークパケットを転送していないことを示します。パケット転送をオンにするには、echo 1 > /proc/sys/net/ipv4/ip_forward を実行して下さい。

注記

/proc/sys/ サブディレクトリ内の設定を変更するためのもう 1 つのコマンドは、/sbin/sysctl です。このコマンドについての詳しい情報は、「sysctl コマンドの使用」 を参照して下さい。
/proc/sys/ サブディレクトリ内で使用可能な一部のカーネル設定ファイルの一覧は、「/proc/sys/」 を参照して下さい。