/procファイルシステムは、カーネルにより重要な情報が仮想ファイルの形式で保持される疑似ファイルシステムです。たとえば、次のコマンドを使用すると、CPUのタイプを確認できます。
ester@linux:~> cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : AMD Athlon(tm) XP 2400+ stepping : 1 cpu MHz : 2009.343 cache size : 256 KB fdiv_bug : no [...]
割り込みの割り当てと使用は、次のコマンドでクエリできます。
tester@linux:~> cat /proc/interrupts
CPU0
0: 3577519 XT-PIC timer
1: 130 XT-PIC i8042
2: 0 XT-PIC cascade
5: 564535 XT-PIC Intel 82801DB-ICH4
7: 1 XT-PIC parport0
8: 2 XT-PIC rtc
9: 1 XT-PIC acpi, uhci_hcd:usb1, ehci_hcd:usb4
10: 0 XT-PIC uhci_hcd:usb3
11: 71772 XT-PIC uhci_hcd:usb2, eth0
12: 101150 XT-PIC i8042
14: 33146 XT-PIC ide0
15: 149202 XT-PIC ide1
NMI: 0
LOC: 0
ERR: 0
MIS: 0
重要なファイルとその内容の一部は次のとおりです。
/proc/devices
使用可能なデバイス
/proc/modules
ロードされたカーネルモジュール
/proc/cmdline
カーネルコマンドライン
/proc/meminfo
メモリ使用状況に関する詳細情報
/proc/config.gz
gzip-現在実行中のカーネルの圧縮設定ファイル
詳細は、テキストファイル/usr/src/linux/Documentation/filesystems/proc.txtにあります。現在実行中のプロセスについては、/proc/NNNディレクトリで確認できます。この場合、NNNは関連プロセスのプロセスID (PID)です。/proc/self/を指定すると、プロセスとその特有の特性を確認できます。
tester@linux:~> ls -l /proc/self lrwxrwxrwx 1 root root 64 2006-01-09 13:03 /proc/self -> 5356 tester@linux:~> ls -l /proc/self/ total 0 dr-xr-xr-x 2 tester users 0 2006-01-09 17:04 attr -r-------- 1 tester users 0 2006-01-09 17:04 auxv -r--r--r-- 1 tester users 0 2006-01-09 17:04 cmdline lrwxrwxrwx 1 tester users 0 2006-01-09 17:04 cwd -> /home/tester -r-------- 1 tester users 0 2006-01-09 17:04 environ lrwxrwxrwx 1 tester users 0 2006-01-09 17:04 exe -> /bin/ls dr-x------ 2 tester users 0 2006-01-09 17:04 fd -rw-r--r-- 1 tester users 0 2006-01-09 17:04 loginuid -r--r--r-- 1 tester users 0 2006-01-09 17:04 maps -rw------- 1 tester users 0 2006-01-09 17:04 mem -r--r--r-- 1 tester users 0 2006-01-09 17:04 mounts -rw-r--r-- 1 tester users 0 2006-01-09 17:04 oom_adj -r--r--r-- 1 tester users 0 2006-01-09 17:04 oom_score lrwxrwxrwx 1 tester users 0 2006-01-09 17:04 root -> / -rw------- 1 tester users 0 2006-01-09 17:04 seccomp -r--r--r-- 1 tester users 0 2006-01-09 17:04 smaps -r--r--r-- 1 tester users 0 2006-01-09 17:04 stat -r--r--r-- 1 tester users 0 2006-01-09 17:04 statm -r--r--r-- 1 tester users 0 2006-01-09 17:04 status dr-xr-xr-x 3 tester users 0 2006-01-09 17:04 task -r--r--r-- 1 tester users 0 2006-01-09 17:04 wchan
実行可能ファイルとライブラリのアドレス割り当ては、mapsファイルに含まれています。
tester@linux:~> cat /proc/self/maps 08048000-0804c000 r-xp 00000000 03:03 17753 /bin/cat 0804c000-0804d000 rw-p 00004000 03:03 17753 /bin/cat 0804d000-0806e000 rw-p 0804d000 00:00 0 [heap] b7d27000-b7d5a000 r--p 00000000 03:03 11867 \ /usr/lib/locale/en_GB.utf8/LC_CTYPE b7d5a000-b7e32000 r--p 00000000 03:03 11868 \ /usr/lib/locale/en_GB.utf8/LC_COLLATE b7e32000-b7e33000 rw-p b7e32000 00:00 0 b7e33000-b7f45000 r-xp 00000000 03:03 8837 /lib/libc-2.3.6.so b7f45000-b7f46000 r--p 00112000 03:03 8837 /lib/libc-2.3.6.so b7f46000-b7f48000 rw-p 00113000 03:03 8837 /lib/libc-2.3.6.so b7f48000-b7f4c000 rw-p b7f48000 00:00 0 b7f52000-b7f53000 r--p 00000000 03:03 11842 \ /usr/lib/locale/en_GB.utf8/LC_NUMERIC [...] b7f5b000-b7f61000 r--s 00000000 03:03 9109 \ /usr/lib/gconv/gconv-modules.cache b7f61000-b7f62000 r--p 00000000 03:03 9720 \ /usr/lib/locale/en_GB.utf8/LC_IDENTIFICATION b7f62000-b7f76000 r-xp 00000000 03:03 8828 /lib/ld-2.3.6.so b7f76000-b7f78000 rw-p 00013000 03:03 8828 /lib/ld-2.3.6.so bfd61000-bfd76000 rw-p bfd61000 00:00 0 [stack] ffffe000-fffff000 ---p 00000000 00:00 0 [vdso]
/procファイルシステムからの重要情報のサマリを確認するには、コマンドprocinfoを使用します。
tester@linux:~> procinfo Linux 2.6.15-rc5-git3-2-default (geeko@buildhost) (gcc 4.1.0 20051129) #1 Wed Dec 14 13:10:38 UTC 2005 1CPU [linux.suse.de] Memory: Total Used Free Shared Buffers Mem: 515584 509472 6112 0 73024 Swap: 658656 0 658656 Bootup: Mon Jan 9 12:59:08 2006 Load average: 0.10 0.04 0.05 1/86 5406 user :00:02:070.98 0.8% page in :442638 disk 1:20125r 13476w nice :00:02:200.91 0.9% page out:134950 system:0:00:42.93 0.3% page act:70577 IOwait:0:01:25.40 0.6% page dea:11696 hw irq:0:00:08.94 0.1% page flt:1423622 sw irq:00:00:010.29 0.0% swap in :0 idle :04:06:300.54 97.3% swap out:0 uptime:4:13:20.72 context : 3813145 irq 0: 3799268 timer irq 8:2 rtc irq 1: 130 i8042 irq 9:1 acpi, uhci_hcd:usb1, irq 2: 0 cascade [4] irq 10:0 uhci_hcd:usb3 irq 3: 8 irq 11:75905 uhci_hcd:usb2, eth0 irq 4: 8 irq 12:101150 i8042 irq 5: 564535 Intel 82801DB-ICH4 irq 14:33733 ide0 irq 6: 9 irq 15:157045 ide1 irq 7: 1 parport0 [3]
すべての情報を表示するには、パラメータ-aを使用します。-nNパラメータを指定すると、情報がN秒間隔で更新されます。この場合、プログラムを終了するにはQキーを押します。
デフォルトでは、累積値が表示されます。パラメータ-dを入力すると、別の値が作成されます。procinfo -dn5を入力すると、過去5秒間に変化した値が表示されます。