/procディレクトリのトップレベルにある大部分のファイルには、Linuxカーネルとシステム一般の状態について重要な情報が保存されています。
/procディレクトリ内とそのさまざまなサブディレクトリ内のファイルの内容は、システムについての情報によって異なります。つまり、コンピュータが異なれば、同じ/procファイル内の情報も異なることがあるということです。さらに、Linuxカーネルのバージョンとシステムに接続されているデバイスによっては、ここで説明するファイルが/procディレクトリ内にない場合もあります。逆に、ここで説明していないファイルやディレクトリがシステムにある場合もあります。
ここでは、これらのファイルとその情報について、包括的な一覧を掲載するつもりはありません。一般的で有益なファイルを掲載します。これは、システム管理者が、他のツールが使えないときにシステム内で現在のデータを検索できるようにするためです。
このファイルは、Advanced Power Management (APM)の状態とシステムについての意見に関する情報を提供します。この情報は、カーネルがapmコマンドに対して情報を提供するために使用されます。
パッテリを使用せず、常にAC電源に接続されているシステム上のファイル出力は次のようになります。
1.14 1.2 0x03 0x01 0xff 0x80 -1% -1 ? |
これらのシステムでapmコマンドを実行すると、次のような結果が出力されます。
[root@bleach /proc]# apm -v APM BIOS 1.2 (kernel driver 1.14) AC on-line, no system battery [root@bleach /proc]# |
これらのシステムでは、apmによって、コンピュータがスタンバイモードになるだけでなく、スリープ状態になります。この状態は、システムのBIOSがこれをサポートしている場合のみ可能です。システムがスタンバイ状態になるように設計されていないシステムで行うと、システムが不安定になります。
apmコマンドはラップトップやポータブルLinuxシステムに使うと便利です。このコマンドは、/proc/apmファイルにも反映されます。電源に接続された、Linuxを実行しているラップトップ上のファイルの出力例は次のとおりです。
1.14 1.2 0x03 0x01 0x03 0x09 100% -1 ? |
同じコンピュータを電源から切断し、電池で数分間動作させた場合、apmファイルの内容は次のように変わります。
1.14 1.2 0x03 0x00 0x00 0x01 99% 1792 min |
この状態では、apmマンドによって、このデータから読み取り可能な情報が出力されます。
[ed@blink /]$ apm -v APM BIOS 1.2 (kernel driver 1.14) AC off-line, battery status high: 99% (1 day, 5:52) [ed@blink /]$ |
これは、生の/procファイルと特定の目的のためにこの情報を使用するユーティリティとの間が接続されていることを示します。
このファイルは、起動時にLinuxカーネルに渡されるパラメータを表示します。/proc/cmdlineファイルの出力例は次のとおりです。
auto BOOT_IMAGE=linux ro root=305 BOOT_FILE=/boot/vmlinuz-2.4.2-2 |
このファイルに保存されている重要なデータは次のように分類されます。
BOOT_IMAGE=linux。コンピュータを起動するために使用するイメージ名を提供します。
ro。カーネルが読み取り専用でロードされることを意味します。
BOOT_FILE=/boot/vmlinuz-2.4.2-2 はシステムを起動するために使用する実際のLinuxカーネルファイルを表します。
このファイルはシステムのプロセッサタイプに応じて変わります。出力は理解しやすいものです。このファイルの出力例は次のとおりです。
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 6 model name : Celeron (Mendocino) stepping : 0 cpu MHz : 334.099 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 : 666.82 |
ここで多くの情報が得られます。重要なものは次のとおりです。
processor 各プロセッサに識別番号を提供します。1つのプロセッサしかない場合は、0が表示されます。複数のプロサッサのあるコンピュータを使用している場合は、各プロセッサには独自の番号と情報が提供されます。番号は一覧の上から下へ1つずつ増えていきます。
cpu family システムのプロセッサタイプを正式に表示します。"86"の前に数字を入力して、値を計算します。古いシステム(686、586、486、386)のアーキテクチャについて知りたい場合、特に便利です。RPMパッケージは特定のアーキテクチャ用にコンパイルされていることがあるので、この値によって、システムにインストールするパッケージがわかります。
model name プロセッサの一般的な名前とプロジェクト名を表示します。
cpu MHz 特定のプロセッサの正確な速度をMHz(千単位)で表示します。
cache size プロセッサに利用できるレベル2メモリキャッシュの容量を表示します。
flags FPUの有無やMMX指示を処理できるかどうかなど、プロセッサについて多くの機能を定義します。
このファイルはカーネルで使用するよう現在設定されているさまざまなキャラクタデバイスとブロックデバイスを表示します。利用できてもカーネルにロードされていないモジュールは含まれていません。このファイルの出力例は次のとおりです。
Character devices: 1 mem 2 pty 3 ttyp 4 ttyS 5 cua 7 vcs 10 misc 29 fb 36 netlink 128 ptm 136 pts 162 raw 180 usb Block devices: 1 ramdisk 2 fd 3 ide0 9 md 22 ide1 |
/proc/devicesからの出力には、デバイスのメジャー番号と名前が含まれています。
キャラクタデバイスはブロックデバイスと類似していますが、次の2つの相違点があります。
まず、ブロックデバイスには、送信されてくる要求に利用できるバッファがあり、要求を処理する前に順序付けをすることができます。要求をデバイスに書き込む前に順番を付けることができると、効率のよい順番に配置できるので、ハードディスクドライブなど情報を保存するためのデバイスにはとても便利です。キャラクタデバイスにはこの種のバッファリングは必要ではありません。
次に、ブロックデバイスは特定サイズのブロック単位で情報を送受信できます。これは特定デバイスの要件に合うように設定できます。キャラクタデバイスでは、あらかじめ設定されたサイズはなく、適切と判断したサイズでデータを送信します。
特定のデバイスがブロックデバイスであるかキャラクタデバイスであるかを確認するには、ls -l<device-name>コマンドを入力します。応答の最初の文字がbの場合は、ブロックデバイスです。cの場合は、キャラクタデバイスです。たとえば、/devディレクトリの一般的なデバイス(hdaは最初のIDEハードディスクドライブで、tty0は最初の端末ポート)からの出力を見てみましょう。
[root@bleach /]# ls -l /dev/hda /dev/tty0 brw-rw---- 1 root disk 3, 0 Mar 23 23:37 /dev/hda crw--w---- 1 truk truk 4, 0 May 3 16:28 /dev/tty0 [root@bleach /]# |
デバイスについての詳細情報は、/usr/src/linux-2.4/Documentation/devices.txtに保存されています。
このファイルは、Linuxカーネルが現在サポートしている実行ドメインと、サポートしているパーソナリティの範囲の一覧を表示します。
0-255 Linux [kernel] |
実行ドメインを特定のオペレーティングシステムの「パーソナリティ」と考えます。Solaris、UnixWare、FreeBSDなど他のバイナリフォーマットもLinuxで使用できます。Linuxで実行しているタスクのパーソナリティを変更して、オペレーティングシステムが、特定のバイナリからの特定のシステム呼び出しを処理する方法を変更できます。PER_LINUX実行ドメイン以外は、動的にロード可能なモジュールとして実装できます。
このファイルには、フレームバッファデバイス、その番号、それを制御するドライバなどの一覧が保存されています。フレームバッファデバイスを搭載したシステムの/proc/fbの典型的な出力例は次のとおりです。
0 VESA VGA |
このファイルは、カーネルが現在サポートしているファイルシステムタイプの一覧を表示します。汎用カーネルの/proc/filesystemsファイルの出力例は次のとおりです。
nodev sockfs nodev tmpfs nodev shm nodev pipefs nodev proc ext2 iso9660 nodev devpts nodev usbdevfs nodev autofs |
最初のカラムは、ファイルシステムがブロックデバイスにマウントされているかどうかを示します。このカラムのnodevは、ファイルシステムがブロックデバイスにマウントされていないことを示します。2番目のカラムは、サポートされているファイルシステムの名前を表示します。
この情報は、mountコマンドで使用して、引数として指定されているファイルシステムがない場合に、指定できるファイルシステムを検索します。
このファイルはx86アーキテクチャ上でIRQごとの割り込み数を記録します。標準的な/proc/interruptsは次のとおりです。
CPU0 0: 8399367 XT-PIC timer 1: 339 XT-PIC keyboard 2: 0 XT-PIC cascade 5: 80111 XT-PIC usb-uhci, eth0 8: 1 XT-PIC rtc 12: 6107 XT-PIC PS/2 Mouse 14: 60324 XT-PIC ide0 15: 541741 XT-PIC ide1 NMI: 0 ERR: 0 |
マルチプロセッサのコンピュータの場合、このファイルは多少異なります。
CPU0 CPU1 0: 1366814704 0 XT-PIC timer 1: 128 340 IO-APIC-edge keyboard 2: 0 0 XT-PIC cascade 8: 0 1 IO-APIC-edge rtc 12: 5323 5793 IO-APIC-edge PS/2 Mouse 13: 1 0 XT-PIC fpu 16: 11184294 15940594 IO-APIC-level Intel EtherExpress Pro 10/100 Ethernet 20: 8450043 11120093 IO-APIC-level megaraid 30: 10432 10722 IO-APIC-level aic7xxx 31: 23 22 IO-APIC-level aic7xxx NMI: 0 ERR: 0 |
最初のカラムはIRQ番号です。システム内の各CPUには、独自のカラムとIRQごとの割り込み数があります。次のカラムは、割り込みタイプ、最後のカラムにはIRQにあるデバイス名です。
このファイル内の各割り込みタイプはアーキテクチャ固有なので、それぞれ意味することが多少異なります。x86コンピュータの場合、一般的な値は次のとおりです。
XT-PIC 長い間生じている従来のATコンピュータの割り込み。
IO-APIC-edge この割り込みで電圧信号がロウからハイに推移すると、エッジが作成されます。ここで割り込みが生じ、1度だけ信号が生成されます。この種の割り込みは、IO-APIC-level割り込みと同じように、586ファミリ以上のプロセッサを搭載したシステムでのみ生じます。
IO-APIC-level 電圧信号がハイになると、その信号が再度ロウになるまで割り込みが生成されます。
このファイルは、さまざまなデバイス向けに、システムの現在のメモリマップを表示します。
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 |
最初のカラムは異なる各メモリタイプで使用するメモリレジスタを表示します。2番目のカラムは、これらのレジスタ内にあるメモリの種類を示します。特に、このカラムでは、システムのRAM内でカーネルが使用するメモリレジスタを表示し、NICに複数のイーサネットポートがある場合は、各ポートに割り当てられているメモリレジスタも表示します。
/proc/iomemと同様、/proc/ioportsはデバイスとの入出力通信に使用する現在登録されているポート領域の一覧を表示します。このファイルはきわめて長くなることがありますが、開始は次のようになります。
0000-001f : dma1 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0070-007f : rtc 0080-008f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 |
最初のカラムには2番目のカラムに表示されているデバイスのために予約されている実際のIOポートアドレス範囲が表示されます。
このファイルはシステム上のISAスロット内のプラグ&プレイ(PnP)カードを表示します。これはサウンドカードの場合が多く、デバイスの数に制限はありません。/proc/isapnp ファイルにサウンドブラスターのエントリがある場合は、次のようになります。
Card 1 'CTL0070:Creative ViBRA16C PnP' PnP version 1.0 Product version 1.0
Logical device 0 'CTL0001:Audio'
Device is not active
Active port 0x220,0x330,0x388
Active IRQ 5 [0x2]
Active DMA 1,5
Resources 0
Priority preferred
Port 0x220-0x220, align 0x0, size 0x10, 16-bit address decoding
Port 0x330-0x330, align 0x0, size 0x2, 16-bit address decoding
Port 0x388-0x3f8, align 0x0, size 0x4, 16-bit address decoding
IRQ 5 High-Edge
DMA 1 8-bit byte-count compatible
DMA 5 16-bit word-count compatible
Alternate resources 0:1
Priority acceptable
Port 0x220-0x280, align 0x1f, size 0x10, 16-bit address decoding
Port 0x300-0x330, align 0x2f, size 0x2, 16-bit address decoding
Port 0x388-0x3f8, align 0x0, size 0x4, 16-bit address decoding
IRQ 5,7,2/9,10 High-Edge
DMA 1,3 8-bit byte-count compatible
DMA 5,7 16-bit word-count compatible |
このファイルは、ここに表示するデバイス数やその要件、あるいはリソース要求によっては、きわめて長くなることがあります。
各カードには、その名前、プラグ&プレイバージョン番号、製品バージョン番号が表示されています。デバイスがアクティブで設定されている場合、このファイルはデバイスのポートとIRQ番号も表示します。さらに、互換性の目的で、カードで多くの異なるパラメータのpreferredとacceptable値も指定します。目的は、プラグ&プレイカードが相互に正常に動作するようにし、IRQやポートとのコンフリクトを回避することです。
このファイルはシステムの物理メモリを表し、コアファイルフォーマットで保存されます。大部分の/procファイルと異なり、kcoreはサイズを表示します。この値はバイト単位で、使用される物理メモリ(RAM)のサイズに4Kバイトを加えたものです。
catコマンドを発行したり、このファイルを表示したりしないでください。この内容はgdb、GNUデバッガなどのデバッガが検査するためのものです。
このファイルを表示する権利があるのは、ルートユーザーのみです。
このファイルは、カーネルが生成したメッセージを保持しておくために使用します。これらのメッセージは、klogdなど他のプログラムが取り出します。
このファイルには、モジュールツールが動的にロード可能モジュールをリンクし結合するために使用する、カーネルがエクスポートしたシンボル定義が保存されています。
e003def4 speedo_debug [eepro100] e003b04c eepro100_init [eepro100] e00390c0 st_template [st] e002104c RDINDOOR [megaraid] e00210a4 callDone [megaraid] e00226cc megaraid_detect [megaraid] |
2番目のカラムには、カーネル機能の名前が表示されます。最初のカラムには、カーネル内のその機能のメモリアドレスが表示されます。最後のカラムには、その機能を提供するためにロードされたモジュールの名前が表示されます。
このファイルは、一定期間のロード平均、あるいはプロセッサの使用率、uptimeや他のコマンドが使用する追加データを表示します。loadavgファイルの出力例は次のとおりです。
0.20 0.18 0.12 1/80 11206 |
最初の3つのカラムは、1分、5分、10分間隔で、最新のCPU使用率の測定値を表します。4番目のカラムは、現在実行されているプロセス数とプロセス総数を表示します。最後のカラムは、最後に使用したプロセスIDを表示します。
このファイルは、カーネルが現在ロックしているファイルを表示します。このファイルには、カーネルの内部デバッグデータが保存されており、ファイル内容はシステムの使用によって大きく異なります。負荷の軽いシステムのlocksファイルの出力例は次のとおりです。
1: FLOCK ADVISORY WRITE 807 03:05:308731 0 EOF c2a260c0 c025aa48 c2a26120 2: POSIX ADVISORY WRITE 708 03:05:308720 0 EOF c2a2611c c2a260c4 c025aa48 |
各ロックに対して、各行の始めに固有の番号が割り当てられます。2番目のカラムは、使用ロッククラスを示します。FLOCKは、flockシステム呼び出しからの従来のスタイルのUNIXファイルロックを表し、POSIXは、lockfシステム呼び出しからの新しいPOSIXロックを表します。
3番目のカラムには2つの値があります。ADVISORYは、ロックしても他のユーザーがデータにアクセスできることを意味します。つまり、他のユーザーがロックすることを防止するのみです。MANDATORYは、ロックされている間、他のユーザーがデータにアクセスできないことを意味します。4番目のカラムは、ロックによってREADアクセス権かWRITEアクセス権を持つユーザーがファイルにアクセスできるようにするかどうかを示します。5番目のカラムは、ロックを保持するプロセスのIDを示します。
6番目のカラムは、ロックされるファイルのIDを示します。フォーマットは、MAJOR-DEVICE:MINOR-DEVICE:INODE-NUMBERです。7番目のカラムは、ファイルのロックされた領域の開始と終了を示します。残りのカラムは、特定のデバッグに使用された内部カーネルデータ構造を示すもので、無視してかまいません。
このファイルにはマルチプルディスク、RAID設定の現在の情報が保存されています。システムにこのような設定がない場合、mdstatファイルは次のようになります。
Personalities : read_ahead not set unused devices: <none> |
mdデバイスを作成し、使用しない限り、本当におもしろい機能は発揮できません。このデバイスを作成し、使用している場合は、mdstatを使用して、mdXデバイスで現在何が生じているかを知ることができます。
この/proc/mdstatファイルは、システムにRAID 1デバイスとして構成されたmd0を示します。ここで、ファイルは、ディスクを現在再同期化しており、完了パーセントと残り時間の推定値が表示されます。
Personalities : [linear] [raid1] read_ahead 1024 sectors md0: active raid1 sda2[1] sdb2[0] 1943840 blocks [2/2] [UU] resync=1% finish=12.3min algorithm 2 [3/3] [UUU] unused devices: <none> |
これは、よく使われる/procファイルの1つです。システム上の現在のRAM使用率についての貴重な情報をレポートします。256MバイトのRAMと384Mバイトのスワップ領域を持つシステムには、次のような/proc/meminfoファイルがある場合があります。
total: used: free: shared: buffers: cached: Mem: 261709824 253407232 8302592 0 120745984 48689152 Swap: 402997248 8192 402989056 MemTotal: 255576 kB MemFree: 8108 kB MemShared: 0 kB Buffers: 117916 kB Cached: 47548 kB Active: 135300 kB Inact_dirty: 29276 kB Inact_clean: 888 kB Inact_target: 0 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 255576 kB LowFree: 8108 kB SwapTotal: 393552 kB SwapFree: 393544 kB |
この情報の多くは、topコマンドで使用します。実際、freeコマンドの出力はmeminfoの内容と構造によく似ています。meminfoを見ると、メモリの詳細がわかります。
Mem システム内の物理RAMの現在の状況を表示します。メモリ総容量、使用メモリ、空きメモリ、共有メモリ、バッファメモリ、キャッシュメモリの使用率をバイト単位で表示します。
Swap スワップ領域の総容量、使用容量、空き容量をバイト単位で表示します。
MemTotal 物理RAMの総容量。Kバイト単位。
MemFree 物理RAMの空き容量。Kバイト単位。
MemShared 2.4以降のカーネルでは使用しませんが、以前のカーネルバージョンの互換性のためにあります。
Buffers ファイルバッファに使用した物理RAMの容量。Kバイト単位。
Cached キャッシュメモリとして使用される物理RAMの容量。Kバイト単位。
Active 実際に使用しているバッファメモリか、ページキャッシュメモリの容量。Kバイト単位。
Inact_dirty 空にできるバッファメモリか、キャッシュページメモリの総容量。Kバイト単位。
Inact_clean バッファかキャッシュページの空き容量合計。Kバイト単位。
Inact_target 1分平均の1秒当たり正味割り当て量。Kバイト単位。
HighTotalとHighFree カーネル領域に直接マッピングされないメモリの総容量と空き容量。HighTotalの値は、使用するカーネルタイプによって異なります。
LowTotalとLowFree カーネル領域に直接マッピングされるメモリの総容量と空き容量。LowTotalの値は使用カーネルタイプによって異なります。
SwapTotal 利用可能なスワップ容量。Kバイト単位。
SwapFree 空きスワップの総容量。Kバイト単位。
このファイルは、番号10のメジャーデバイス上に登録されているドライバを一覧表示します。
135 rtc 1 psaux 134 apm_bios |
最初のカラムは各デバイスのマイナー番号で、2番目のカラムは使用ドライバです。
ファイルにはシステムがロードしたすべてのモジュールの一覧が表示されます。その内容はシステムの設定と用途によって異なりますが、次の/proc/modulesファイル出力の例と似たような構成になっています。
tulip 38544 1 (autoclean) ide-cd 26848 0 (autoclean) cdrom 27232 0 (autoclean) [ide-cd] autofs 11264 1 (autoclean) ipchains 38976 0 (unused) usb-uhci 20720 0 (unused) usbcore 49664 1 [usb-uhci] |
最初のカラムはモジュール名です。2番目のカラムは、モジュールのメモリサイズをバイト単位で表します。3番目のカラムは、モジュールが現在ロードされているか(1)、ロードされていないか(0)を示します。最後のカラムは、使用されていない一定期間の後、モジュールが自動的にアンロードされるか(autoclean)使用されていないか(unused)を示します。名前がかっこ([または])内に入っているモジュールは、このモジュールが機能するには別のモジュールが必要であることを意味します。
このファイルはシステムが使用しているすべてのマウントの一覧を提供します。
/dev/root / ext2 rw 0 0 /proc /proc proc rw 0 0 usbdevfs /proc/bus/usb usbdevfs rw 0 0 /dev/hda1 /boot ext2 rw 0 0 /dev/hda7 /home ext2 rw 0 0 none /dev/pts devpts rw 0 0 automount(pid696) /misc autofs rw 0 0 |
この出力は/etc/mtabの内容と似ていますが、/proc/mountが最新のものである点が異なります。
最初のカラムはマウントされているデバイスを示します。2番目のカラムはマウントポイントを表します。3番目のカラムはファイルシステムタイプを示します。4番目のカラムは、読み取り専用でマウントされているか(ro)、読み取り/書き込み(rw)モードでマウントされているかを示します。5番目と6番目のカラムは、/etc/mtabで使用されるフォーマットと一致させるたのダミー値です。
このファイルは現在システムで使用しているMemory Type Range Registers(MTRR)です。システムのアーキテクチャがMTRRをサポートしている場合は、mtrrは次のようになります。
reg00: base=0x00000000 ( 0MB), size= 64MB: write-back, count=1 |
MTRRはIntel P6プロセッサファミリ(Pentium Pro以上)で使用します。これは、プロセッサがメモリ範囲にアクセスすることを制御するために使用します。PCIバスかAGPバス上のビデオカードを使用する場合、mtrrファイルを正しく設定すると、パフォーマンスは150%以上向上します。
大部分の使用の場合、この値は正しく設定されています。MTRRについての詳細情報と、手動でこのファイルを設定する方法については、http://web1.linuxhq.com/kernel/v2.3/doc/mtrr.txt.htmlを参照してください。
現在利用できるさまざまなパーティションについての詳細情報は、次を参照してください。
major minor #blocks name rio rmerge rsect ruse wio wmerge wsect wuse running use aveq 3 0 6297480 hda 103927 109145 1549044 1461980 66873 30417 780568 6041420 0 1689360 7506660 3 1 56196 hda1 299 1995 4588 1300 17 9 52 5450 0 5210 6750 3 2 1 hda2 0 0 0 0 0 0 0 0 0 0 0 3 5 4610623 hda5 95638 62150 1262322 1304320 63580 16715 644512 5399710 0 1614680 6704110 3 6 136521 hda6 6808 22109 231336 148110 2384 13484 127608 485020 0 108750 636310 3 7 1494013 hda7 1182 22891 50798 8250 892 209 8396 151240 0 86990 159490 |
ここに述べる情報の多くは大部分のユーザーにとってはあまり重要ではありません。ただし、次の行は重要です。
major このパーティションを持つデバイスのメジャー番号。この例のメジャー番号(3)は/proc/devicesのide0デバイスに対応しています。この番号で、そのパーティションと対話するために使用するデバイスドライバの種類がわかります。
minor このパーティションを持つデバイスのマイナー番号。これにより、パーティションを異なる物理デバイスに分け、パーティション名最後の番号に関連付けます。
#blocks 特定のパーティションに入っている物理ディスクブロックの番号の一覧を表示します。
name パーティションの名前。
このファイルには、システム上の各PCIデバイスの完全な一覧が保存されています。PCIデバイス数によって、/proc/pciはかなり長くなることがあります。基本的なシステムでは次のようになります。
Bus 0, device 0, function 0:
Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 3).
Master Capable. Latency=64.
Prefetchable 32 bit memory at 0xe4000000 [0xe7ffffff].
Bus 0, device 1, function 0:
PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 3).
Master Capable. Latency=64. Min Gnt=128.
Bus 0, device 4, function 0:
ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 2).
Bus 0, device 4, function 1:
IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 1).
Master Capable. Latency=32.
I/O at 0xd800 [0xd80f].
Bus 0, device 4, function 2:
USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 1).
IRQ 5.
Master Capable. Latency=32.
I/O at 0xd400 [0xd41f].
Bus 0, device 4, function 3:
Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 2).
IRQ 9.
Bus 0, device 9, function 0:
Ethernet controller: Lite-On Communications Inc LNE100TX (rev 33).
IRQ 5.
Master Capable. Latency=32.
I/O at 0xd000 [0xd0ff].
Non-prefetchable 32 bit memory at 0xe3000000 [0xe30000ff].
Bus 0, device 12, function 0:
VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1).
IRQ 11.
Master Capable. Latency=32. Min Gnt=4.Max Lat=255.
Non-prefetchable 32 bit memory at 0xdc000000 [0xdfffffff]. |
この出力はすべてのPCIデバイスをバス、デバイス、機能の順にソートした一覧を表しています。ネットワークインターフェイスカードの名前を忘れたときに役に立つ、デバイスの名前とバージョンのほか、詳細なIRQ情報も得られるので、コンフリクトをすぐに検出できます。
このファイルは、スラブレベルのメモリ使用率についての情報を提供します。2.2以降のLinuxカーネルは、スラブプールを使用してページレベル以上のメモリを管理します。よく使用されるオブジェクトには独自のスラブプールがあります。
/proc/slabinfoファイルはかなり長くなることがありますが、開始はほぼ次のようになります。
slabinfo - version: 1.1 kmem_cache 59 78 100 2 2 1 ip_fib_hash 10 113 32 1 1 1 ip_conntrack 0 0 352 0 0 1 urb_priv 0 0 32 0 0 1 uhci_desc 1038 1062 64 18 18 1 clip_arp_cache 0 0 128 0 0 1 ip_mrt_cache 0 0 96 0 0 1 tcp_tw_bucket 0 0 128 0 0 1 tcp_bind_bucket 6 113 32 1 1 1 tcp_open_request 0 0 96 0 0 1 inet_peer_cache 0 0 64 0 0 1 ip_dst_cache 26 40 192 2 2 1 |
このファイルの値は、キャッシュ名、アクティブなオブジェクト数、オブジェクト総数、オブジェクトサイズ、オブジェクトのアクティブなスラブ(ブロック)数、オブジェクトのスラブ総数、1スラブ当たりのページ数の順序になっています。
この場合、アクティブという言葉は使用中という意味です。アクティブなオブジェクトとは、使用中のオブジェクトであり、アクティブなスラブとは、使用されているオブジェクトのあるスラブという意味です。
このファイルには、システムが最後に再起動されたとき以降のシステムについてのさまざまな統計情報が記録されています。/proc/statの内容はきわめて長くなることがありますが、開始は次のようになります。
cpu 7361636 3040186 1150480 23431255 cpu0 7361636 3040186 1150480 23431255 page 213089 98198 swap 28914 15951 intr 37566857 34983557 1313 0 4 4 128683 <CONTENT-SNIPPED> disk_io: (3,0):(171639,103942,1549132,67697,784888) ctxt 323724291 btime 988921599 processes 14882 kstat.input_fastpath: 0 kstat.input_slowpath: 0 kstat.inputqueue_got_packet: 0 kstat.inputqueue_no_packet: 0 |
よく使用される統計情報は次のとおりです。
cpu システムがユーザーモード、低いプライオリティのユーザーモード(ナイス)、システムモード、アイドルタスクの状態をそれぞれジフィー(1秒の1/100)単位で測定します。すべてのCPUの合計は最上部に表示され、各CPUはその下に個々の統計情報付きで表示されます。
page システムがディスクから入出力したページ数。
swap システムが入出力したスワップページ数。
intr システムへの割り込み数。
btime 1970年1月1日以降の起動時間。秒単位。エポックとも言います。
このファイルはスワップ領域とその使用率を測定します。スワップパーティションが1つのシステムの場合、/proc/swapの出力は次のようになります。
Filename Type Size Used Priority /dev/hda6 partition 136512 20024 -1 |
この情報の一部は他の/procファイルにもありますが、swapファイルは、各スワップファイル名のスナップショット、スワップ領域タイプ、合計サイズ、使用サイズ(Kバイト単位)などを提供します。プライオリティカラムは複数のスワップファイルを使用し、速度の速いハードディスク上にあるファイルを優先するときなどに便利です。プライオリティが低ければ低いほど、スワップファイルがよく使われます。
このファイルには、システムを最後に再起動してから経過した時間についての情報が保存されています。/proc/uptimeの出力は次のように短いものです。
350735.47 234388.90 |
最初の数字は、システムが起動されている時間の総数を秒単位で表しています。2番目の数字はその時間のうちのアイドル時間を秒単位で表しています。
このファイルはLinuxカーネルとgccのバージョン、システムにインストールされているRed Hat Linuxのバージョンを表示します。
Linux version 2.4.2-2 (root@porky.devel.redhat.com) (gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-79)) #1 Sun Apr 8 20:41:30 EDT 2001 |
この情報は標準的なログインプロンプトでバージョンデータを提供するなど、さまざまな目的に使用できます。