Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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

Linux カーネルには、コンピューター上の物理デバイスへのアクセスを制御し、それらのデバイスとプロセスがいつ、どのような方法で情報のやりとりを行うかをスケジュールするという、2 つの主要な機能があります。/proc/ ディレクトリー( proc ファイルシステムとも呼ばれます)には、カーネルの現在の状態を表す特殊なファイルの階層が含まれており、アプリケーションとユーザーがシステムのカーネルビューにピア接続できるようにします。
/proc/ ディレクトリーには、システムハードウェアと実行中のプロセスの詳細情報が記載されています。さらに、/proc/ 内のファイルの一部は、ユーザーおよびアプリケーションが設定変更をカーネルと通信できるように操作できます。
/proc/ide/ ディレクトリーおよび /proc/pci/ ディレクトリー
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/ ファイル内のほとんどのファイルは、テキストファイルと同様に動作し、有用なシステムおよびハードウェアデータを人間が判読できるテキスト形式で保存します。そのため、catより 、以下を使用してそれらを表示できます。たとえば、システムの 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 などのツールを使用します。
特定のファイルは、root 権限でしかアクセスできない
/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 を実行します。
sysctl コマンド
/proc/sys/ サブディレクトリーの設定を変更するのに使用される別のコマンドは、/sbin/sysctl です。このコマンドについての詳しい情報は、を参照してください。 「sysctl コマンドの使用」
/proc/sys/ サブディレクトリーで利用可能なカーネル設定ファイルの一覧は、「/proc/sys/」 を参照してください。