Provided by: manpages-ja_0.5.0.0.20140515+dfsg-2_all bug

名前

       proc - プロセスの情報を含む擬似ファイルシステム

説明

       proc  ファイルシステムは擬似的なファイルシステムであり、 カーネル内のデータへのインターフェースとして使用
       される。 一般的には /proc にマウントされる。 大部分のファイルは読み出し専用 (read-only) であるが、 いくつ
       かのファイルは書き込み可能であり、 そのファイルに書き込めばカーネルの内部変数を変更できる。

       以下のリストでは /proc 階層以下のファイルやディレクトリの多くについて説明している。

       /proc/[pid]
              実行中のプロセスについてのサブディレクトリ。  サブディレクトリ名は (そのプロセスの) プロセス ID で
              ある。 各サブディレクトリは、以下の擬似ファイルとディレクトリを含む。

       /proc/[number]/auxv (カーネル 2.6.0-test7 以降)
              実行時にプロセスに渡された ELF インタプリタ情報が格納されている。 個々のエントリは、unsigned  long
              型の  ID  1  個に unsigned long 型の値 1 個が続くフォーマットである。 最後のエントリには 0 が 2 個
              入っている。

       /proc/[pid]/cgroup (Linux 2.6.24 以降)
              このファイルは、プロセスやタスクが所属するコントロールグループを示す。 cgroup の各階層についてエン
              トリーが 1 つあり、 各エントリーは以下の形式のコロン区切りのフィールドで構成される。

                  5:cpuacct,cpu,cpuset:/daemons

              コロン区切りの各フィールドは、左から右の順で、以下の意味を持つ。

                  1. 階層 ID 番号

                  2. その階層に関連付けたサブシステムの集合

                  3. プロセスが所属する階層内のコントロールグループ

              このファイルが存在するのは、カーネルのコンフィギュレーション・オプショ  ン CONFIG_CGROUPS を有効に
              した場合だけである。

       /proc/[pid]/clear_refs (Linux 2.6.22 以降)

              このファイルは書き込み専用ファイルで、書き込めるのはプロセスの所有者だけである。

              このファイルには以下の値を書き込むことができる。

              1 (Linux 2.6.22 以降)
                     Reset the PG_Referenced and ACCESSED/YOUNG bits for  all  the  pages  associated  with  the
                     process.  (Before kernel 2.6.32, writing any nonzero value to this file had this effect.)

              2 (Linux 2.6.32 以降)
                     Reset the PG_Referenced and ACCESSED/YOUNG bits for all anonymous pages associated with the
                     process.

              3 (Linux 2.6.32 以降)
                     Reset the PG_Referenced and ACCESSED/YOUNG bits for all file-mapped pages  associated  with
                     the process.

              Clearing  the PG_Referenced and ACCESSED/YOUNG bits provides a method to measure approximately how
              much memory a process is using.  One first inspects the values in the "Referenced:" fields for the
              VMAs  shown  in /proc/[pid]/smaps to get an idea of the memory footprint of the process.  One then
              clears the PG_Referenced and ACCESSED/YOUNG bits and, after  some  measured  time  interval,  once
              again  inspects  the  values  in  the  "Referenced:" fields to get an idea of the change in memory
              footprint of the process during the measured interval.  If one is interested  only  in  inspecting
              the selected mapping types, then the value 2 or 3 can be used instead of 1.

              A further value can be written to affect a different bit:

              4 (Linux 3.11 以降)
                     Clear  the  soft-dirty bit for all the pages associated with the process.  This is used (in
                     conjunction with /proc/[pid]/pagemap)  by the check-point restore system to discover  which
                     pages of a process have been dirtied since the file /proc/[pid]/clear_refs was written to.

              Writing any value to /proc/[pid]/clear_refs other than those listed above has no effect.

              /proc/[pid]/clear_refs        ファイルが存在するのは、カーネルのコンフィギュレーション・オプション
              CONFIG_PROC_PAGE_MONITOR を有効にした場合だけである。

       /proc/[pid]/cmdline
              プロセスの完全なコマンド行を保持する。ただし、そのプロセスがゾンビプロセス  の場合は、このファイル
              は空となる。つまり、このファイルを読み出しても一文字  も返らない。このファイルではコマンドライン引
              き数が、 ヌルバイト ('\0') で区切られた文字列として書かれており、 最後の文字列の後にヌルバイトが一
              つ置かれる。

       /proc/[pid]/coredump_filter (kernel 2.6.23 以降)
              core(5)  参照。

       /proc/[pid]/cpuset (kernel 2.6.12 以降)
              cpuset(7)  参照。

       /proc/[pid]/cwd
              プロセスのカレントワーキングディレクトリへのシンボリックリンク。  例えば、プロセス  20  のカレント
              ワーキングディレクトリを見つけるためには、 次のようにすればよい。

                  $ cd /proc/20/cwd; /bin/pwd

              pwd コマンドはシェルの内部コマンドのことがよくあり、 うまく動作しないかもしれない。  bash(1)  では
              pwd -P を使ってもよい。

              マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、  このシンボリックリンクの内容
              は参照できない (スレッドの終了は通常 pthread_exit(3)  を呼び出しにより行われる)。

       /proc/[pid]/environ
              このファイルはプロセスの環境変数を含んでいる。 各エントリはヌルバイト ('\0') で区切られていて、 末
              尾にヌルバイトがあるかもしれない。  したがって、プロセス 1 の環境変数を表示するためには 次のように
              すればよい。

                  $ strings /proc/1/environ

       /proc/[pid]/exe
              Linux 2.2 以降では、このファイルはシンボリックリンクで、  実行可能コマンドの実際のパス名を格納して
              いる。  このシンボリックリンクは通常のように辿ることができる; これをオープンすると実行可能ファイル
              がオープンされる。 (コマンドラインで) /proc/[pid]/exe と入力すると、プロセス番号 [pid]  で実行され
              ている 実行可能ファイルをもう一つ実行することができる。 マルチスレッドプロセスでは、メインスレッド
              がすでに終了している場合、    このシンボリックリンクの内容は参照できない     (スレッドの終了は通常
              pthread_exit(3)  を呼び出しにより行われる)。

              Linux  2.0 以前では、 /proc/[pid]/exe は実行されたバイナリへのポインタで、シンボリックリンクのよう
              に見える。 Linux 2.0 以前では、このファイルに対して readlink(2)   を実行すると、次のフォーマットの
              文字列が返る。

                  [デバイス番号]:iノード番号

              たとえば、[0301]:1502 はメジャーデバイス番号 03 (IDE, MFM などのドライブ)  マイナーデバイス番号 01
              (最初のドライブの最初のパーティション) の デバイス上の iノード番号 1502 である。

              -inum オプションをつけて find(1) を使うと、 このファイルの所在を探すことができる。

       /proc/[pid]/fd/
              プロセスがオープンしたファイル各々に対するエントリを含むサブディレクトリ。  ファイルディスクリプタ
              がファイル名で、  実際のファイルへのシンボリックリンクになっている。 したがって 0 は標準入力、1 は
              標準出力、2 は標準エラー出力、などとなる。

              パイプやソケットのファイルディスクリプタでは、 エントリーはファイル種別が inode という内容を持つシ
              ンボリックリンクとなる。 このファイルに対して readlink(2) を呼び出すと以下の形式の文字列が返る。

                  type:[inode]

              例えば、  socket:[2248868] は inode が 2248868 のソケットである。 ソケットの場合、 その inode を元
              に /proc/net/ 以下のファイルを参照し詳しい情報を得ることができる。

              対応する inode がないファイルディスクリプタ (例えば epoll_create(2), eventfd(2),  inotify_init(2),
              signalfd(2),  timerfd(2) により生成されたファイルディスクリプタ) では、 エントリーはその内容が以下
              の形式のシンボリックリンクとなる。

                  anon_inode:<file-type>

              file-type は角括弧で囲まれる場合がある。

              例えば、 epoll ファイルディスクリプタは、 内容が文字列 anon_inode:[eventpoll] のシンボリックリンク
              を持つ場合がある。

              マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、  このディレクトリの内容は参照
              できない (スレッドの終了は通常 pthread_exit(3)  を呼び出しにより行われる)。

              コマンドライン引き数としてファイル名を受け取るが、引き数が 渡されなかった場合 に標準入力から入力を
              受け取らないようなプログラムや、 コマンドライン引き数とし て書き込みファイルを受け取るが、引き数が
              渡されなかった場合に標準出力に出力を 行わないようなプログラムであっても、 /proc/[pid]/fd  を使うこ
              とで標準入力や  標準出力を使用できるようになる。  例えば、 -i を入力ファイルを指定するフラ グ、 -o
              を出力ファイルを指定するフラグと仮定すると、

                  $ foobar -i /proc/self/fd/0 -o /proc/self/fd/1 ...

              を実行することにより、フィルタとして動作させることができる。

              /proc/self/fd/N は、ある種の UNIX や UNIX 風のシステムにある /dev/fd/N とだいたい同じである。 事実
              Linux  のたいていの MAKEDEV スクリプトは、 /dev/fd/proc/self/fd へのシンボリックリンクにしてい
              る。

              ほとんどのシステムでは、シンボリックリンク  /dev/stdin,  /dev/stdout,  /dev/stderr  が提供されてお
              り、それぞれ  /proc/self/fd 内のファイル 0, 1, 2 にリンクされている。 したがって、上述のサンプルコ
              マンドは次のようにも書くことができる。

                  $ foobar -i /dev/stdin -o /dev/stdout ...

       /proc/[pid]/fdinfo/ (kernel 2.6.22 以降)
              このサブディレクトリには、そのプロセスがオープンしているファイル毎の  エントリが入っており、ファイ
              ルディスクリプタがファイル名となっている。  各ファイルの内容を読み出すことで、対応するファイルディ
              スクリプタに関する 情報を得ることができる。以下に例を示す。

                  $ cat /proc/12015/fdinfo/4
                  pos:    1000
                  flags:  01002002

              pos フィールドは 10 進数で、現在のファイルオフセットを示す。 flags フィールドは 8 進数で、  ファイ
              ルのアクセスモードとファイル状態フラグを示す (open(2)  参照)。

              このディレクトリのファイルは、プロセスの所有者だけが読み出すことができる。

       /proc/[pid]/io (kernel 2.6.20 以降)
              このファイルは、 プロセスの I/O 統計情報を表示する。 以下に例を挙げる。

                  # cat /proc/3828/io
                  rchar: 323934931
                  wchar: 323929600
                  syscr: 632687
                  syscw: 632675
                  read_bytes: 0
                  write_bytes: 323932160
                  cancelled_write_bytes: 0

              フィールドの詳細は以下の通りである。

              rchar: 読み出し文字数
                     このタスクがきっかけでストレージから読み出されたバイト数。  この値は、単純に read(2) や同様
                     のシステムコールからこのプロセスに渡されたバイト数の合計である。 この値には、  端末入出力な
                     ども含まれ、  実際に物理ディスク I/O が必要であったか (読み出しがページキャッシュからの読み
                     出しで十分であったか) どうかは関係ない。

              wchar: 書き込み文字数
                     このタスクがきっかけで行われたか行われるはずのディスクへの書き込みバイト数。 rchar と同じ注
                     意があてはまる。

              syscr: 読み出しシステムコール数
                     読み出し I/O 操作—read(2) や pread(29 などのシステムコール—を試みた回数。

              syscw: 書き込みシステムコール数
                     書き込み I/O 操作—write(2) や pwrite(29 などのシステムコール—を試みた回数。

              read_bytes: 読み出しバイト数
                     このプロセスが実際にストレージ層から取得しようとしたバイト数。 ブロックデバイス上のファイル
                     システムでは正確な値となる。

              write_bytes: 書き込みバイト数
                     このプロセスが実際にストレージ層に転送しようとしたバイト数。

              cancelled_write_bytes:
                     The big inaccuracy here is truncate.  If a process writes 1MB to a file  and  then  deletes
                     the  file,  it will in fact perform no writeout.  But it will have been accounted as having
                     caused 1MB of write.  In other words: this field represents the number of bytes which  this
                     process  caused  to  not  happen, by truncating pagecache.  A task can cause "negative" I/O
                     too.  If this task truncates some dirty pagecache, some I/O which  another  task  has  been
                     accounted for (in its write_bytes)  will not be happening.

              注意:  現在の実装では  32 ビットシステムでは少しいやらしい点がある。 プロセス B が 64 ビットカウン
              ターの一つを更新している途中に、プロセス A がプロセス B の /proc/[pid]/io を読んだ場合、  プロセス
              A に更新中の結果が見えることがある。

       /proc/[pid]/limits (kernel 2.6.24 以降)
              このファイルは、そのプロセスの各リソース制限について、  ソフト・リミット、ハード・リミット、計測単
              位を表示する (getrlimit(2) 参照)。 Linux 2.6.35 以前では、 プロセスの実 UID を持つプロセスだけが、
              このファイルを読み出すことができる。  Linux 2.6.36 以降では、 システム上のすべてのユーザがこのファ
              イルを読み出すことができる。

       /proc/[pid]/map_files/ (kernel 3.3 以降)
              このサブディレクトリには、  メモリマップされたファイルに対応するエントリーが置かれる  (mmap(2)  参
              照)。 エントリーの名前がメモリ領域の (16 進数表現の) 開始アドレスと終了アドレスの組で、 エントリー
              はマップされているファイルへのシンボリックリンクである。 以下に例を示す。 なお、 出力は幅が 80  文
              字のディスプレイに合うように折り返して整形されている。

                  $ ls -l /proc/self/map_files/
                  lr--------. 1 root root 64 Apr 16 21:31
                              3252e00000-3252e20000 -> /usr/lib64/ld-2.15.so
                  ...

              これらのエントリーが存在するのは   MAP_FILE   フラグでマッピングされたメモリ領域についてであるが、
              Linux での無名の共有メモリ (MAP_ANON | MAP_SHARED で作成された領域) の実装方法では、  このディレク
              トリに無名の共有メモリに関するエントリーも存在する。  以下は、  マッピング元のファイルが削除された
              /dev/zero ファイルでの例である。

                  lrw-------. 1 root root 64 Apr 16 21:33
                              7fc075d2f000-7fc075e6f000 -> /dev/zero (deleted)

              このディレクトリが存在するのは、                      カーネルのコンフィギュレーション・オプション
              CONFIG_CHECKPOINT_RESTORE が有効になっている場合だけである。

       /proc/[pid]/maps
              現在マッピングされているメモリ領域とそのアクセスパーミッションを含む。  メモリマッピングについての
              詳しい情報は mmap(2) を参照。

              ファイルのフォーマットは以下のとおり:

       address           perms offset  dev   inode       pathname
       00400000-00452000 r-xp 00000000 08:02 173521      /usr/bin/dbus-daemon
       00651000-00652000 r--p 00051000 08:02 173521      /usr/bin/dbus-daemon
       00652000-00655000 rw-p 00052000 08:02 173521      /usr/bin/dbus-daemon
       00e03000-00e24000 rw-p 00000000 00:00 0           [heap]
       00e24000-011f7000 rw-p 00000000 00:00 0           [heap]
       ...
       35b1800000-35b1820000 r-xp 00000000 08:02 135522  /usr/lib64/ld-2.15.so
       35b1a1f000-35b1a20000 r--p 0001f000 08:02 135522  /usr/lib64/ld-2.15.so
       35b1a20000-35b1a21000 rw-p 00020000 08:02 135522  /usr/lib64/ld-2.15.so
       35b1a21000-35b1a22000 rw-p 00000000 00:00 0
       35b1c00000-35b1dac000 r-xp 00000000 08:02 135870  /usr/lib64/libc-2.15.so
       35b1dac000-35b1fac000 ---p 001ac000 08:02 135870  /usr/lib64/libc-2.15.so
       35b1fac000-35b1fb0000 r--p 001ac000 08:02 135870  /usr/lib64/libc-2.15.so
       35b1fb0000-35b1fb2000 rw-p 001b0000 08:02 135870  /usr/lib64/libc-2.15.so
       ...
       f2c6ff8c000-7f2c7078c000 rw-p 00000000 00:00 0    [stack:986]
       ...
       7fffb2c0d000-7fffb2c2e000 rw-p 00000000 00:00 0   [stack]
       7fffb2d48000-7fffb2d49000 r-xp 00000000 00:00 0   [vdso]

              address フィールドは、 そのマッピングが占めているプロセスのアドレス空間である。 perms フィールドは
              パーミッションのセットである。

                   r = read
                   w = write
                   x = execute
                   s = shared
                   p = private (copy on write)

              offset  はファイル (などの) 中でのオフセット、 dev はデバイス (メジャーデバイス番号:マイナーデバイ
              ス番号)、 inode はそのデバイスの i ノード番号である。 0 は、BSS (初期化されていないデータ領域)  の
              場合のように、 このメモリ領域はどの i ノードとも関連付けられていないことを意味する。

              pathname フィールドは、 通常そのマッピングに対応するファイルである。 ELF ファイルの場合、 ELF プロ
              グラムヘッダの Offset フィールドを見ることで (readelf -l))、 簡単に offset  との対応付けをすること
              ができる。

              これに加え、 役に立つ擬似パス名がある。

                   [stack]
                          初期プロセスのスタック (初期プロセスはメインスレッドとも呼ばれる)。

                   [stack:<tid>] (Linux 3.4 以降)
                          スレッドのスタック  (<tid> はスレッド ID である)。 パス /proc/[pid]/task/[tid]/ に対応
                          する。

                   [vdso] 動的にリンクされる仮想共有オブジェクト (virtual dynamically linked shared object)。

                   [heap] プロセスのヒープ。

              pathname  が空の場合、   その領域は   mmap(2)   を使って確保された無名マッピングである。   gdb(1),
              strace(1)  などを使ってプロセスを実行しない限り、 この領域をプロセスのソースと対応付ける簡単な方法
              はない。

              Linux 2.0 ではパス名を書いたフィールドがない。

       /proc/[pid]/mem
              このファイルは、 open(2), read(2), lseek(2) を通して、プロセスのメモリのページにアクセスするために
              使われる。

       /proc/[pid]/mountinfo (Linux 2.6.26 以降)
              このファイルには、マウントポイントについての情報が入っている。    以下のような形式の行から構成され
              る。

              36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue
              (1)(2)(3)   (4)   (5)      (6)      (7)   (8) (9)   (10)         (11)

              括弧付きの数字は、以下の説明のためのものである。

              (1)  マウント ID: マウントの一意な識別子 (umount(2)  の後は再利用されるかもしれない)。

              (2)  parent ID: 親マウントの ID (マウントツリーの最上位の場合は自分自身の ID となる)。

              (3)  major:minor: ファイルシステム上のファイルの st_dev の値 (stat(2)  参照)。

              (4)  ルート: そのファイルシステム内のマウントのルート。

              (5)  マウントポイント: マウントポイントのそのプロセスのルートからの相対パス。

              (6)  マウントオプション: 各マウントのオプション。

              (7)  オプションフィールド: "tag[:value]" 形式のフィールドが 0 個以上並ぶ。

              (8)  セパレータ: オプションフィールドの終わりを示す。

              (9)  ファイルシステム種別: ファイルシステムの名前。 "type[.subtype]" という形式となる。

              (10) マウント元: ファイルシステム固有の情報。ない場合は "none" となる。

              (11) super options: スーパーブロック単位のオプション。

              解釈する側は認識できないオプションフィールドは全て無視すべきである。      現在のところ、オプション
              フィールドとしては以下のようなものがある。

                   shared:X          マウントはピアグループ (peer group) X で共有されている。

                   master:X          マウントはピアグループ (peer group) X のスレーブである。

                   propagate_from:X  マウントはスレーブであり、ピアグループ  X (*) から mount propagation を受信
                                     する。

                   unbindable        マウントは unbind できない。

              (*) X は、プロセスの root で直近の dominant peer group である。 X がマウントの直接のマスターである
              場合や、  同じ  root  に  dominant  peer  group がない場合は、 "master:X" フィールドだけが存在し、
              "propagate_from:X" フィールドは存在しない。

              mount        propagation         の詳細については、         Linux         カーネルソースツリー内の
              Documentation/filesystems/sharedsubtree.txt を参照。

       /proc/[pid]/mounts (Linux 2.4.19 以降)
              そのプロセスのマウント名前空間に現在マウントされている 全ファイルシステムのリスト。 このファイルの
              フォーマットは fstab(5) に載っている。 カーネル 2.6.15  以降では、このファイルを監視することができ
              る (pollable)。 このファイルを読み出し用にオープンした後で、このファイルに変更があると (つまりファ
              イルシステムのマウントやアンマウントがあると)、 select(2)   ではそのファイルディスクリプタは読み出
              し可能となり、 poll(2)  と epoll_wait(2) ではそのファイルはエラー状態として通知される。

       /proc/[pid]/mountstats (Linux 2.6.17 以降)
              このファイルを通じて、そのプロセスの名前空間内のマウントポイントに関する 各種情報 (統計、設定情報)
              を参照できる。 ファイルの各行は以下のフォーマットである。

              device /dev/sda7 mounted on /home with fstype ext3 [statistics]
              (       1      )            ( 2 )             (3 ) (4)

              各行のフィールドは以下の通りである。

              (1)  マウントされているデバイス名 (対応するデバイスがない場合は "nodevice" となる)。

              (2)  マウントポイントのファイルシステムツリーにおけるパス名。

              (3)  ファイルシステム種別。

              (4)  追加の統計や設定情報。 現在のところ (Linux 2.6.26 時点では)、  このフィールドで情報が提供され
                   ているのは NFS ファイルシステムだけである。

              このファイルはプロセスの所有者だけが読み出すことができる。

       /proc/[pid]/ns/ (Linux 3.0 以降)
              このサブディレクトリには、名前空間毎に 1 エントリが置かれる。 各エントリは setns(2) による操作をサ
              ポートしている。 名前空間に関する情報は clone(2) を参照。

       /proc/[pid]/ns/ipc (Linux 3.0 以降)
              このファイルをファイルシステムのどこか他の場所に bind mount することで (mount(2) 参照)、現在この名
              前空間にいる全てのプロセスが終了したとしても、 pid で指定されたプロセスの IPC 名前空間は有効な状態
              で保たれる。

              このファイルをオープンすると、 pid で指定されたプロセスの  IPC  名前空間のファイルハンドルが返され
              る。このファイルディスクリプタがオープンされている限り、この名前空間にいる全てのプロセスが終了した
              としても、この IPC 名前空間は有効なままとなる。このファイルディスクリプタは setns(2)  に渡すことが
              できる。

       /proc/[pid]/ns/net (Linux 3.0 以降)
              このファイルをファイルシステムのどこか他の場所に bind mount することで (mount(2) 参照)、現在この名
              前空間にいる全てのプロセスが終了したとしても、 pid  で指定されたプロセスのネットワーク名前空間は有
              効な状態で保たれる。

              このファイルをオープンすると、  pid で指定されたプロセスのネットワーク名前空間のファイルハンドルが
              返される。このファイルディスクリプタがオープンされている限り、この名前空間にいる全てのプロセスが終
              了したとしても、このネットワーク名前空間は有効なままとなる。このファイルディスクリプタは  setns(2)
              に渡すことができる。

       /proc/[pid]/ns/uts (Linux 3.0 以降)
              このファイルをファイルシステムのどこか他の場所に bind mount することで (mount(2) 参照)、現在この名
              前空間にいる全てのプロセスが終了したとしても、 pid で指定されたプロセスの UTS 名前空間は有効な状態
              で保たれる。

              このファイルをオープンすると、 pid で指定されたプロセスの  UTS  名前空間のファイルハンドルが返され
              る。このファイルディスクリプタがオープンされている限り、この名前空間にいる全てのプロセスが終了した
              としても、この UTS 名前空間は有効なままとなる。このファイルディスクリプタは setns(2)  に渡すことが
              できる。

       /proc/[pid]/numa_maps (Linux 2.6.14 以降)
              numa(7)  を参照。

       /proc/[pid]/oom_adj (Linux 2.6.11 以降)
              このファイルは、メモリ不足 (OOM) の状況下でどのプロセスを殺すべきかを選択す るのに使用されるスコア
              を調整するのに使用される。カーネルは、プロセスの oom_score  値のビットシフト操作に、この値を使用す
              る。この値として有効な値  は -16 から +15 までと、特別な意味を持つ -17 である。 -17 はそのプロセス
              に対する OOM-killing を完全に無効にすることを意味する。正の値ほど、そのプロ セスが OOM-killer によ
              り殺される可能性が高くなり、負の値ほど可能性が低くなる。

              このファイルのデフォルト値は 0 である。 新しいプロセスは親プロセスの oom_adj の設定を継承する。 こ
              のファイルを変更するためには、プロセスは特権 (CAP_SYS_RESOURCE) を持っていなければならない。

              Linux 2.6.36 以降では、 このファイルの使用は非推奨とされ、 代わりに /proc/[pid]/oom_score_adj が推
              奨されている。

       /proc/[pid]/oom_score (Linux 2.6.11 以降)
              このファイルは、OOM-killer  のプロセス選択用として、カーネルが このプロセス に対して与えた現在のス
              コアを表示する。 高いスコアは、そのプロセスが OOM-killer により選択される 可能性が高いことを意味す
              る。  このスコアの基本は  そのプロセスが使用しているメモリ量であり、 以下の要因により加算 (+) 減算
              (-) が行われる。

              * そのプロセスが多くの子プロセスを fork(2)  を使って作成しているか (+)。

              * そのプロセスが長時間実行されて来たか、 もしくは 多くの CPU 時間を使用しているか (-)。

              * そのプロセスが低い nice 値 (> 0) を持っているか (+)。

              * そのプロセスが特権を持っているか (-)。

              * そのプロセスが direct hardware access を行っているか (-)。

              oom_score は、そのプロセスの oom_score_adjoom_adj 設定で規定される調整にも影響を与える。

       /proc/[pid]/oom_score_adj (Linux 2.6.36 以降)
              This file can be used to adjust the badness heuristic used to select which process gets killed  in
              out-of-memory conditions.

              The  badness  heuristic assigns a value to each candidate task ranging from 0 (never kill) to 1000
              (always kill) to determine which process is targeted.  The units are roughly  a  proportion  along
              that  range of allowed memory the process may allocate from, based on an estimation of its current
              memory and swap use.  For example, if a task is using all allowed memory, its badness  score  will
              be 1000.  If it is using half of its allowed memory, its score will be 500.

              There  is  an  additional  factor included in the badness score: root processes are given 3% extra
              memory over other tasks.

              The amount of "allowed" memory depends on the context in which the OOM-killer was called.   If  it
              is  due to the memory assigned to the allocating task's cpuset being exhausted, the allowed memory
              represents the set of mems assigned to that cpuset (see cpuset(7)).  If it is due to a mempolicy's
              node(s)  being  exhausted, the allowed memory represents the set of mempolicy nodes.  If it is due
              to a memory limit (or swap limit) being reached, the allowed  memory  is  that  configured  limit.
              Finally,  if it is due to the entire system being out of memory, the allowed memory represents all
              allocatable resources.

              The value of oom_score_adj is added to the badness score before it is used to determine which task
              to  kill.   Acceptable  values  range from -1000 (OOM_SCORE_ADJ_MIN) to +1000 (OOM_SCORE_ADJ_MAX).
              This allows user space to control the preference for OOM-killing, ranging from always preferring a
              certain  task  or  completely disabling it from OOM-killing.  The lowest possible value, -1000, is
              equivalent to disabling OOM-killing entirely for that task, since it will always report a  badness
              score of 0.

              Consequently, it is very simple for user space to define the amount of memory to consider for each
              task.  Setting a oom_score_adj value of +500, for example, is roughly equivalent to  allowing  the
              remainder  of  tasks sharing the same system, cpuset, mempolicy, or memory controller resources to
              use at least 50% more memory.  A value of -500, on the other hand, would be roughly equivalent  to
              discounting 50% of the task's allowed memory from being considered as scoring against the task.

              For  backward  compatibility  with previous kernels, /proc/[pid]/oom_adj can still be used to tune
              the badness score.  Its value is scaled linearly with oom_score_adj.

              Writing to /proc/[pid]/oom_score_adj or /proc/[pid]/oom_adj will change the other with its  scaled
              value.

       /proc/[pid]/root
              UNIX  と  Linux  では、 ファイルシステムのルート (/) をプロセスごとに別々にできる。 これはシステム
              コール chroot(2) によって設定する。 このファイルはプロセスのルートディレクトリを指すシンボリックリ
              ンクで、 exefd/* などと同じような動作をする。

              マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、  このシンボリックリンクの内容
              は参照できない (スレッドの終了は通常 pthread_exit(3)  を呼び出しにより行われる)。

       /proc/[pid]/smaps (Linux 2.6.14 以降)
              このファイルは、そのプロセスの各マッピングのメモリ消費量を表示する。    マッピングのそれぞれについ
              て、以下のような内容が表示される。

                  00400000-0048a000 r-xp 00000000 fd:03 960637       /bin/bash
                  Size:                552 kB
                  Rss:                 460 kB
                  Pss:                 100 kB
                  Shared_Clean:        452 kB
                  Shared_Dirty:          0 kB
                  Private_Clean:         8 kB
                  Private_Dirty:         0 kB
                  Referenced:          460 kB
                  Anonymous:             0 kB
                  AnonHugePages:         0 kB
                  Swap:                  0 kB
                  KernelPageSize:        4 kB
                  MMUPageSize:           4 kB
                  Locked:                0 kB

              The  first  of  these  lines  shows  the  same  information  as  is  displayed  for the mapping in
              /proc/[pid]/maps.  The remaining lines show the size of the mapping, the  amount  of  the  mapping
              that  is  currently  resident  in  RAM  ("Rss"),  the  process' proportional share of this mapping
              ("Pss"), the number of clean and dirty shared pages in the mapping, and the number  of  clean  and
              dirty  private pages in the mapping.  "Referenced" indicates the amount of memory currently marked
              as referenced or accessed.  "Anonymous" shows the amount of memory that does  not  belong  to  any
              file.  "Swap" shows how much would-be-anonymous memory is also used, but out on swap.

              The  "KernelPageSize"  entry  is the page size used by the kernel to back a VMA.  This matches the
              size used by the MMU in the majority of cases.   However,  one  counter-example  occurs  on  PPC64
              kernels whereby a kernel using 64K as a base page size may still use 4K pages for the MMU on older
              processors.  To distinguish, this patch reports "MMUPageSize" as the page size used by the MMU.

              The "Locked" indicates whether the mapping is locked in memory or not.

              "VmFlags" field represents the kernel flags associated with the particular virtual memory area  in
              two letter encoded manner.  The codes are the following:

                  rd  - readable
                  wr  - writable
                  ex  - executable
                  sh  - shared
                  mr  - may read
                  mw  - may write
                  me  - may execute
                  ms  - may share
                  gd  - stack segment growns down
                  pf  - pure PFN range
                  dw  - disabled write to the mapped file
                  lo  - pages are locked in memory
                  io  - memory mapped I/O area
                  sr  - sequential read advise provided
                  rr  - random read advise provided
                  dc  - do not copy area on fork
                  de  - do not expand area on remapping
                  ac  - area is accountable
                  nr  - swap space is not reserved for the area
                  ht  - area uses huge tlb pages
                  nl  - non-linear mapping
                  ar  - architecture specific flag
                  dd  - do not include area into core dump
                  sd  - soft-dirty flag
                  mm  - mixed map area
                  hg  - huge page advise flag
                  nh  - no-huge page advise flag
                  mg  - mergable advise flag

              /proc/[pid]/smaps             ファイルが存在するのは、カーネルのコンフィギュレーション・オプション
              CONFIG_PROC_PAGE_MONITOR を有効にした場合だけである。

       /proc/[pid]/stack (Linux 2.6.29 以降)
              This file provides a symbolic trace of the function calls in this process's  kernel  stack.   This
              file is provided only if the kernel was built with the CONFIG_STACKTRACE configuration option.

       /proc/[pid]/stat
              プロセスの状態についての情報。  これは ps(1)  で使われ、 /usr/src/linux/fs/proc/array.c で定義され
              ている。

              各フィールドを順番に、 scanf(3)  のフォーマット指定子付きで以下に示す。

              pid %d      (1) プロセス ID。

              comm %s     (2) 括弧でくくられた実行形式のファイル名。  実行形式がスワップアウトされているかどうか
                          によらず、 見ることができる。

              state %c    (3)  "RSDZTW"  のどれか  1  文字。  R  は実行中 (running)、 S は割り込み可能な休眠状態
                          (sleeping in an interruptible wait)、  D  は割り込み不可能なディスクスリープの待機状態
                          (waiting in uninterruptible disk sleep)、 Z はゾンビ状態 (zombie)、 T はトレースされて
                          いる  (traced)  か  (シグナルにより)  停止している状態  (stopped)、  W  はページング中
                          (paging) を表している。

              ppid %d     (4) 親プロセスの PID。

              pgrp %d     (5) プロセスのプロセスグループ ID。

              session %d  (6) プロセスのセッション ID。

              tty_nr %d   (7) プロセスの制御端末 (マイナー・デバイス番号はビット 31〜20 と 7〜0 にまたがって格納
                          され、 メジャー・デバイス番号はビット 15〜8 に格納される)。

              tpgid %d    (8) プロセスの制御端末のフォアグランド・プロセス・グループの ID。

              flags %u (Linux 2.6.22 より前は %lu)
                          (9) プロセスのカーネルフラグワード。 ビットの意味は、 <linux/sched.h> で定義されている
                          PF_* を参照すること。 詳細はカーネルのバージョンに依存する。

              minflt %lu  (10)  プロセスが引き起こしたマイナーフォールト (minor fault、ディスクから メモリページ
                          へのロードを必要としないフォールト) の回数。

              cminflt %lu (11)  (そのプロセスが終了を待っている)  子プロセスが引き起こしたマイナーフォールトの回
                          数。

              majflt %lu  (12) プロセスが引き起こしたメジャーフォールト (major fault、ディスクからメモリページへ
                          のロードを必要とするフォールト) の回数。

              cmajflt %lu (13)  (そのプロセスが終了を待っている)  子プロセスが引き起こしたメジャーフォールトの回
                          数。

              utime %lu   (14)  このプロセスがユーザーモードでスケジューリングされた時間の合計。 clock tick 単位
                          で計測される  (sysconf(_SC_CLK_TCK)   で割った値が表示される)。   この値にはゲスト時間
                          guest_time  (仮想 CPU の実行に消費された時間) も含まれる。これは、ゲスト時間のフィール
                          ドを認識しないアプリケーションにおいて、ゲスト時間分を計算に入れ損ねないようにするため
                          である。

              stime %lu   (15)  プロセスのカーネルモードでの実行時間 (単位 jiffies)。 このプロセスがカーネルモー
                          ドでスケジューリングされた時間の合計。       clock        tick        単位で計測される
                          (sysconf(_SC_CLK_TCK) で割った値が表示される)。

              cutime %ld  (16) このプロセスの子プロセスで、終了待ち (waited-for) のプロセスが、 ユーザモードでス
                          ケジューリングされた時間の合計。 clock tick 単位で計測される (sysconf(_SC_CLK_TCK)  で
                          割った値が表示される)。  (times(2)  も参照すること。) この値にはゲスト時間 cguest_time
                          (仮想 CPU を実行するのに消費した時間、下記参照) も含まれる。

              cstime %ld  (17) このプロセスの子プロセスで、終了待ち (waited-for)  のプロセスが、カーネルモードで
                          スケジューリングされた時間の合計。  clock  tick 単位で計測される (sysconf(_SC_CLK_TCK)
                          で割った値が表示される)。

              priority %ld
                          (18) (Linux 2.6 の場合の説明) リアルタイム・スケジューリングポリシー (下記の policy  ;
                          sched_setscheduler(2) 参照) で動作しているプロセスでは、 この 値はスケジューリング優先
                          度を反転した値 (スケジューリング優先度を マイナスにし た値) となる。値は -2 から  -100
                          までの範囲の数値で、 それぞれリアルタイム優先 度の 1 から 99 に対応する。 リアルタイム
                          以外のスケジューリングポリシーで動作し ているプロセスでは、 この値はカーネル内で管理さ
                          れている nice 値そのもの (setpriority(2)) となる。 カーネルは nice 値を 0 (高) から 39
                          (低) の範囲 の値として保持しており、 それぞれユーザに見える nice 値の -20 から 19 に対
                          応 する。

                          Linux  2.6 より前では、このプロセスに割り当てられたスケジューリング 重みを変換した値が
                          表示されていた。

              nice %ld    (19) nice 値 (setpriority(2) 参照)。 19 (最低優先) から -20 (最高優先)  の範囲の値であ
                          る。

              num_threads %ld
                          (20) このプロセスのスレッド数 (Linux 2.6 以降)。 カーネル 2.6 より前では、このフィール
                          ドは削除されたフィールドの 場所埋めとして 0 にハードコードされていた。

              itrealvalue %ld
                          (21)  インターバルタイマによって、次に  SIGALRM  がプロセスへ送られるまでの時間  (単位
                          jiffies)。  カーネル  2.6.17 以降では、このフィールドはメンテナンスされなくなり、 0 に
                          ハードコードされている。

              starttime %llu (Linux 2.6 より前は %lu)
                          (22) プロセスの起動時刻。システムが起動した時刻が起点である。 Linux 2.6 より前のカーネ
                          ルでは、  この値の単位は  jiffies  であった。  Linux 2.6 以降では、 値の単位はクロック
                          tick である (sysconf(_SC_CLK_TCK) で割った値となる)。

              vsize %lu   (23) 仮想メモリのサイズ。単位はバイト。

              rss %ld     (24) Resident Set Size。プロセスが持っている実メモリ上のページ数。  これはちょうどテキ
                          スト、データ、スタック空間に使われているページ数である。    デマンドロードされていない
                          ページや スワップアウトされたページの数は含んでいない。

              rsslim %lu  (25)  このプロセスの  rss  の現在のソフト・リミット  (バイト単位)。  getrlimit(2)   の
                          RLIMIT_RSS の説明を参照。

              startcode %lu
                          (26) プログラムテキストが実行可能であるような領域の先頭アドレス。

              endcode %lu (27) プログラムテキストが実行可能であるような領域の末尾アドレス。

              startstack %lu
                          (28) スタックの開始アドレス (すなわち、スタックの底)。

              kstkesp %lu (29) 現在の ESP (スタックポインタ) の値。 プロセスのカーネルスタックページにある。

              kstkeip %lu (30) 現在の EIP (インストラクションポインタ) の値。

              signal %lu  (31)  処理待ちのシグナルのビットマップ。 10 進数で表示される。このフィールドは廃止予定
                          である。リアルタイム・シグナルに関する情報は表示されないからである。代わりに
                          /proc/[pid]/status を使うこと。

              blocked %lu (32)  ブロックされた  (blocked)  シグナルのビットマップ。  10  進数で表示される。 この
                          フィールドは廃止予定である。  リアルタイム・シグナルに関する情報は表示されないからであ
                          る。 代わりに /proc/[pid]/status を使うこと。

              sigignore %lu
                          (33)  無視された (ignored) シグナルのビットマップ。 10 進数で表示される。 このフィール
                          ドは廃止予定である。 リアルタイム・シグナルに関する情報は表示されないからである。 代わ
                          りに /proc/[pid]/status を使うこと。

              sigcatch %lu
                          (34) 捕捉された (caught) シグナルのビットマップ。 10 進数で表示される。 このフィールド
                          は廃止予定である。 リアルタイム・シグナルに関する情報は表示されないからである。 代わり
                          に /proc/[pid]/status を使うこと。

              wchan %lu   (35)  This  is  the "channel" in which the process is waiting.  It is the address of a
                          location in the kernel where the process is sleeping.  The corresponding symbolic name
                          can be found in /proc/[pid]/wchan.

              nswap %lu   (36) スワップされたページ数 (メンテナンスされていない)。

              cnswap %lu  (37) 子プロセスの nswap の累計 (メンテナンスされていない)。

              exit_signal %d (Linux 2.1.22 以降)
                          (38) プロセスが死んだときに親プロセスに送られるシグナル。

              processor %d (Linux 2.2.8 以降)
                          (39) このプロセスを最後に実行した CPU の番号。

              rt_priority %u (Linux 2.5.19 以降; Linux 2.6.22 より前は %lu)
                          (40) リアルタイム・スケジューリングの優先度。 リアルタイム・ポリシーの元でスケジューリ
                          ングされるプロセスでは 1 から 99 の範囲の値となり、 リアルタイム以外のスケジューリング
                          ポリシーのプロセスでは 0 となる (sched_setscheduler(2)  参照)。

              policy %u (Linux 2.5.19 以降; Linux 2.6.22 より前は %lu)
                          (41)  スケジューリング・ポリシー  (sched_setscheduler(2)  参照)。 値は、 linux/sched.h
                          の SCHED_* 定数を使ってデコードすればよい。

              delayacct_blkio_ticks %llu (Linux 2.6.18 以降)
                          (42) (clock tick (100分の1秒) 単位での) ブロック I/O の総遅延量。

              guest_time %lu (Linux 2.6.24 以降)
                          (43) プロセスのゲスト時間 (ゲスト OS の仮想 CPU を実行するのに消費された時間)。  clock
                          tick 単位で計測される (sysconf(_SC_CLK_TCK) で割った値が表示される)。

              cguest_time %ld (Linux 2.6.24 以降)
                          (44)      プロセスの子プロセスのゲスト時間。      clock      tick     単位で計測される
                          (sysconf(_SC_CLK_TCK) で割った値が表示される)。

       /proc/[pid]/statm
              (ページ単位で計測した) メモリ使用量についての情報を提供する。 各列は以下の通りである。

                  size       プログラムサイズの総計
                             (/proc/[pid]/status の VmSize と同じ)
                  resident   実メモリ上に存在するページ
                             (/proc/[pid]/status の VmRSS と同じ)
                  share      共有ページ (ファイルと関連付けられているページ)
                  text       テキスト (コード)
                  lib        ライブラリ (Linux 2.6 では未使用)
                  data       データ + スタック
                  dt         ダーティページ (Linux 2.6 では未使用)

       /proc/[pid]/status
              /proc/[pid]/stat/proc/[pid]/statm にある多くの情報を、人間が解析しやすい形式で提供する。  以下
              に例を示す。

                  $ cat /proc/$$/status
                  Name:   bash
                  State:  S (sleeping)
                  Tgid:   3515
                  Pid:    3515
                  PPid:   3452
                  TracerPid:      0
                  Uid:    1000    1000    1000    1000
                  Gid:    100     100     100     100
                  FDSize: 256
                  Groups: 16 33 100
                  VmPeak:     9136 kB
                  VmSize:     7896 kB
                  VmLck:         0 kB
                  VmHWM:      7572 kB
                  VmRSS:      6316 kB
                  VmData:     5224 kB
                  VmStk:        88 kB
                  VmExe:       572 kB
                  VmLib:      1708 kB
                  VmPTE:        20 kB
                  Threads:        1
                  SigQ:   0/3067
                  SigPnd: 0000000000000000
                  ShdPnd: 0000000000000000
                  SigBlk: 0000000000010000
                  SigIgn: 0000000000384004
                  SigCgt: 000000004b813efb
                  CapInh: 0000000000000000
                  CapPrm: 0000000000000000
                  CapEff: 0000000000000000
                  CapBnd: ffffffffffffffff
                  Cpus_allowed:   00000001
                  Cpus_allowed_list:      0
                  Mems_allowed:   1
                  Mems_allowed_list:      0
                  voluntary_ctxt_switches:        150
                  nonvoluntary_ctxt_switches:     545

              フィールドの詳細は以下の通りである。

              * Name: このプロセスにより実行されたコマンド。

              * State:  プロセスの現在の状態。  "R (running; 実行中)", "S (sleeping; 休眠状態)", "D (disk sleep;
                ディスク待ちの休眠状態)", "T (stopped; 停止状態)", "T (tracing  stop;  トレースによる停止)",  "Z
                (zombie; ゾンビ状態)", "X (dead; 死亡)" のいずれかである。

              * Tgid: スレッドグループ ID (すなわち、プロセス ID)。

              * Pid: スレッド ID (gettid(2)  参照)。

              * PPid: 親プロセスの PID。

              * TracerPid: このプロセスをトレースしているプロセスの PID (トレースされていない場合は 0)。

              * Uid, Gid: 実 UID/GID、実効 UID/GID、保存 set-UID/GID、ファイルシステム UID/GID。

              * FDSize: 現在割り当てられているファイルディスクリプタのスロット数。

              * Groups: 補助グループのリスト。

              * VmPeak: 仮想メモリサイズのピーク値。

              * VmSize: 仮想メモリサイズ。

              * VmLck: ロックされているメモリサイズ (mlock(3) 参照)。

              * VmHWM: 実メモリ上に存在するページサイズ (resident set size)  のピーク値 ("high water mark")。

              * VmRSS: 実メモリ上に存在するページサイズ。

              * VmData, VmStk, VmExe: データ、スタック、テキストセグメントのサイズ。

              * VmLib: 共有ライブラリ・コードのサイズ。

              * VmPTE: ページ・テーブル・エントリのサイズ (Linux 2.6.10 以降)。

              * Threads: このスレッドが属するプロセスのスレッド数。

              * SigQ:  このフィールドにはスラッシュで区切られた 2 つの数字が入っている。この数字はこのプロセスの
                実ユーザ ID 宛にキューイングされたシグナルに関するものである。一つ目の数字は、この実ユーザ ID 宛
                に現在キューイングされているシグナル数である。二つ目の数字は、このプロセス宛にキューイングされた
                シグナル数に関するリソース上限値である (getrlimit(2) の RLIMIT_SIGPENDING の説明を参照)。

              * SigPnd, ShdPnd: スレッド宛およびプロセス全体宛の処理待ちシグナルの数 (pthreads(7), signal(7)  参
                照)。

              * SigBlk,  SigIgn, SigCgt: ブロックされるシグナル、無視されるシグナル、捕捉待ちのシグナルを 示すマ
                スク値 (signal(7))。

              * CapInh, CapPrm, CapEff: 継承可能 (inheritable)、許可 (permitted)、実効 (effective)  の各ケーパビ
                リティセットで有効になっているケーパビリティのマスク値 (capabilities(7)  参照)。

              * CapBnd: ケーパビリティ・バウンディングセット (カーネル 2.6.26 以降、 capabilities(7)  参照)。

              * Cpus_allowed:  このプロセスが実行を許可されている  CPU のマスク値 (Linux 2.6.24 以降、 cpuset(7)
                参照)。

              * Cpus_allowed_list: 前項と同じだが、「リスト形式」での表示 (Linux 2.6.26 以降、 cpuset(7) 参照)。

              * Mems_allowed: このプロセスが使用できるメモリノードのマスク値 (Linux 2.6.24 以降、  cpuset(7)  参
                照)。

              * Mems_allowed_list: 前項と同じだが、「リスト形式」での表示 (Linux 2.6.26 以降、 cpuset(7) 参照)。

              * voluntary_context_switches, nonvoluntary_context_switches: 自発的/非自発的なコンテキストスイッチ
                の回数 (Linux 2.6.23 以降)。

       /proc/[pid]/task (Linux 2.6.0-test6 以降)
              このディレクトリには、そのプロセスのスレッド情報を含む サブディレクトリが 1 スレッドにつき 1  つ置
              かれる。 各サブディレクトリの名前はスレッドのスレッド ID ([tid])  を示す数字である (gettid(2) を参
              照)。 これらの各サブディレクトリには、 /proc/[pid]  ディレクトリ以下と同じ名前と内容のファイル群が
              ある。  すべてのスレッドで共有される属性の場合、 task/[tid] サブディレクトリ以下の各ファイルの内容
              は 親ディレクトリ /proc/[pid] の対応するファイルと同じになることだろう (例えば、マルチスレッド・プ
              ロセスではファイル  task/[tid]/cwd はいずれも親ディレクトリ内の /proc/[pid]/cwd と同じ値を持つこと
              になる。なぜなら、一つのプロセスに属すすべての   スレッドは作業ディレクトリを共有するからである)。
              スレッド毎に独立な属性の場合、 task/[tid] サブディレクトリ以下の各ファイルは異なる値を持つことがあ
              る (例えば、ファイル task/[tid]/status はスレッド毎に異なる値を持つ可能性がある)。

              マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 /proc/[pid]/task ディレクトリ
              の内容は参照できない (スレッドの終了は通常 pthread_exit(3)  を呼び出しにより行われる)。

       /proc/[pid]/wchan (Linux 2.6.0 以降)
              The symbolic name corresponding to the location in the kernel where the process is sleeping.

       /proc/apm
              Advanced  Power Management のバージョンとバッテリ情報。 カーネルのコンパイル時に CONFIG_APM を定義
              したときに存在する。

       /proc/bus
              インストールされている各バス用にサブディレクトリがある。

       /proc/bus/pccard
              PCMCIA デバイスの情報が書かれるサブディレクトリ。 カーネルのコンパイル時に CONFIG_PCMCIA  を定義し
              たときに存在する。

       /proc/[pid]/timers (Linux 3.10 以降)
              このプロセスの POSIX タイマーのリスト。 各タイマーは文字列 "ID:" で始まる行に表示される。 例:

                  ID: 1
                  signal: 60/00007fff86e452a8
                  notify: signal/pid.2634
                  ClockID: 0
                  ID: 0
                  signal: 60/00007fff86e452a8
                  notify: signal/pid.2634
                  ClockID: 1

              各タイマーに表示される行の意味は次の通りである。

              ID     このタイマーの ID。 この ID は timer_create(2) が返すタイマー ID と同じではない。 siginfo_t
                     構造化の si_timerid フィールドで参照できるカーネル内部での ID と同じである (sigaction(2) 参
                     照)。

              signal このタイマーが通知の配送に使用するシグナル番号である。   スラッシュの後ろは、シグナルハンド
                     ラーに渡される sigev_value.sival_ptr 値である。  シグナルで通知されるタイマーでのみ有効であ
                     る。

              notify スラッシュの前の部分は、このタイマーが使用する通知の配送方法であり、「スレッド」「シグナ
                     ル」「なし」のいずれかである。 スラッシュのすぐ後には、 SIGEV_THREAD_ID  通知を行うタイマー
                     では文字列の  "tid" が、 もしくは他の方法で通知するタイマーでは "pid" が表示される。 "." の
                     後ろは、   そのタイマーがシングルで通知を配送する場合にはシグナルの配送対象となるプロセスの
                     PID である。

              ClockID
                     このフィールドはタイマーが時間を計測するのに使用するクロックを示す。   ほとんどのクロックで
                     は、このフィールドは <time.h> で公開されるユーザー空間の  CLOCK_*  定数のいずれかの数字であ
                     る。     CLOCK_PROCESS_CPUTIME_ID    タイマーでは、このフィールドに    -6    が表示される。
                     CLOCK_THREAD_CPUTIME_ID タイマーでは -2 が表示される。

       /proc/bus/pccard/drivers

       /proc/bus/pci
              いくつかのサブディレクトリがあり、 PCI バス・インストールされているデバイス・ デバイスドライバの情
              報が書かれた仮想ファイルがある。 これらのファイルのうちいくつかは ASCII フォーマットではない。

       /proc/bus/pci/devices
              PCI デバイスの情報。 lspci(8)  や setpci(8)  でアクセスすることができる。

       /proc/cmdline
              ブート時に  Linux  カーネルに渡された引き数。  引き数の受け渡しは、たいてい lilo(8)  や grub(8) と
              いったブートマネージャを使って行われる。

       /proc/config.gz (Linux 2.6 以降)
              このファイルでは、現在実行中のカーネルの構築時に使用された  設定オプションを参照できる。  書式は、
              (make xconfig, make config などを使って) カーネルの設定を変更した際に生成される .config ファイルの
              ものと同じである。 ファイルの内容は圧縮されており、 zcat(1) や zgrep(1) を使うと、表示や検索ができ
              る。 ファイルが変更されていない限り、 /proc/config.gz の内容は次のコマンドで得られる内容と同じであ
              る。

                  cat /lib/modules/$(uname -r)/build/.config

              /proc/config.gz が提供されるのは、カーネルの設定で CONFIG_IKCONFIG_PROC が有効になっている場合のみ
              である。

       /proc/cpuinfo
              このファイルは、CPU   およびシステムアーキテクチャに依存する項目を  集めたもので、リストの内容はサ
              ポートされているアーキテクチャ毎に異なる。 2 つだけ共通の項目がある。  processor  はプロセッサ番号
              で、 bogomips はカーネルの初期化時に計算されるシステム定数である。 SMP マシンでは各 CPU についての
              情報が書かれている。 lscpu(1) コマンドはこのファイルから情報を収集する。

       /proc/devices
              メジャーデバイス番号とデバイスグループのテキスト形式のリスト。 MAKEDEV  スクリプトはこのファイルを
              使って、 カーネルとの整合性を保つことができる。

       /proc/diskstats (Linux 2.5.69 以降)
              このファイルには各ディスクデバイスのディスク  I/O 統計情報が書かれている。 更に詳しい情報は、Linux
              カーネルソースファイル Documentation/iostats.txt を参照すること。

       /proc/dma
              登録されている ISA DMA (direct memory access) チャネルのリスト。

       /proc/driver
              空のサブディレクトリ。

       /proc/execdomains
              実行ドメインのリスト (ABI パーソナリティ)。

       /proc/fb
              カーネルのコンパイル時に CONFIG_FB が定義されている場合、フレームバッファの情報が書かれる。

       /proc/filesystems
              カーネルが対応しているファイルシステムのテキスト形式のリスト。  カーネルに組み込まれてコンパイルさ
              れたファイルシステムと、      カーネルモジュールが現在ロードされているファイルシステムが列挙される
              (filesystems(5)  参照)。 ファイルシステムに "nodev" という印が付いている場合、  そのファイルシステ
              ムがマウントするためのブロックデバイスを  必要としないことを意味する  (例えば、 仮想ファイルシステ
              ム、ネットワークファイルシステムなど)。

              ちなみに、マウント時にファイルシステムが指定されず、  どうやってもファイルシステムの種類を判定でき
              なかった際に、  このファイルを  mount(8) が使用するかもしれない。 その場合、このファイルに含まれる
              ファイルシステムが試される (ただし、"nodev" の印がついたものは除く)。

       /proc/fs
              空のサブディレクトリ。

       /proc/ide
              このディレクトリは IDE バスをもつシステムに存在する。 各 IDE  チャネルとそれに取り付けられている各
              デバイスごとにディレクトリがあり、 以下のファイルが含まれている。

                  cache              バッファサイズ (KB)
                  capacity           セクタ数
                  driver             ドライバのバージョン
                  geometry           物理ジオメトリと論理ジオメトリ
                  identify           16 進数表記
                  media              メディアのタイプ
                  model              製造者のモデル番号
                  settings           ドライブの設定
                  smart_thresholds   16 進数表記
                  smart_values       16 進数表記

              hdparm(8)  ユーティリティは、分かりやすい形式で この情報にアクセスするための手段を提供する。

       /proc/interrupts
              IO  デバイス毎の  CPU  別の割り込み回数の記録に使われる。  Linux  2.6.24  以降、少なくとも i386 と
              x86_64 アーキテクチャでは、 (デバイスと関連がない) システム内部の割り込みについても記録される。 シ
              ステム内部の割り込みには、NMI  (nonmaskable interrupt), LOC (local timer interrupt) や、SMP システ
              ムでは TLB (TLB  flush  interrupt),  RES  (rescheduling  interrupt),  CAL  (remote  function  call
              interrupt)  などがある。 簡単に読むことのできるフォーマットで、ASCII で表記されている。

       /proc/iomem
              Linux 2.4 における I/O メモリマップ。

       /proc/ioports
              現在登録され使われている I/O ポート領域のリスト。

       /proc/kallsyms (Linux 2.5.71 以降)
              カーネルの外部シンボル定義を保持する。  modules(X)  関係のツールがローダブルモジュールを動的にリン
              クしたり バインド (bind) するのに使われる。  Linux  2.5.47  以前では、微妙に異なる書式の似たような
              ファイルが ksyms という名前であった。

       /proc/kcore
              このファイルはシステムの物理メモリを表現しており、  ELF コアファイル形式 (core file format) で保持
              されている。 この擬似ファイルと strip されていないカーネルのバイナリ (/usr/src/linux/vmlinux)  [訳
              注: パッケージに依存する]) があれば、 GDB はカーネル内の任意のデータ構造の現在の状態を調べられる。

              このファイルの大きさは物理メモリ (RAM) のサイズに 4KB を加えた値である。

       /proc/kmsg
              このファイルは  syslog(2)  システムコールでカーネルメッセージを読み出す代りに使える。 プロセスがこ
              のファイルを読むためにはスーパーユーザー権限が必要であり、 ファイルを読み出すのは 1 つのプロセスの
              みに限るべきである。  カーネルメッセージを記録するために、  syslog(2)   システムコールの機能を使う
              syslog プロセスが稼働している場合、 このファイルを読み出すべきではない。

              このファイルの中の情報は dmesg(1)  によって表示される。

       /proc/ksyms (Linux 1.1.23-2.5.47)
              /proc/kallsyms を参照。

       /proc/loadavg
              このファイルの最初の 3 つのフィールドはロードアベレージの数値で、 1, 5, 15 分 あたりの実行キュー内
              (state R) または ディスク I/O 待ち (state D) のジョブ数 を与える。 これは uptime(1) などのプログラ
              ムによって得られる値と同じである。 4 番目のフィールドはスラッシュ (/) で区切られた 2  つの数値から
              構成される。   この数値のうち最初のものは、現在実行可能なカーネルスケジュールエンティティ  (プロセ
              ス、スレッド) の数である。スラッシュの後の数値は、現在システム上に  存在するカーネルスケジュールエ
              ンティティの数である。 5 番目のフィールドは システム上に最も最近生成されたプロセスの PID である。

       /proc/locks
              このファイルは現在のファイルロック (flock(2) と fcntl(2))  とリース (fcntl(2))  を表示する。

       /proc/malloc (Linux 2.2 以前のみ)
              コンパイルのときに CONFIGDEBUGMALLOC が定義されているときのみ、このファイルは存在する。

       /proc/meminfo
              このファイルはシステムのメモリ使用状況の統計情報を表示する。 free(1) はこのファイルを使って、 その
              システムの (物理メモリとスワップの両方の) 未使用と使用中のメモリ量と、  カーネルが使用している共有
              メモリとバッファの使用量を表示する。  このファイルの各行は、パラメータ名の後に、 コロン、 パラメー
              タ値が続く。  最後に  ("kB"  などの)  計測単位がある場合もある。  以下のリストでは、  フィールド名
              と、フィールド値を読み込むのに必要なフォーマット指定子  (format specifier) について説明する。 特に
              注記がある場合を除くと、すべてのフィールドが少なくとも Linux 2.6.0  以降では存在する。  いくつかの
              フィールドは、カーネルでオプションが有効になっている場合にのみ表示される。  こうした依存関係につい
              てはリスト内に注記がある。

              MemTotal %lu
                     使用可能な RAM の総量 (つまり、 物理 RAM サイズからいくつかの予約ビットとカーネルのバイナリ
                     コードの分を引いた値)。

              MemFree %lu
                     LowFree+HighFree の合計値。

              Buffers %lu
                     Relatively  temporary  storage  for  raw  disk blocks that shouldn't get tremendously large
                     (20MB or so).

              Cached %lu
                     ディスクから読み出したファイルのインメモリキャッシュ (ページキャッシュ)。 SwapCached は含ま
                     れない。

              SwapCached %lu
                     一度スワップアウトされ、その後スワップインされたが、まだスワップファイルにも存在するメモ
                     リ。 (メモリが残り少ない場合、 これらのページは、すでにスワップファイルに存在するので、もう
                     一度スワップアウトする必要がない。 これにより I/O が節約できる。)

              Active %lu
                     最近使用されたメモリで、通常は本当に必要にならない限り回収されないメモリ。

              Inactive %lu
                     最近あまり使用されていないメモリ。 他の使用するために優先して回収すべきメモリ。

              Active(anon) %lu (Linux 2.6.28 以降)
                     [後で記載する]

              Inactive(anon) %lu (Linux 2.6.28 以降)
                     [後で記載する]

              Active(file) %lu (Linux 2.6.28 以降)
                     [後で記載する]

              Inactive(file) %lu (Linux 2.6.28 以降)
                     [後で記載する]

              Unevictable %lu (Linux 2.6.28 以降)
                     (Linux 2.6.28 から 2.6.30 まででは CONFIG_UNEVICTABLE_LRU が必要であった。)  [後で記載する]

              Mlocked %lu (Linux 2.6.28 以降)
                     (Linux 2.6.28 から 2.6.30 まででは CONFIG_UNEVICTABLE_LRU が必要であった。)  [後で記載する]

              HighTotal %lu
                     (Linux 2.6.19 以降では CONFIG_HIGHMEM が必要) highmem の総量。 highmem は物理メモリの 860MB
                     付近よりも上の部分のメモリ領域全体のことである。 highmem 領域はユーザー空間プログラムとペー
                     ジキャッシュで使用される。  カーネルはこのメモリにアクセスするのに小技を使っており、 lowmem
                     よりもアクセスが遅くなる。

              HighFree %lu
                     (Linux 2.6.19 以降では CONFIG_HIGHMEM が必要) 未使用の highmem 量。

              LowTotal %lu
                     (Starting with Linux 2.6.19, CONFIG_HIGHMEM is required.)  Total amount of lowmem.   Lowmem
                     is  memory  which  can  be used for everything that highmem can be used for, but it is also
                     available for the kernel's use for its own data structures.  Among many other things, it is
                     where everything from Slab is allocated.  Bad things happen when you're out of lowmem.

              LowFree %lu
                     (Linux 2.6.19 以降では CONFIG_HIGHMEM が必要) 未使用の lowmem 量。

              MmapCopy %lu (Linux 2.6.29 以降)
                     (CONFIG_MMU が必要)  [後で記載する]

              SwapTotal %lu
                     利用可能なスワップ空間の総量。

              SwapFree %lu
                     現在未使用のスワップ空間の量。

              Dirty %lu
                     ディスクに書き戻されるのを待っているメモリ。

              Writeback %lu
                     現在ディスクに書き戻し中のメモリ。

              AnonPages %lu (Linux 2.6.18 以降)
                     ユーザー空間ページテーブルにマッピングされているファイルと関連付けられていないページ。

              Mapped %lu
                     メモリマップされているファイル。 ライブラリなど。

              Shmem %lu (Linux 2.6.32 以降)
                     [後で記載する]

              Slab %lu
                     カーネル内のデータ構造体のキャッシュ。

              SReclaimable %lu (Linux 2.6.19 以降)
                     回収可能な Slab。 キャッシュなど。

              SUnreclaim %lu (Linux 2.6.19 以降)
                     メモリ消費が激しい際でも回収できない SlabKernelStack %lu (Linux 2.6.32 以降)
                     カーネルスタックに割り宛てられているメモリ量。

              PageTables %lu (Linux 2.6.18 以降)
                     Amount of memory dedicated to the lowest level of page tables.

              Quicklists %lu (Linux 2.6.27 以降)
                     (CONFIG_QUICKLIST が必要)  [後で記載する]

              NFS_Unstable %lu (Linux 2.6.18 以降)
                     サーバに送信されたが、まだ永続的なストレージには書き込まれていない NFS ページ。

              Bounce %lu (Linux 2.6.18 以降)
                     Memory used for block device "bounce buffers".

              WritebackTmp %lu (Linux 2.6.26 以降)
                     FUSE で一時的なライトバックバッファに使われているメモリ。

              CommitLimit %lu (Linux 2.6.10 以降)
                     Based  on  the overcommit ratio ('vm.overcommit_ratio'), this is the total amount of memory
                     currently available to be allocated on the system.  This limit is adhered to only if strict
                     overcommit   accounting   is   enabled  (mode  2  in  /proc/sys/vm/overcommit_ratio).   The
                     CommitLimit is calculated using the following formula:

                         CommitLimit =
                             ([total RAM pages] - [total huge TLB pages]) *
                             overcommit_ratio / 100 + [total swap pages]

                     For example, on a system with 1GB of physical RAM and 7GB of swap with  a  overcommit_ratio
                     of  30,  this  formula  yields  a  CommitLimit  of 7.3GB.  For more details, see the memory
                     overcommit documentation in the kernel source file Documentation/vm/overcommit-accounting.

              Committed_AS %lu
                     The amount of memory presently allocated on the system.  The committed memory is a  sum  of
                     all  of the memory which has been allocated by processes, even if it has not been "used" by
                     them as of yet.  A process which allocates 1GB of memory (using malloc(3)  or similar), but
                     touches only 300MB of that memory will show up as using only 300MB of memory even if it has
                     the address space allocated for the  entire  1GB.   This  1GB  is  memory  which  has  been
                     "committed"  to  by the VM and can be used at any time by the allocating application.  With
                     strict  overcommit  enabled  on  the  system   (mode   2   /proc/sys/vm/overcommit_memory),
                     allocations  which  would  exceed  the  CommitLimit (detailed above) will not be permitted.
                     This is useful if one needs to guarantee that processes will not fail due to lack of memory
                     once that memory has been successfully allocated.

              VmallocTotal %lu
                     vmalloc メモリ領域の総量。

              VmallocUsed %lu
                     使用中の vmalloc 領域の量。

              VmallocChunk %lu
                     vmalloc 領域の未使用の連続するブロックの最大サイズ。

              HardwareCorrupted %lu (Linux 2.6.32 以降)
                     (CONFIG_MEMORY_FAILURE が必要) [後で記載する]

              AnonHugePages %lu (Linux 2.6.38 以降)
                     (CONFIG_TRANSPARENT_HUGEPAGE が必要) ユーザー空間ページテーブルにマッピングされているファイ
                     ルと関連付けられていないページ。

              HugePages_Total %lu
                     (CONFIG_HUGETLB_PAGE が必要) ヒュージページのプールサイズ。

              HugePages_Free %lu
                     (CONFIG_HUGETLB_PAGE が必要) プール内の割り当てられていないヒュージページ数。

              HugePages_Rsvd %lu (Linux 2.6.17 以降)
                     (CONFIG_HUGETLB_PAGE が必要) プールから割り当てが宣言されたが、まだ割り当てが行われていない
                     ヒュージページ数。  これらの予約ヒュージページにより、 アプリケーションがメモリフォールト時
                     にヒュージページのプールからヒュージページが割り当てられることが保証される。

              HugePages_Surp %lu (Linux 2.6.24 以降)
                     (CONFIG_HUGETLB_PAGE is required.)  This is the number of huge pages in the pool above  the
                     value in /proc/sys/vm/nr_hugepages.  The maximum number of surplus huge pages is controlled
                     by /proc/sys/vm/nr_overcommit_hugepages.

              Hugepagesize %lu
                     (CONFIG_HUGETLB_PAGE が必要) ヒュージページのサイズ。

       /proc/modules
              現在システムにロードされているモジュールのテキスト形式のリスト。 lsmod(8)  も参照。

       /proc/mounts
              カーネル 2.4.19 より前では、このファイルは現在システムにマウントされている  全てのファイルシステム
              のリストであった。  Linux 2.4.19 でプロセス単位のマウント名前空間が導入されたことに伴い、 このファ
              イルは /proc/self/mounts へのリンクとなった。 /proc/self/mounts はそのプロセス自身のマウント名前空
              間のマウントポイントのリストである。 このファイルのフォーマットは fstab(5)  に記述されている。

       /proc/mtrr
              Memory Type Range Registers。 詳細は、Linux カーネルソースファイル Documentation/mtrr.txt を参照す
              ること。

       /proc/net
              さまざまなネットワークについての擬似ファイルで、 それぞれがネットワーク層の各種の状態を与える。 こ
              れらのファイルの内容は ASCII 形式なので、 cat(1)  で読み出せる。 とはいえ基本コマンドの netstat(8)
              はこれらのファイルの内容のよりすっきりとした表示を提供する。

       /proc/net/arp
              アドレス解決に使われるカーネルの ARP テーブルの ASCII 可読なダンプを保持している。  動的結合された
              ものと固定 (preprogrammed) の両方の APP エントリを見ることができる。フォーマットは以下のとおり:

        IP address     HW type   Flags     HW address          Mask   Device
        192.168.0.50   0x1       0x2       00:50:BF:25:68:F3   *      eth0
        192.168.0.250  0x1       0xc       00:00:00:00:00:00   *      eth0

              ここで IP address はマシンの IPv4 アドレス、 HW type はそのアドレスの RFC 826 で定められているハー
              ドウェアの形式、 Flags は ARP 構造体 (/usr/include/linux/if_arp.h  内で定義されている)  の内部フラ
              グ、  HW address はその IP アドレスにマップされているデータリンク層のアドレス (もしわかっていれば)
              である。

       /proc/net/dev
              擬似ファイル dev はネットワークデバイスの状態情報を含んでいる。 これは送受信したパケット数、エラー
              とコリジョン  (collision) の回数、 その他の基本的な統計を与える。 これらは ifconfig(8)  がデバイス
              の状態を報告するのに使われる。 フォーマットは以下のとおり:

 Inter-|   Receive                                                |  Transmit
  face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
     lo: 2776770   11307    0    0    0     0          0         0  2776770   11307    0    0    0     0       0          0
   eth0: 1215645    2751    0    0    0     0          0         0  1782404    4324    0    0    0   427       0          0
   ppp0: 1622270    5552    1    0    0     0          0         0   354130    5669    0    0    0     0       0          0
   tap0:    7714      81    0    0    0     0          0         0     7714      81    0    0    0     0       0          0

       /proc/net/dev_mcast
              /usr/src/linux/net/core/dev_mcast.c で定義されており、以下の形式である。
                   indx interface_name  dmi_u dmi_g dmi_address
                   2    eth0            1     0     01005e000001
                   3    eth1            1     0     01005e000001
                   4    eth2            1     0     01005e000001

       /proc/net/igmp
              Internet      Group       Management       Protocol       (インターネットグループ管理プロトコル)。
              /usr/src/linux/net/core/igmp.c で定義されている。

       /proc/net/rarp
              このファイルは  arp  と同じフォーマットで 逆アドレス解決サービス (reverse address lookup services)
              rarp(8)  に提供するために使われる現在の逆マップデータベースの内容を含んでいる。 RARP  がカーネルコ
              ンフィグレーションに設定されていなければ、 このファイルは存在しない。

       /proc/net/raw
              RAW ソケットテーブルのダンプを保持している。 ほとんどの情報はデバッグ以外では 使われない。 "sl" の
              値はソケットのカーネルハッシュスロット、 "local_address"  はローカルアドレスとプロトコル番号のペア
              [訳者追加:  "rem_address"  はリモートアドレスとプロトコル番号のペア]。 "st" はソケットの内部状態。
              "tx_queue" と "rx_queue" はカーネルメモリを 消費している 送信/受信データキューのサイズ。  "tr"  と
              "tm->when" と "rexmits" フィールドは RAW では使われていない。 "uid" フィールドはソケット生成者の実
              効 UID を保持している。

       /proc/net/snmp
              このファイルは SNMP エージェントが必要とする IP, ICMP, TCP, UDP 管理情報を ASCII  データとして保持
              している。

       /proc/net/tcp
              TCP  ソケットテーブルのダンプを保持している。  大部分の情報はデバッグ以外には 使われない。 sl はソ
              ケットのカーネルハッシュスロットの値、  "local_address"   はローカルアドレスとポート番号のペアであ
              る。  (ソケットが接続している場合は) "rem_address" はリモートアドレスとポート番号の対である。 "st"
              はソケット の内部状態である。 "tx_queue" と  "rx_queue"  はカーネルメモリを消費している  送信/受信
              データキューのサイズ。 "tr" と "tm->when" と "rexmits" フィールドはソケット状態のカーネル 内部情報
              を保持しているが、 これらはデバッグのときにしか役に立たない。 "uid" フィールドはソケット  生成者の
              実効 UID を保持している。

       /proc/net/udp
              UDP  ソケットテーブルのダンプを保持している。  大部分の情報はデバッグ以外には 使われない。 sl はソ
              ケットのカーネルハッシュスロットの値、  "local_address"   はローカルアドレスとポート番号のペアであ
              る。   (ソケットが接続している場合は)  "rem_address"  はリモートアドレスとポート番号のペアである。
              "st" はソケットの 内部状態である。 "tx_queue" と "rx_queue" はカーネルメモリを消費している 送信/受
              信データキューのサイズ。  "tr"  と  "tm->when"  と "rexmits" フィールドは UDP では使われていない。
              "uid" フィールドはソケット生成者の 実効 UID を保持している。 フォーマットは以下のとおり:

 sl  local_address rem_address   st tx_queue rx_queue tr rexmits  tm->when uid
  1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
  1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
  1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0

       /proc/net/unix
              UNIX ドメインソケットのリスト。 フォーマットは以下のとおり:
              Num RefCount Protocol Flags    Type St Path
               0: 00000002 00000000 00000000 0001 03
               1: 00000001 00000000 00010000 0001 01 /dev/printer

              ここで、Num  はカーネルのテーブルスロット数、   RefCount   はソケットを使用して   いるユーザー数、
              Protocol はいまのところいつも 0 で、Flags はソケットの状態 を保持している カーネル内部のフラグであ
              る。 Type はいまのところいつも 1 (UNIX  ドメインのデータグラムソケットは、現在のカーネルではサポー
              トされていない  [訳注:  2.0.34  ではサポートされているようだ])。  St  はソケットの内部状態で、Path
              は(もしあれば) ソケットのパス名である。

       /proc/partitions
              各パーティションのメジャー番号とマイナー番号が書かれている。 さらに、 1024  バイトブロック数とパー
              ティション名も書かれている。

       /proc/pci
              カーネルの初期化時に見つかったすべての PCI デバイスのリストと その設定。

              このファイルは非推奨であり、新しい  PCI  用の /proc インターフェイス (/proc/bus/pci)  を使うこと。
              このファイルは Linux 2.2 でオプションになった (カーネルのコンパイル時に CONFIG_PCI_OLD_PROC をセッ
              トすると利用可能であった)。  Linux 2.4 で再びオプションなしで有効に戻った。 さらに、Linux 2.6 で非
              推奨となり (CONFIG_PCI_LEGACY_PROC をセットするとまだ利用可能であった)、 最終的に Linux 2.6.17  以
              降で完全に削除された。

       /proc/profile (Linux 2.4 以降)
              このファイルは、  カーネルが profile=1 コマンドラインオプションで起動された場合にのみ存在する。 こ
              のファイルは、 カーネルのプロファイリング情報を readprofile(1)  を使って読み込めるバイナリ形式で公
              開する。  このファイルに (例えば、空の文字列を) 書き込むと、プロファイリングカウンターがリセットさ
              れる。 いくつかのアーキテクチャでは、 サイズ sizeof(int)  のバイナリ整数である「プロファイリング倍
              率」を書き込むとプロファイリングの割り込み頻度を設定できる。

       /proc/scsi
              scsi  中間レベル擬似ファイルといくつかの  SCSI 低レベルドライバの ディレクトリを含むディレクトリ。
              これらのファイルは ASCII で表現されているので cat(1)  で読める。

              いくつかのファイルは書き込み可能で、サブシステムの設定を変更したり、 特定の機能をオン/オフすること
              ができる。

       /proc/scsi/scsi
              カーネルが知っているすべての  SCSI デバイスのリスト。 このリストは起動時に (コンソールで) 見られる
              ものとほぼ同じである。 scsi は現在のところ add-single-device コマンドのみをサポートしている。 これ
              によりルート (root) は既知のデバイスリストへ活線挿抜 (hotplugged)  デバイスを加えることができる。

              次のコマンドを実行すると、

                  echo 'scsi add-single-device 1 0 5 0' > /proc/scsi/scsi

              ホストアダプタ  scsi1 は SCSI チャネル 0 で ID 5 LUN 0 のデバイスを探す。 もしこのアドレスに既知の
              デバイスがあるか、 不正なアドレスであったならばエラーが返る。

       /proc/scsi/[drivername]
              いまのところ [drivername] は NCR53c7xx, aha152x, aha1542, aha1740,  aic7xxx,  buslogic,  eata_dma,
              eata_pio,  fdomain,  in2000, pas16, qlogic, scsi_debug, seagate, t128, u15-24f, ultrastore, wd7000
              のどれかである。 少なくとも 1 つの SCSI ホストバスアダプタ (HBA)  に  ドライバが割り当てられている
              と、そのドライバに対応したディレクトリが現れる。 それぞれのディレクトリには、 登録されたホストアダ
              プタに対応してファイルが作られる。 このファイルの名前は、システムの初期化の際に ホストアダプタに割
              り当てられた番号になる。

              これらのファイルを読めばドライバとホストアダプタの設定や 統計などを見ることができる。

              これらのファイルへの書き込みはホストアダプタごとに異なる動作を引き起こす。   たとえば  latencynolatency コマンドを用いると、 ルート (root、スーパーユーザー) は eata_dma  ドライバの隠し測定コー
              ドの  オン/オフを切り替えることができる。  また   lockupunlock  コマンドを用いると、ルートは
              scsi_debug ドライバがシミュレートするバスロックアップ (bus lockup) を 制御することができる。

       /proc/self
              このディレクトリはプロセスに (プロセス自身の)  /proc ファイルシステムへのアクセスを参照させる。 こ
              れは /proc 内の (このプロセスの) プロセス ID が名前となっている ディレクトリと全く同一である。

       /proc/slabinfo
              Linux  2.6.16 以降では、 カーネル設定オプション CONFIG_SLAB が有効の場合にのみ、このファイルは存在
              する。 カーネルキャッシュの情報。 /proc/slabinfo のフィールドは以下のとおり。

                  cache-name
                  num-active-objs
                  total-objs
                  object-size
                  num-active-slabs
                  total-slabs
                  num-pages-per-slab

              詳細は slabinfo(5)  を参照すること。

       /proc/stat
              カーネル/システムの統計。 アーキテクチャによって異なる。 共通エントリには以下のものが含まれる。

              cpu  3357 0 4313 1362393
                     各種状態で消費された時間の合計値。 時間は USER_HZ を単位として計測される  (ほとんどのアーキ
                     テクチャでは USER_HZ は 1/100 秒で、 正しい値は sysconf(_SC_CLK_TCK) を使って取得できる)。

                     user   (1) ユーザーモードで消費した時間。

                     nice   (2) 低い優先度 (nice) のユーザーモードで消費した時間。

                     system (3) システムモードで消費した時間。

                     idle   (4)   タスク待ち (idle task) で消費した時間。 この値は擬似ファイル /proc/uptime の 2
                            番目のエントリの値を USER_HZ 倍した値になるはずである。

                     iowait (Linux 2.5.41 以降)
                            (5) I/O の完了待ちの時間。

                     irq (Linux 2.6.0-test4 以降)
                            (6) 割り込みの処理に使った時間。

                     softirq (Linux 2.6.0-test4 以降)
                            (7) ソフト割り込みの処理に使った時間。

                     steal (Linux 2.6.11 以降)
                            (8) 盗まれた時間 (stolen time)。仮想化環境での動作時に他のオペレーティングシステムに
                            より消費された時間である。

                     guest (Linux 2.6.24 以降)
                            (9) Linux カーネルの制御下のゲストオペレーティングシステムの仮想 CPU の 実行に消費さ
                            れた時間。

                     guest_nice (Linux 2.6.33 以降)
                            (10) nice が適用されたゲスト (Linux カーネルの制御下のゲストオペレーティングシステム
                            の仮想 CPU) の 実行に消費された時間。

              page 5741 1808
                     システムが (ディスクから) ページイン/ページアウトしたページ数。

              swap 1 0
                     スワップイン/スワップアウトされたページ数。

              intr 1462898
                     この行はシステム起動時以降に処理された割り込みの回数を示す。 最初の欄は処理された割り込み全
                     ての合計であり、それ以降の欄は 個々の割り込みについての合計数である。

              disk_io: (2,0):(31,30,5764,1,2) (3,0):...
                     (メジャー番号, ディスクインデックス番号):(情報なし (noinfo), 読み込み回数, 読み込みブロック
                     数, 書き出し回数, 書き出しブロック数)
                     (Linux 2.4 のみ)

              ctxt 115315
                     コンテクスト・スイッチの延べ回数。

              btime 769041601
                     起動時刻、紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの秒数。

              processes 86031
                     システム起動時からの延べフォーク (fork) 数。

              procs_running 6
                     実行中状態のプロセス数 (Linux 2.5.45 以降)。

              procs_blocked 2
                     I/O 完了待ちで停止 (blocked) しているプロセス数 (Linux 2.5.45 以降)。

       /proc/swaps
              使用中のスワップ領域。 swapon(8)  も参照すること。

       /proc/sys
              このディレクトリ (1.3.57 以降に存在) はカーネル変数に対応するいくつかの ファイルとサブディレクトリ
              を含む。 これらの変数は読み出し可能である。 また場合によっては /proc ファイルシステムや、  (非推奨
              の) システムコール sysctl(2) を用いて書き換えることもできる。

       /proc/sys/abi (Linux 2.4.10 以降)
              このディレクトリにはアプリケーションのバイナリ情報が入ったファイルが置かれる。  更に詳しい情報は、
              Linux カーネルソースファイル Documentation/sysctl/abi.txt を参照すること。

       /proc/sys/debug
              このディレクトリは空の場合もある。

       /proc/sys/dev
              このディレクトリにはデバイス特有の情報 (たとえば dev/cdrom/info)  が含まれる。  このディレクトリが
              空になっているシステムもある。

       /proc/sys/fs
              このディレクトリには、ファイルシステムに関連するカーネル変数用の  ディレクトリとサブディレクトリが
              含まれる。

       /proc/sys/fs/binfmt_misc
              このディレクトリ以下のファイルについてのドキュメントは、          Linux           カーネルソースの
              Documentation/binfmt_misc.txt にある。

       /proc/sys/fs/dentry-state (Linux 2.2 以降)
              このファイルには、ディレクトリキャッシュ  (dcache) の状態に関する情報が 入っている。ファイルには、
              nr_dentry, nr_unused, age_limit (秒単位の age), want_pages (システムがリクエストしたページ数),  ダ
              ミーの 2 つの値、 という 6 つの数字が書かれている。

              * nr_dentry は割り当てられた dentry (dcache エントリ) の数である。 このフィールドは Linux 2.2 では
                使用されない。

              * nr_unused は未使用の dentry 数である。

              * age_limit は、メモリが不足している場合に次に dcache entry を再要求できるように  なるまでの残り時
                間 (秒数) である。

              * want_pages は、カーネルが shrink_dcache_pages() を呼び出したが dcache がまだ縮小されていない場合
                に、0 以外の値となる。

       /proc/sys/fs/dir-notify-enable
              このファイルは fcntl(2)  に記述されている dnotify インターフェースをシステム全体で無効にしたり有効
              にしたりする。 このファイルに値 0 が書かれている場合はインターフェースが無効になり、 値 1 の場合は
              有効になる。

       /proc/sys/fs/dquot-max
              このファイルにはキャッシュされるディスク quota エントリの最大数が書かれている。 (2.4 系の)  システ
              ムの中には、このファイルが存在しないものもある。 キャッシュされるディスク quota エントリの空きが非
              常に少なく、  とても多くのシステムユーザーが同時に存在する場合、  この制限を上げるといいかもしれな
              い。

       /proc/sys/fs/dquot-nr
              このファイルには割り当てられているディスク  quota のエントリ数と、 空いているディスク quota のエン
              トリ数が書かれている。

       /proc/sys/fs/epoll (Linux 2.6.28 以降)
              このディレクトリには、ファイル max_user_watches がある。 これらは、 epoll インタフェースが消費する
              カーネルメモリ量を制限するのに使用できる。 詳細は epoll(7)  を参照。

       /proc/sys/fs/file-max
              このファイルは、 システム全体でプロセスがオープンできるファイル数の上限を定義する (setrlimit(2) も
              参照; setrlimit(2) を使うと、 オープンできるファイル数のプロセス毎の上限 RLIMIT_NOFILE  を設定でき
              る)。 ファイルハンドルを使い果たしたというエラーメッセージ ("VFS: file-max limit <number> reached"
              を探すとよい) がカーネルログに大量に出る場合は、以下のようにこの値を増加させてみるとよい。

                  echo 100000 > /proc/sys/fs/file-max

              file-max に書かれている値は、カーネル定数 NR_OPEN に制限される。

              特権プロセス (CAP_SYS_ADMIN) は file-max 上限を上書きできる。

       /proc/sys/fs/file-nr
              This (read-only) file contains three numbers: the number of  allocated  file  handles  (i.e.,  the
              number of files presently opened); the number of free file handles; and the maximum number of file
              handles (i.e., the same value as /proc/sys/fs/file-max).  If the number of allocated file  handles
              is close to the maximum, you should consider increasing the maximum.  Before Linux 2.6, the kernel
              allocated file handles dynamically, but it didn't free them again.  Instead the free file  handles
              were  kept  in  a  list for reallocation; the "free file handles" value indicates the size of that
              list.  A large number of free file handles indicates that there was a past peak in  the  usage  of
              open  file handles.  Since Linux 2.6, the kernel does deallocate freed file handles, and the "free
              file handles" value is always zero.

       /proc/sys/fs/inode-max (Linux 2.2 までにのみ存在)
              このファイルには、メモリ内 inode の最大値が書かれている。 この値は file-max の値の 3-4  倍にすべき
              である。  これは stdin, stdout, ネットワークソケットを扱うにも inode が必要なためである。 日常的に
              inode を使い果たしている場合は、この値を増やす必要がある。

              Linux 2.4 以降では、 inode 数の静的な上限はなくなり、 このファイルは削除された。

       /proc/sys/fs/inode-nr
              このファイルには、 inode-state の最初の 2 つの値が書かれている。

       /proc/sys/fs/inode-state
              This file contains seven numbers: nr_inodes, nr_free_inodes,  preshrink,  and  four  dummy  values
              (always zero).

              nr_inodes  is the number of inodes the system has allocated.  nr_free_inodes represents the number
              of free inodes.

              preshrink is nonzero when the nr_inodes > inode-max and the system needs to prune the  inode  list
              instead of allocating more; since Linux 2.4, this field is a dummy value (always zero).

       /proc/sys/fs/inotify (Linux 2.6.13 以降)
              このディレクトリには、ファイル  max_queued_events,  max_user_instances,  and max_user_watches があ
              る。これらは、 inotify  インタフェースが消費するカーネルメモリ量を制限するのに利用できる。  詳細は
              inotify(7)  を参照。

       /proc/sys/fs/lease-break-time
              このファイルは、ファイルを保持しているプロセスに対して カーネルがシグナルを送り、 他のプロセスがそ
              のファイルをオープンするのを待っていることを通知してから、  そのプロセスに対してカーネルがファイル
              のリース  (lease,  貸し出し)  (fcntl(2)   を参照)  を許す猶予期間を指定する。  リースホルダ (lease
              holder: ファイルの貸し出しを受けているプロセス) が  猶予期間中にリースを削除するか階級を低くしない
              場合、 カーネルはファイルのリースを強制的に止める。

       /proc/sys/fs/leases-enable
              このファイルはシステム全体でのファイルリース  (fcntl(2)  を参照) を有効または無効にする。 ファイル
              に値 0 が書き込まれている場合、リースは無効である。 0 以外の場合にはリースは有効である。

       /proc/sys/fs/mqueue (Linux 2.6.6 以降)
              このディレクトリにはファイル msg_max, msgsize_max, and queues_max がある。これらは POSIX  メッセー
              ジキューで使用されるリソースの 制御を行う。 詳細は mq_overview(7)  を参照。

       /proc/sys/fs/overflowgid/proc/sys/fs/overflowuid
              これらのファイルにより、ユーザーは固定  UID  と固定 GID の値を変更できる。 デフォルトは 65534 であ
              る。 Linux の UID と GID は 32 ビットであるが、 16 ビットの UID と GID  しかサポートしないファイル
              システムもある。 このようなファイルシステムが書き込みを許可してマウントされた場合、 65535 を超える
              UID と GID は、 ディスクに書き込まれる前にオーバーフロー値に変換される。

       /proc/sys/fs/pipe-max-size (Linux 2.6.35 以降)
              このファイルの値により、 fcntl(2) の F_SETPIPE_SZ 操作で増やすことができるパイプ容量の上限値が定義
              される。  この上限は非特権プロセスにのみ適用される。  このファイルのデフォルト値は  1,048,576 であ
              る。 このファイルに設定した値は切り上げられて、 実装側で利用するのに都合のよい値に変更される場合が
              ある。  切り上げられた値を確認するには、 値を設定した後でこのファイルの内容を表示すればよい。 この
              ファイルに設定できる最小値はシステムのページサイズである。

       /proc/sys/fs/protected_hardlinks (Linux 3.6 以降)
              このファイルの値が 0 の場合、 ハードリンクの作成には何の制限も適用されない (すなわち、  Linux  3.6
              より前の伝統的な動作である)。  このファイルの値が 1 の場合、以下の条件のいずれか一つが成立する場合
              にのみ、 リンク先のファイルへのハードリンクが作成できる。

              *  呼び出し元が CAP_FOWNER ケーパビリティを持っている。

              *  そのリンクを作成中のプロセスのファイルシステム UID が、 リンク先ファイルの所有者 (UID) と一致す
                 る  (credentials(7) に説明があるが、 通常、 プロセスのファイルシステム UID はプロセスの実効 UID
                 と同じである)。

              *  以下の条件が全て成立する。

                  •  リンク先が通常のファイルである。

                  •  リンク先ファイルで set-user-ID 許可ビットが有効になっていない。

                  •  リンク先ファイルで、 許可ビット set-group-ID と  group-executable  が同時に有効になっていな
                     い。

                  •  呼び出し元は、 リンク先ファイルの読み出し、書き込み許可を持っている (ファイルの許可マスクで
                     許可されているか、適切なケーパビリティを持っているかは問わない)。

              The default value in this file is 0.  Setting the value to 1  prevents  a  longstanding  class  of
              security  issues caused by hard-link-based time-of-check, time-of-use races, most commonly seen in
              world-writable directories such as /tmp.  The common method of exploiting this flaw  is  to  cross
              privilege  boundaries  when  following a given hard link (i.e., a root process follows a hard link
              created by another user).  Additionally, on  systems  without  separated  partitions,  this  stops
              unauthorized  users  from  "pinning"  vulnerable  set-user-ID and set-group-ID files against being
              upgraded by the administrator, or linking to special files.

       /proc/sys/fs/protected_symlinks (Linux 3.6 以降)
              このファイルの値が 0 の場合、 以下のシンボリックリンクを辿る際に何の制限も適用されない (すなわち、
              Linux 3.6 より前の伝統的な動作である)。 このファイルの値が 1 の場合、 以下の状況においてのみシンボ
              リックリンクが辿られる。

              *  そのリンクを辿っているプロセスのファイルシステム UID が、 シンボリックリンクの所有者 (UID) と一
                 致する  (credentials(7) に説明があるが、 通常、 プロセスのファイルシステム UID はプロセスの実効
                 UID と同じである)。

              *  そのリンクが world-writable の sticky ビットがセットされたディレクトリではない。

              *  シンボリックリンクとその親ディレクトリが同じ所有者 (UID) である。

              システムコールが上記の制約によりシンボリックリンクを辿れなかった場合は、 errno にエラー EACCES  が
              設定される。

              The  default  value  in  this  file  is  0.  Setting the value to 1 avoids a longstanding class of
              security issues based on time-of-check, time-of-use races when accessing symbolic links.

       /proc/sys/fs/suid_dumpable (Linux 2.6.13 以降)
              このファイルの値により、set-user-ID  されたバイナリや、  保護がかかった  (protected)  バイナリ   /
              tainted  な  (汚染された; ライセンスがカーネルと適合しない) バイナリに対して、コアダンプファイルを
              生成するかどうかが決定される。 以下の 3つの値を指定することができる:

              0 (default)
                     この値を指定すると、以前と同じ (Linux 2.6.13 より前の) 動作をする。 (seteuid(2),  setgid(2)
                     などを呼び出すことや、set-user-ID や set-group-ID されたプログラムを 実行することで) 資格情
                     報 (credentials) が変更されているプロセスや、  プロセスの実行バイナリの読み出し許可がないプ
                     ロセスに対して、 コアダンプを生成しない。

              1 ("debug")
                     すべてのプロセスで、可能であればコアダンプを行う。 コアダンプファイルの所有者は、ダンプを行
                     うプロセスのファイルシステム UID となり、セキュリティ上の考慮は行われない。  この値は、シス
                     テムデバッグの場面だけを想定して設けられている。 ptrace のチェックも行われない。

              2 ("suidsafe")
                     通常はダンプされないようなバイナリ (上記の "0" 参照) を root だけが読み出し可能な形でダンプ
                     する。 この場合、ユーザはそのコアダンプファイルを削除することはできるが、  読むことはできな
                     い。  セキュリティ上の理由から、このモードのコアダンプでは、 既存のダンプファイルや他のファ
                     イルを上書きすることはない。   このモードは、管理者が通常の環境で問題を解析しようとする際に
                     適している。

                     さらに、  Linux 3.6 以降では、 /proc/sys/kernel/core_pattern は絶対パス名かパイプコマンドで
                     なければならない。 core(5) に詳しい説明がある。 core_pattern がこれらのルールに合致しない場
                     合は、 警告がカーネルログに書き込まれ、 コアダンプは生成されない。

       このファイルはスーパブロックの値を制御する。
              この値はカーネルがマウントできるファイルシステムの最大値になる。 現在、 super-max で許可されている
              ファイルシステム数以上に マウントする必要がある場合は、この値を増加させるだけでよい。

       /proc/sys/fs/super-nr
              このファイルには現在マウントされているファイルシステム数が書かれている。

       /proc/sys/kernel
              このディレクトリには、以下で説明する様々なカーネルパラメータを  制御するためのファイルが配置されて
              いる。

       /proc/sys/kernel/acct
              このファイルには 3 つの値が含まれている: highwater, lowwater, frequency である。 BSD-style process
              accounting が有効になっている場合、 これら 3 つの値が動作を制御する。 ログファイルのあるファイルシ
              ステムの空き領域が   lowwater   パーセント以下になった場合は、ログ記録を一時停止する。  空き領域が
              highwater  パーセント以上になった場合に、ログ記録を再開する。   frequency   はカーネルが空き領域の
              チェックをする頻度である (単位は秒)。 デフォルトの値は、4, 2, 30 である。 つまり、空き領域が 2% 以
              下になるとログ記録を一時停止し、 空き領域が 4% 以上となったときに再開する。 空き領域についての情報
              は 30 秒間有効である点に注意すること。

       /proc/sys/kernel/cap_last_cap (Linux 3.2 以降)
              capabilities(7) 参照。

       /proc/sys/kernel/cap-bound (Linux 2.2 to 2.6.24 以降)
              /proc/sys/kernel/cap-bound  このファイルにはカーネルの capability bounding set (符号付き 10 進数表
              現) の値が書かれている。 execve(2)  中は、このセットとプロセスに許可されている権限の AND  がとられ
              る。  Linux 2.6.25 以降では、システム全体のケーパビリティバウンディングセットは なくなり、スレッド
              単位のバウンディングセットに置き換えられた。 capabilities(7)  を参照。

       /proc/sys/kernel/core_pattern
              core(5)  参照。

       /proc/sys/kernel/core_uses_pid
              core(5)  参照。

       /proc/sys/kernel/ctrl-alt-del
              このファイルはキーボードの  Ctrl-Alt-Del  の扱いを制御する。  このファイルにある値が  0   の場合、
              Ctrl-Alt-Del  が捕捉されると init(8)  プログラムに送られて、正しく再起動される。 値が 0 より大きい
              場合、Vulcan Nerve Pinch (tm) に反応して、 Linux  はダーティバッファを同期させることなく、すぐに再
              起動を行う。  注意:  プログラム (dosemu など) に "raw" モードのキーボードがある場合、 ctrl-alt-del
              はカーネルの tty レイヤーに到達する前に プログラムに遮断され、  プログラムに送られてどのように扱う
              かが決められる。

       /proc/sys/kernel/dmesg_restrict (Linux 2.6.37 以降)
              このファイルの値により誰がカーネル  syslog の内容を参照できるかが決定される。 このファイルの値が 0
              であれば、制限はなくなる。 値が 1 であれば、 特権ユーザーだけがカーネル syslog  を読み出すことがで
              きる (詳細は syslog(2) を参照)。 Linux 3.4 以降では CAP_SYS_ADMIN ケーパビリティを持ったユーザーだ
              けがこのファイルの値を変更できる。

       /proc/sys/kernel/domainname/proc/sys/kernel/hostname
              これらのファイルは、コマンド domainname(1), hostname(1)  と全く同じ方法で、 マシンの NIS/YP ドメイ
              ン名とホスト名の設定に使える。 すなわち

                  # echo 'darkstar' > /proc/sys/kernel/hostname
                  # echo 'mydomain' > /proc/sys/kernel/domainname

              は、以下と同じ効果がある。

                  # hostname 'darkstar'
                  # domainname 'mydomain'

              注意: 典型的な darkstar.frop.org という名前には、 ホスト名 "darkstar" と DNS (Internet Domain Name
              Server)   ドメイン名  "frop.org"  が含まれているが、DNS  ドメイン名と  NIS  (Network   Information
              Service) または YP (Yellow Pages) のドメイン名を混同してはならない。 一般にこれら 2 つのドメイン名
              は異なる。 詳細な議論は、 hostname(1)  の man ページを参照すること。

       /proc/sys/kernel/hotplug
              このファイルはホットプラグ・ポリシー・エージェントのパスが書かれている。  このファイルのデフォルト
              値は /sbin/hotplug である。

       /proc/sys/kernel/htab-reclaim
              (PowerPC  のみ)  このファイルを  0  以外の値に設定すると、  PowerPC  htab  (カーネルソースファイル
              Documentation/powerpc/ppc_htab.txt 参照) を、システムがアイドルループになるたびに切り詰める。

       /proc/sys/kernel/kptr_restrict (Linux 2.6.38 以降)
              The value in this file determines whether kernel addresses are exposed via /proc files  and  other
              interfaces.   A  value  of  0  in  this  file  imposes no restrictions.  If the value is 1, kernel
              pointers printed using the %pK format specifier will be replaced with zeros unless  the  user  has
              the  CAP_SYSLOG  capability.   If  the  value  is  2, kernel pointers printed using the %pK format
              specifier will be replaced with zeros regardless of the user's capabilities.  The initial  default
              value  for  this  file  was 1, but the default was changed to 0 in Linux 2.6.39.  Since Linux 3.4,
              only users with the CAP_SYS_ADMIN capability can change the value in this file.

       /proc/sys/kernel/l2cr
              (PowerPC のみ) このファイルには G3 プロセッサボードの L2 キャッシュを制御するフラグが含まれる。  0
              の場合、キャッシュは無効になる。 0 以外の場合は有効になる。

       /proc/sys/kernel/modprobe
              このファイルには、カーネルモジュールローダへのパスが含まれる。  デフォルトの値は /sbin/modprobe で
              ある。このファイルは、CONFIG_MODULES オプション (Linux 2.6.26 以前では  CONFIG_KMOD)  を有効にして
              カーネルが作成されている場合にのみ存在する。  このファイルについては、Linux カーネルソースファイル
              Documentation/kmod.txt (カーネル 2.4 以前のみに存在) に記述されている。

       /proc/sys/kernel/modules_disabled (Linux 2.6.31 以降)
              他のモジュールが有効になったカーネルへのモジュールのロードが許可されるかを示すオン・オフ値である。
              デフォルト値はオフ  (0)  だが、  オン (1) に設定することができる。 一度オンにすると、 モジュールを
              ロードすることもアンロードすることもできなくなり、 この値をオフに戻すこともできない。 このファイル
              が存在するのは、  カーネルが CONFIG_MODULES オプションを有効にしてコンパイルされている場合だけであ
              る。

       /proc/sys/kernel/msgmax (Linux 2.2 以降)
              このファイルは、System V メッセージキューに書き込まれる 1 つのメッセージの  最大バイト数を、システ
              ム全体で制限する。

       /proc/sys/kernel/msgmni (Linux 2.4 以降)
              このファイルはメッセージキュー識別子の最大数をシステム全体で制限する。

       /proc/sys/kernel/msgmnb (Linux 2.2 以降)
              このファイルは、  msg_qbytes の設定を初期化するシステム全体のパラメータで ある。 msg_qbytes は以降
              で作成されるメッセージキューで使われる。 msg_qbytes 設定では、メッセージキューに書き込まれる最大バ
              イト数を指定する。

       /proc/sys/kernel/ngroups_max (Linux 2.6.4 以降)
              このファイルは、プロセスグループのメンバー数の上限値を表示する読み出し専用のファイルである。

       /proc/sys/kernel/ostype/proc/sys/kernel/osrelease
              これらのファイルは文字列 /proc/version の各部分を与える。

       /proc/sys/kernel/overflowgid/proc/sys/kernel/overflowuid
              これらのファイルは /proc/sys/fs/overflowgid/proc/sys/fs/overflowuid を複製したものである。

       /proc/sys/kernel/panic
              このファイルはカーネル変数  panic_timeout への読み出しと書き込みのアクセスを与える。 この値が 0 な
              らば、パニック時にカーネルは (無限) ループに入る。 0  でなければ、その秒数だけ待ってから自動的に再
              起動する。 ソフトウェア watchdog ドライバを使っている場合、 推奨される設定は 60 である。

       /proc/sys/kernel/panic_on_oops (Linux 2.5.68 以降)
              このファイルは、oops や BUG が起こった場合のカーネルの動作を制御する。 ファイルに 0 が書かれている
              場合、システムは操作を続行しようとする。 1 が書かれている場合、システムは (klogd が oops  出力を記
              録する時間を与えるために)  数秒間遅延した後、 panic を起こす。 /proc/sys/kernel/panic ファイルも 0
              でない場合、マシンは再起動される。

       /proc/sys/kernel/pid_max (Linux 2.5.34 以降)
              このファイルは、PID をいくつで終了にするかを指定する (すなわち、このファイルの値は最大 PID より  1
              大きい)。  このファイルのデフォルト値は 32768 であり、 その場合には以前のカーネルと同じ PID の範囲
              になる。 32ビットのプラットフォームでは、 pid_max  の最大値は  32768  である。  64ビットのプラット
              フォームでは、 2^22 (PID_MAX_LIMIT, 約 4,000,000) までの任意の値を設定できる。

       /proc/sys/kernel/powersave-nap (PowerPC のみ)
              このファイルにはフラグが書かれている。  フラグが設定されると、Linux-PPC は 省電力の "nap" モードを
              使う。 設定されない場合は、"doze" モードが使われる。

       /proc/sys/kernel/printk
              このファイルにある      4       つの値は、       console_loglevel,       default_message_loglevel,
              minimum_console_loglevel, default_console_loglevel である。 これらの値はエラーメッセージを表示した
              り記録したりする printk() の動作に影響する。 各 loglevel の情報については、 syslog(2)   を参照する
              こと。 優先度が console_loglevel 以上のメッセージは、コンソールに表示される。 優先度が明示されてい
              ないメッセージは、優先度が default_message_level のときに表示される。 minimum_console_loglevelconsole_loglevel に設定できる最小 (最高) の値である。 default_console_loglevelconsole_loglevel
              のデフォルトの値である。

       /proc/sys/kernel/pty (Linux 2.6.4 以降)
              このディレクトリは、UNIX 98 疑似端末 (pts(4) を参照) の数に関連する 2 つのファイルを含む。

       /proc/sys/kernel/pty/max
              このファイルは疑似端末の最大数を定義する。

       /proc/sys/kernel/pty/nr
              この読み出し専用のファイルは、現在いくつの疑似端末が使われているかを表す。

       /proc/sys/kernel/random
              このディレクトリは、ファイル /dev/random  の操作を制御する様々なパラメータが書かれている。  詳細は
              random(4) を参照。

       /proc/sys/kernel/random/uuid (Linux 2.4 以降)
              この読み出し専用のファイルから読み出しを行うごとに、  ランダムに生成した 128 ビットの UUID を、 標
              準の UUID 形式の文字列として返す。

       /proc/sys/kernel/real-root-dev
              このファイルは Linux カーネルソースファイル Documentation/initrd.txt に記述されている。

       /proc/sys/kernel/reboot-cmd (Sparc のみ)
              このファイルは SPARC ROM/Flash ブートローダに引き数を渡す方法を 提供しているように思われる。  再起
              動後に何をするかを指定しているのだろうか?

       /proc/sys/kernel/rtsig-max
              (2.6.7  までのカーネルにのみ存在する。 setrlimit(2)  を参照すること)  このファイルはシステムで発行
              される POSIX real-time (queued) signal の 最大数を調整するのに使用される。

       /proc/sys/kernel/rtsig-nr
              (2.6.7 までのカーネルにのみ存在する)  このファイルは現在キューに入っている POSIX real-time  signal
              の数を表す。

       /proc/sys/kernel/sched_rr_timeslice_ms (Linux 3.9 以降)
              sched_rr_get_interval(2) 参照。

       /proc/sys/kernel/sem (Linux 2.4 以降)
              このファイルには System V IPC セマフォを制限する 4 つの値が書かれている。 これらのフィールドは次の
              順番に並んでいる:

              SEMMSL  セマフォ集合ごとのセマフォ数の最大値。

              SEMMNS  システム全体での、全てのセマフォ集合におけるセマフォ数の制限。

              SEMOPM  semop(2)  コールに指定されるオペレーション数の最大値。

              SEMMNI  システム全体でのセマフォ識別子の最大値。

       /proc/sys/kernel/sg-big-buff
              このファイルは、汎用 SCSI デバイス (sg) のバッファサイズの最大値を表す。  今はこれを変更することは
              できないが、 コンパイル時に include/scsi/sg.h を編集して SG_BIG_BUFF の値を変えれば変更できる。 た
              だし、この値を変更する理由はないだろう。

       /proc/sys/kernel/shm_rmid_forced (Linux 3.1 以降)
              If this file is set to 1, all System V shared memory segments will be marked  for  destruction  as
              soon  as  the number of attached processes falls to zero; in other words, it is no longer possible
              to create shared memory segments that exist independently of any attached process.

              The effect is as though a shmctl(2)  IPC_RMID is performed on all existing segments as well as all
              segments  created in the future (until this file is reset to 0).  Note that existing segments that
              are attached to no process will be immediately destroyed when this file is set to 1.  Setting this
              option  will  also destroy segments that were created, but never attached, upon termination of the
              process that created the segment with shmget(2).

              Setting this file to 1 provides a way of ensuring that all System V  shared  memory  segments  are
              counted  against  the  resource  usage  and  resource  limits (see the description of RLIMIT_AS in
              getrlimit(2))  of at least one process.

              Because setting this file to 1 produces behavior that is nonstandard and could also break existing
              applications,  the  default  value  in this file is 0.  Only set this file to 1 if you have a good
              understanding of the semantics of the applications using System V shared memory on your system.

       /proc/sys/kernel/shmall (Linux 2.2 以降)
              このファイルには System V 共有メモリの総ページ数の システム全体での制限が書かれている。

       /proc/sys/kernel/shmmax (Linux 2.2 以降)
              このファイルを通じて、(System V IPC)  共有メモリセグメントを作成するときの  最大サイズの実行時上限
              (run-time limit) を取得または設定できる。 現在は 1GB までの共有メモリセグメントが カーネルでサポー
              トされている。 この値のデフォルトは SHMMAX である。

       /proc/sys/kernel/shmmni (Linux 2.4 以降)
              このファイルは、システム全体で作成可能な System V 共有メモリセグメント数を指定する。

       /proc/sys/kernel/sysrq
              このファイルは、SysRq   キーにより起動が許可されている関数群を制御する    ものである。デフォルトで
              は、ファイルの内容は  1 であり、 これは起こり得る全ての SysRq リクエストが許可されることを意味する
              (古いバージョンのカーネルでは、SysRq はデフォルトでは無効になっており、 実行時に明示的に有効にする
              必要があったが、今はそうではない)。 このファイルで指定可能な値は以下の通り。

                 0 - sysrq を完全に無効にする
                 1 - sysrq の全ての関数を有効にする
                >1 - 許可する sysrq 関数のビットマスク。内訳は以下の通り。
                        2 - コンソールのログ・レベルの制御を有効にする
                        4 - キーボードの制御を有効にする (SAK, unraw)
                        8 - プロセスなどのデバッグ・ダンプを有効にする
                       16 - sync コマンドを有効にする
                       32 - 読み出し専用での再マウントを有効にする
                       64 - プロセスへのシグナル発行を有効にする (term, kill, oom-kill)
                      128 - リブート/電源オフを許可する
                      256 - 全てのリアルタイム・タスクの nice 値の変更を許可する

              カーネル設定オプション CONFIG_MAGIC_SYSRQ が有効な場合のみ、このファイルは存在する。 詳細は、Linux
              カーネルソースファイル Documentation/sysrq.txt を参照のこと。

       /proc/sys/kernel/version
              このファイルには、以下のような文字列が書かれている:

                  #5 Wed Feb 25 21:49:24 MET 1998

              "#5" はこのソースで構築された 5 番目のカーネルであることを意味する。  その後にある日付はカーネルが
              構築された時刻を表す。

       /proc/sys/kernel/threads-max (Linux 2.3.11 以降)
              このファイルは、システム全体で作成可能なスレッド数 (タスク数) の上限を指定する。

       /proc/sys/kernel/zero-paged (PowerPC のみ)
              このファイルはフラグを含む。  (0 以外の値で) 有効された場合、Linux-PPC はアイドルループで pre-zero
              page を行うので、get_free_pages の速度が向上する可能性がある。

       /proc/sys/net
              このディレクトリにはネットワーク関係の情報が入っている。  このディレクトリにあるファイルのいくつか
              については、 tcp(7)  や ip(7)  に説明がある。

       /proc/sys/net/core/somaxconn
              このファイルは  listen(2)  の backlog 引き数の上限値を規定する。 詳細は listen(2) のマニュアルペー
              ジを参照。

       /proc/sys/proc
              このディレクトリは空の場合もある。

       /proc/sys/sunrpc
              このディレクトリはネットワークファイルシステム (NFS) への Sun remote procedure call  (遠隔手続き呼
              び出し) をサポートする。 これが存在しないシステムもある。

       /proc/sys/vm
              このディレクトリにはメモリ管理の調整、バッファやキャッシュ管理のための ファイルがある。

       /proc/sys/vm/drop_caches (Linux 2.6.16 以降)
              このファイルに書き込みを行うと、カーネルに、  クリーンなキャッシュ、 dentry、 inode をメモリから追
              い出して、 メモリを解放させることができる。 この機能はメモリ管理のテストや再現可能なファイルシステ
              ムのベンチマークを行うのに役立つ。    このファイルへの書き込みはキャッシュの利点を失うことになるの
              で、システム全体の性能は低下する可能性がある。

              ページキャッシュを解放するには、以下のようにする。

                  echo 1 > /proc/sys/vm/drop_caches

              dentry と inode を解放するには、以下のようにする。

                  echo 2 > /proc/sys/vm/drop_caches

              ページキャッシュ、 dentry、 inode を解放するには、以下のようにする。

                  echo 3 > /proc/sys/vm/drop_caches

              このファイルへの書き込みは非破壊的な操作で、 ダーティな (dirty) オブジェクトは  解放されないので、
              この操作を行う際は最初に sync(8) を実行しておくべきである。

       /proc/sys/vm/legacy_va_layout (Linux 2.6.9 以降)
              0 以外の場合、新しい 32ビットメモリマッピング配置が無効になり、 カーネルは全てのプロセスに対して従
              来の (カーネル 2.4 の) 配置方法を 使用する。

       /proc/sys/vm/memory_failure_early_kill (Linux 2.6.32 以降)
              このファイルは、カーネルが処理できない訂正不能なメモリエラー (通常はメモリモジュールでの 2  ビット
              エラー) がバックグラウンドでハードウェアにより検出された際に、プロセスをどのように kill するかを制
              御する。  (ページの有効なコピーがディスク上にも存在するなど)  いくつかの場面では、カーネルはアプリ
              ケーションに影響を与えずに透過的に故障を処理する。しかし、データの最新のコピーが他にはない場合に
              は、データ破壊が波及するのを防ぐため、カーネルはプロセスを kill する。

              このファイルは以下のいずれかの値を持つ。

              1:  データ破壊が検出されるとすぐに、故障が検出され復元できないページ (corrupted-and-not-reloadable
                  page)  をマップしている全てのプロセスを  kill  する。この機能は、(カーネル内部で割り当てられた
                  データやスワップのキャッシュなど) 少数のいくつかのタイプのページではサポートされていないが、大
                  半のユーザページではこの機能は働く。

              0:  データ破壊が検出されたページの全てのプロセスからの  unmap のみを行い、そのページにアクセスしよ
                  うとしたプロセスのみを kill する。

              この kill は si_codeBUS_MCEERR_AO を設定した SIGBUS シグナルを使って行われる。プロセス側では必
              要であればこのシグナルを処理することができる。詳細は sigaction(2) を参照。

              この機能は、高度なマシンチェック機構を持ったアーキテクチャ/プラットフォームにおいてのみ有効であ
              り、ハードウェア機能にも依存している。

              アプリケーションは prctl(2) の PR_MCE_KILL 操作を使って個別に memory_failure_early_kill の設定を上
              書きすることができる。

              カーネルの設定で CONFIG_MEMORY_FAILURE が有効になっている場合にのみ 存在する。

       /proc/sys/vm/memory_failure_recovery (Linux 2.6.32 以降)
              メモリ故障回復 (memory failure recovery) を有効にする
               (プラットフォームがサポートしている場合)

              1:  回復を試みる。

              0:  メモリ故障時には常に panic を起こす。

              カーネルの設定で CONFIG_MEMORY_FAILURE が有効になっている場合にのみ 存在する。

       /proc/sys/vm/oom_dump_tasks (Linux 2.6.25 以降)
              カーネルが  OOM-killing を実行する際に、システム全体のタスク・ダンプ (カーネルスレッドを除く) を生
              成するかを制御する。 ダンプには、タスク (スレッド、プロセス) 毎に以下の情報が出力される:  スレッド
              ID、実ユーザ ID、スレッドグループ ID (プロセス ID)、 仮想メモリサイズ、Resident Set Size (実メモリ
              上に存在するページサイズ)、     タスクがスケジューリングされた      CPU、      oom_adj      スコア
              (/proc/[pid]/oom_adj  の説明を参照)、コマンド名。 このダンプ情報は、なぜ OOM-killer が起動されたか
              を知り、 その原因となったならず者のタスクを特定するのに役に立つ。

              このファイルの内容が値 0 の場合、ダンプ情報の出力は行われない。 タスクが何千もある非常に巨大なシス
              テムでは、 各々のタスクについてメモリ状態をダンプするのは適切でないかもしれない。 そのようなシステ
              ムでは、ダンプ情報が必要でもないときに メモリ不足 (OOM) の状況で性能面の不利益が起こらないようにす
              べきだろう。

              このファイルの内容が 0 以外の場合、 OOM-killer が実際にメモリを占有したタスクを kill する度に ダン
              プ情報が出力される。

              デフォルト値は 0 である。

       /proc/sys/vm/oom_kill_allocating_task (Linux 2.6.24 以降)
              このファイルは、メモリ不足 (OOM) の状況が起こった際に、 メモリ不足のきっかけとなったタスクを  kill
              するかどうかを制御する。

              このファイルが 0 に設定された場合、 OOM-killer はタスクリスト全体をスキャンし、経験則に基づき kill
              するタスクを選択する。 通常は、kill した場合に多くのメモリが解放できる、  ならず者のメモリ占有タス
              クが選択される。

              このファイルが  0 以外に設定された場合、 OOM-killer はメモリ不足の状況が発生するきっかけとなったタ
              スクを 単純に kill するだけである。 これにより、たいていは重い処理となるタスクリストのスキャンを回
              避できる。

              /proc/sys/vm/panic_on_oom が 0 以外の場合、 /proc/sys/vm/oom_kill_allocating_task にどのような値が
              入っていたとしても、 /proc/sys/vm/panic_on_oom の方が優先される。

              デフォルト値は 0 である。

       /proc/sys/vm/overcommit_memory
              このファイルにはカーネル仮想メモリのアカウントモードが書かれている。 値は以下の通り:

                     0: 発見的なオーバーコミット (heuristic overcommit) (これがデフォルトである)
                     1: 常にオーバーコミットし、チェックしない。
                     2: 常にチェックし、オーバーコミットしない。

              モード 0 では、 MAP_NORESERVE を設定して呼び出された mmap(2)  はチェックされない。  またデフォルト
              のチェックはとても脆弱で、  プロセスを  "OOM-kill" してしまうリスクを引き起こす。 Linux 2.4 では 0
              以外の値はモード 1 を意味する。 (Linux 2.6 以降で利用可能な) モード 2 では、  システム上の仮想アド
              レス空間の合計が  (SS + RAM*(r/100)) に制限されている。 ここで、SS はスワップ空間のサイズ、 RAM は
              物理メモリのサイズ、r はファイル /proc/sys/vm/overcommit_ratio の内容である。

       /proc/sys/vm/overcommit_ratio
              /proc/sys/vm/overcommit_memory の説明を参照すること。

       /proc/sys/vm/panic_on_oom (Linux 2.6.18 以降)
              このファイルは、メモリ不足時にカーネルパニックを 起こすか起こさないかを制御する。

              このファイルに値 0 を設定すると、 カーネルの OOM-killer がならず者のプロセスを  kill  する。  普通
              は、OOM-killer  がならず者のプロセスを  kill することができ、 システムは何とか動き続けることができ
              る。

              このファイルに値 1 を設定すると、 メモリ不足の状況が発生すると、カーネルは普通はパニックする。  し
              かしながら、プロセスが  メモリポリシー (mbind(2)  の MPOL_BIND)  や cpusets (cpuset(7)) を使って特
              定のノードへのメモリ割り当てを制限していて、 それらのノードでメモリ枯渇状態に至った場合は、 一つの
              プロセスが  OOM-killer により kill されるだけかもしれない。 この場合には、カーネルパニックは発生し
              ない。 なぜなら、他のノードのメモリには空きがあるかもしれず、 したがって、システム全体としてはメモ
              リ不足の状況にまだ達していないかも しれないからである。

              このファイルに値 2 を設定すると、 メモリ不足の状況が発生するとカーネルは常にパニックを起こす。

              デフォルト値は 0 である。 1 と 2 はクラスタリングのフェイルオーバー用である。 フェイルオーバーの方
              針に応じてどちらかの値を選択すること。

       /proc/sys/vm/swappiness
              このファイルの値により、カーネルがどの程度激しくメモリページの スワップを行う かが制御される。  大
              きな値ほどスワップが激しくなり、小さい値ほど激しくなくなる。 デフォルト値は 60 である。

       /proc/sysrq-trigger (Linux 2.4.21 以降)
              このファイルに文字  character を書き込むと、 キーボードから ALT-SysRq-<character> を入力した場合と
              同じ SysRq 関数が起動される (/proc/sys/kernel/sysrq の説明を参照)。 通常、このファイルへ書き込みが
              できるのは root だけである。詳細については、Linux カーネルソースファイルの Documentation/sysrq.txt
              を参照のこと。

       /proc/sysvipc
              疑似ファイル msg, sem, shm  を含むサブディレクトリ。  これらのファイルは、現在システム上に存在する
              System  V  プロセス間通信  (Interprocess  Communication,  IPC)  オブジェクト (それぞれ: メッセージ
              キュー、セマフォ、共有メモリ) のリストであり、 ipcs(1)  で取得できる情報と同じものを提供する。  こ
              れらのファイルにはヘッダがあり、理解しやすいように  (1  行につき  1 個の IPC オブジェクトの形式で)
              フォーマットされている。 svipc(7) にはこれらのファイルから分かる情報の詳細な背景が書かれている。

       /proc/tty
              疑似ファイルを含むサブディレクトリ。 tty ドライバとライン設定 (line  discipline)  の書かれた  サブ
              ディレクトリも含まれる。

       /proc/uptime
              このファイルは システム起動時から経過した時間 (秒) と アイドル (idle) しているプロセスが消費した時
              間 (秒) の 2 つの数を含む。

       /proc/version
              現在稼働しているカーネルのバージョン識別子である文字列。        これには         /proc/sys/ostype,
              /proc/sys/osrelease, /proc/sys/version の内容が含まれる。 たとえばこのように:
            Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994

       /proc/vmstat (Linux 2.6 以降)
              このファイルは仮想メモリの様々な統計情報を表示する。

       /proc/zoneinfo (Linux 2.6.13 以降)
              このファイルはメモリのゾーン (memory zone) に関する情報を表示する。 仮想メモリの振舞いを分析するの
              に役立つ。

注意

       ほとんどの文字列 (たとえば環境変数やコマンド行) は内部表現のままなので、 各フィールドはヌルバイト  ('\0')
       で区切られている。だから、  od -ctr "\000" "\n" を使えば、それらはより読みやすくなる。 また echo `cat
       <file>` でもよい。

       このマニュアルは不完全であり、たぶん不正確で、しばしば更新される必要がある。

関連項目

       cat(1), dmesg(1), find(1), free(1), ps(1), tr(1), uptime(1), chroot(2), mmap(2), readlink(2),  syslog(2),
       slabinfo(5),  hier(7),  time(7),  arp(8),  hdparm(8), ifconfig(8), init(8), lsmod(8), lspci(8), mount(8),
       netstat(8), procinfo(8), route(8), sysctl(8)

       Linux    カーネルのソースファイル:    Documentation/filesystems/proc.txt     Documentation/sysctl/fs.txt,
       Documentation/sysctl/kernel.txt, Documentation/sysctl/net.txt, and Documentation/sysctl/vm.txt.

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。