/procディレクトリには、実行中のLinuxカーネルの最新状態を示すウィンドウとなる仮想ファイルが入っています。これにより、システム内のカーネルの状態を効果的に示す膨大な情報を見ることができます。さらに、/procディレクトリを使用すると、特定の設定の変更内容をカーネルに伝えることができます。
Linuxでは、すべてのものがファイル内に保存されています。ユーザーの大部分はテキストファイルとバイナリファイルという基本的な2つのファイルタイプについて熟知していることと思います。しかし、/procディレクトリにはハードディスク、CD-ROM、その他ユーザーのシステムに接続されている物理的記憶装置(論議の余地はありますが、RAMは除く)に関連付けられたファイルシステムのいずれにも属さないファイルが含まれています。こうしたファイルはむしろ、コンパイルされたときにLinuxカーネル内で有効か、あるいは無効にされる仮想ファイルシステムの一部といえます。
デフォルトでは、Red Hat Linuxシステムが起動すると、/etc/fstab内のある行が/procファイルシステムのマウントを行います。
none /proc proc defaults 0 0 |
/procが現在マウントされているかどうかは、引数なしでmountコマンドを入力することで判断することができます。これにより、現在マウントされているものすべてが表示されます。/procがマウントされている場合には、一覧の中に次のような行が表示されるはずです。
none on /proc type proc (rw) |
/procを手動でマウントする場合は、次のコマンドを入力します。
mount -t proc proc /proc |
/proc仮想ファイルシステムはLinuxカーネルの設定のスイッチです。デフォルトでは有効になっています。何らかの理由によりシステム上で完全に /procを無効にするには、カーネルを再構築する際に、config、menuconfig、xconfigのファイルシステム設定セクション内の/proc file system supportを選択解除します。そして、/etc/fstabの/proc行をコメントアウトして、マウントされないようにします。
仮想ファイルシステムの/procを理解する最もよい方法は、ディレクトリのファイルの一覧を表示することです。この一覧の一部を次に掲載します。
[root@bleach /]# ls -l /proc -r--r--r-- 1 root root 0 May 3 11:42 cmdline -r--r--r-- 1 root root 0 May 3 11:42 cpuinfo -r--r--r-- 1 root root 0 May 3 11:42 devices -r--r--r-- 1 root root 0 May 3 11:42 dma dr-xr-xr-x 2 root root 0 May 3 11:42 driver -r--r--r-- 1 root root 0 May 3 11:42 execdomains -r--r--r-- 1 root root 0 May 3 11:42 fb -r--r--r-- 1 root root 0 May 3 11:42 filesystems [root@bleach /]# |
/proc仮想ファイルにはおもしろい性質があります。まず、大部分のファイルサイズは0バイトです。しかし、ファイルが表示されると、多くの情報が表示されます。さらに、大部分の日時設定は現在の日時を反映します。つまり、常に更新されているということです。
さまざまなプログラムで/procファイルシステムを使用して、パフォーマンスの向上と機能の充実のため、システムのパラメータを検出しています。
さらに、システム管理者は/procをカーネルの状態、コンピュータの属性、個々のプロセスの状態などについての情報にアクセスする簡単な方法として使用できます。interrupts、meminfo、 mounts、partitionsなどこのディレクトリ内の大部分のファイルは、システムの最新の環境を提供します。簡単にするために、類似トピックの情報が入っているファイルは/proc/ideなどの仮想ディレクトリとサブディレクトリにグループ化されています。
cat、more、lessコマンドを/proc内のファイルと共に使用して、システムについての膨大な情報に即座にアクセスできます。たとえば、コンピュータ上の現在のメモリレジスタの割り当てを表示する場合は、次のように入力します。
[root@bleach /]# cat /proc/iomem 00000000-0009fbff : System RAM 0009fc00-0009ffff : reserved 000a0000-000bffff : Video RAM area 000c0000-000c7fff : Video ROM 000f0000-000fffff : System ROM 00100000-03ffcfff : System RAM 00100000-002557df : Kernel code 002557e0-0026c80b : Kernel data 03ffd000-03ffefff : ACPI Tables 03fff000-03ffffff : ACPI Non-volatile Storage dc000000-dfffffff : S3 Inc. ViRGE/DX or /GX e3000000-e30000ff : Lite-On Communications Inc LNE100TX e3000000-e30000ff : eth0 e4000000-e7ffffff : Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge ffff0000-ffffffff : reserved [root@bleach /]# |
あるいは、(もっと便利な機能として)、接続先が知らないコンピュータで、そのCPUタイプと速度が知りたい場合は、次のコマンドを入力します。
[root@bleach /]# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 6 model name : Celeron (Mendocino) stepping : 0 cpu MHz : 416.537 cache size : 128 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov bogomips : 830.66 [root@bleach ide]# |
このように、情報の一部は意味がわかるものですが、一部はよくわからないコードになっています。/procファイルの一部は、解説がなければわかりません。多くの場合、freeやtopなどのユーティリティがシステムにあり、それによって、これらのファイルからデータが抽出され、わかりやすく表示されます。
仮想ファイルのもう1つのおもしろいい性質は、moreコマンドを使用して表示するとわかります。これにより、現在表示しているドキュメントのパーセントが表示され、ファイル内での位置がわかります。このパーセントの数字は、長いファイル内をナビゲーションしていくと増加します。ただし、/proc仮想ファイルを表示している場合は、パーセントは変化せず、常に0%のままです。
/procのファイルの一部はルートユーザーのみ読み取り可能として設定されているので、読み取るためにはルートユーザーになる必要があります。
![]() | 警告 |
|---|---|
/procでkcoreファイルを表示しないようにしてください。この仮想ファイルにはカーネルのメモリのイメージが入っているので、ファイルの内容が端末に表示されるとおかしくなります。正しいコマンド行プロンプトに戻るには、Ctrl-Cキーを押したあと、resetを入力してください。 |