Provided by: manpages-ja_0.5.0.0.20131015+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]/cmdline
              プロセスの完全なコマンド行を保持する。ただし、そのプロセスがゾンビプロセス   の場合
              は、このファイルは空となる。つまり、このファイルを読み出しても一文字 も返らない。こ
              のファイルではコマンドライン引き数が、 NULL バイト ('\0')  で区切られた文字列として
              書かれており、 最後の文字列の後に NULL バイトが一つ置かれる。

       /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
              このファイルはプロセスの環境変数を含んでいる。 各エントリは NULL バイト ('\0') で区
              切られていて、 末尾に NULL バイトがあるかもしれない。 したがって、プロセス 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 以降)
              This file contains I/O statistics for the process, for example:

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

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

              rchar: characters read
                     The number of bytes which this task has caused  to  be  read  from  storage.
                     This  is  simply  the sum of bytes which this process passed to read(2)  and
                     similar system calls.  It includes  things  such  as  terminal  I/O  and  is
                     unaffected by whether or not actual physical disk I/O was required (the read
                     might have been satisfied from pagecache).

              wchar: characters written
                     The number of bytes which this task has caused, or shall cause to be written
                     to disk.  Similar caveats apply here as with rchar.

              syscr: read syscalls
                     Attempt  to  count  the  number of read I/O operations—that is, system calls
                     such as read(2)  and pread(2).

              syscw: write syscalls
                     Attempt to count the number of write I/O operations—that  is,  system  calls
                     such as write(2)  and pwrite(2).

              read_bytes: bytes read
                     Attempt  to count the number of bytes which this process really did cause to
                     be fetched from the  storage  layer.   This  is  accurate  for  block-backed
                     filesystems.

              write_bytes: bytes written
                     Attempt to count the number of bytes which this process caused to be sent to
                     the storage layer.

              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.

              Note: In the current implementation, things are a bit racy on  32-bit  systems:  if
              process A reads process B's /proc/[pid]/io while process B is updating one of these
              64-bit counters, process A could see an intermediate result.

       /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) によって設定する。 このファイルは プロセスのルートディ
              レクトリを指すシンボリックリンクで、 exe や fd/* など と同じような動作をする。

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

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

                  08048000-080bc000 r-xp 00000000 03:02 13130      /bin/bash
                  Size:               464 kB
                  Rss:                424 kB
                  Shared_Clean:       424 kB
                  Shared_Dirty:         0 kB
                  Private_Clean:        0 kB
                  Private_Dirty:        0 kB

              最初の行には、 /proc/[pid]/maps で表示されるマッピングと同じ情報が表示される。 残り
              の行には、マッピングのサイズ、現在 RAM 上に存在するマッピングの量、  マッピング内の
              共有ページのうちクリーンなページ数、ダーティなページ数、 マッピング内のプライベート
              ページのうちクリーンなページ数、 ダーティなページ数、を示す。

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

       /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)
                          プロセスの起動時刻。システムが起動した時刻が起点である。 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) プロセスが待っている「チャネル」。これはシステムコールのアドレスで
                          あり、 文字名が必要ならば (アドレスとシステムコール名との) 対応表から見
                          つけられる (もし /etc/psdatabase [訳注:  このファイル名はパッケージによ
                          る] を更新 しているならば、 ps -l して 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/apm
              Advanced  Power  Management  のバージョンとバッテリ情報。  カーネルのコンパイル時に
              CONFIG_APM を定義したときに存在する。

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

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

       /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 = (overcommit_ratio * Physical RAM) + Swap

                     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 is required.)  The size of the pool of huge pages.

              HugePages_Free %lu
                     (CONFIG_HUGETLB_PAGE is required.)  The number of huge  pages  in  the  pool
                     that are not yet allocated.

              HugePages_Rsvd %lu (Linux 2.6.17 以降)
                     (CONFIG_HUGETLB_PAGE  is  required.)   This  is the number of huge pages for
                     which a commitment  to  allocate  from  the  pool  has  been  made,  but  no
                     allocation  has  yet been made.  These reserved huge pages guarantee that an
                     application will be able to allocate a huge page from the pool of huge pages
                     at fault time.

              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 以降)
              This  file is present only if the kernel was booted with the profile=1 command-line
              option.  It exposes kernel profiling information in a  binary  format  for  use  by
              readprofile(1).   Writing (e.g., an empty string) to this file resets the profiling
              counters; on some architectures, writing a binary integer "profiling multiplier" of
              size sizeof(int) sets the profiling interrupt frequency.

       /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  を使い果たしている場合は、この値を増やす必要が
              ある。

              Starting with Linux 2.4, there is no longer a static limit on the number of inodes,
              and this file is removed.

       /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
              このファイルは、System V メッセージキューに書き込まれる 1 つのメッセージの 最大バイ
              ト数を、システム全体で制限する。

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

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

       /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/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
              このファイルには System V 共有メモリの総ページ数の システム全体での制限が書かれてい
              る。

       /proc/sys/kernel/shmmax
              このファイルを通じて、(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 以降)
              Writing to this file causes the kernel to drop clean caches, dentries,  and  inodes
              from  memory,  causing  that  memory to become free.  This can be useful for memory
              management testing and  performing  reproducible  filesystem  benchmarks.   Because
              writing  to  this  file  causes  the benefits of caching to be lost, it can degrade
              overall system performance.

              To free pagecache, use:

                  echo 1 > /proc/sys/vm/drop_caches

              To free dentries and inodes, use:

                  echo 2 > /proc/sys/vm/drop_caches

              To free pagecache, dentries and inodes, use:

                  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) に関する情報を表示する。 仮想メモリの振
              舞いを分析するのに役立つ。

注意

       ほとんどの文字列  (たとえば環境変数やコマンド行)  は内部表現のままなので、  各フィールドは
       NULL バイト ('\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/vm.txt

この文書について

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