PROC

Section: Linux Programmer's Manual (5)
Updated: 2007-08-27
Index JM Home Page roff page
 

名前

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

説明

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

以下は /proc 階層の簡単なあらましである。

/proc/[number]
実行中のプロセスについてのサブディレクトリ。 サブディレクトリ名は (そのプロセスの) プロセス ID である。 各サブディレクトリは、以下の擬似ファイルとディレクトリを含む。
/proc/[number]/auxv (カーネル 2.6.0-test7 以降)
実行時にプロセスに渡された ELF インタプリタ情報が格納されている。 個々のエントリは、unsigned long 型の ID 1個に unsigned long 型の値 1個が続くフォーマットである。 最後のエントリには 0 が 2個入っている。
/proc/[number]/cmdline
プロセスの完全なコマンド行を保持している。 ただし現在スワップアウトされているプロセスやゾンビプロセスの場合は、 このファイルは何も含んでいない。 すなわち、このファイルを読み出しても一文字も返らない。 このファイルではコマンドライン引き数が、 ヌル文字で区切られた文字列として書かれており、 最後の文字列の後にもヌル文字のバイトが続く。
/proc/[number]/cwd
プロセスのカレントワーキングディレクトリへのシンボリックリンク。 プロセス 20 の cwd を見つけるためには、たとえば次のようにすればよい。


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

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

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

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


(cat /proc/1/environ; echo) | tr "\000" "\n"

(これが何の役に立つのかについては lilo(8) を見よ)。

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

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

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

というフォーマットの文字列が返る。

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

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

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

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

標準入出力を用いず、引き数として受け取った ファイル名に対して入力、出力を行うようなプログラムは、 以下のようにすれば実質的にフィルタプログラムとして用いることができる。 ここで -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 へのシンボリックリンクにしている。

/proc/[number]/maps
現在マップされているメモリ領域とそのアクセスパーミッションを含む。

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

address           perms offset  dev   inode      pathname
08048000-08056000 r-xp 00000000 03:0c 64593      /usr/sbin/gpm
08056000-08058000 rw-p 0000d000 03:0c 64593      /usr/sbin/gpm
08058000-0805b000 rwxp 00000000 00:00 0
40000000-40013000 r-xp 00000000 03:0c 4165       /lib/ld-2.2.4.so
40013000-40015000 rw-p 00012000 03:0c 4165       /lib/ld-2.2.4.so
4001f000-40135000 r-xp 00000000 03:0c 45494      /lib/libc-2.2.4.so
40135000-4013e000 rw-p 00115000 03:0c 45494      /lib/libc-2.2.4.so
4013e000-40142000 rw-p 00000000 00:00 0
bffff000-c0000000 rwxp 00000000 00:00 0

ここで address はプロセスのアドレス空間でそのメモリ領域が占めている アドレスで、perms はパーミッションのセットである。

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

offset はファイル (などの) 中でのオフセット、 dev はデバイス (メジャーデバイス番号:マイナーデバイス番号)、 inode はそのデバイスの i ノード番号である。 これが 0 のときは、bss [訳注: 初期化しない (0 に値が設定される) 大域変数が割り当てられる領域] などのように、このメモリ領域にはどの i ノードも割り当てられていないことを 意味している。

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

/proc/[number]/mem
このファイルは、 open(2), read(2), lseek(2) を通して、プロセスのメモリのページにアクセスするために使われる。
/proc/[number]/root
Unix と Linux では、 ファイルシステムのルート (/) をプロセスごとに別々にできる。 これはシステムコール chroot(2) によって設定する。 このファイルはプロセスのルートディレクトリを指すシンボリックリンクで、 exe や fd/* などと同じような動作をする。

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

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

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

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

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

pid %d
プロセス ID。
comm %s
括弧でくくられた実行形式のファイル名。 実行形式がスワップアウトされているかどうかによらず、見ることができる。
state %c
"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
親プロセスの PID。
pgrp %d
プロセスのプロセスグループ ID。
session %d
プロセスのセッション ID。
tty_nr %d プロセスの接続している端末名。
tpgid %d
プロセスが接続している端末を所有しているプロセスの、プロセスグループ ID。
flags %u プロセスのカーネルフラグワード。
ビットの意味は、 <linux/sched.h> で定義されている PF_* を参照すること。 詳細はカーネルのバージョンに依存する。
minflt %lu
プロセスが引き起こしたマイナーフォールト (minor fault、ディスクから メモリページへのロードを必要としないフォールト) の回数。
cminflt %lu
(そのプロセスが終了を待っている) 子プロセスが引き起こしたマイナーフォールトの回数。
majflt %lu
プロセスが引き起こしたメジャーフォールト (major fault、ディスクから メモリページへのロードを必要とするフォールト) の回数。
cmajflt %lu
(そのプロセスが終了を待っている) 子プロセスが引き起こしたメジャーフォールトの回数。
utime %lu
プロセスのユーザーモードでの実行時間 (単位 jiffies [訳注: 1/100秒単位])。
stime %lu
プロセスのカーネルモードでの実行時間 (単位 jiffies)。
cutime %ld
(そのプロセスが終了を待っている) 子プロセスのユーザーモードでの実行時間 (単位 jiffies)。 (times(2) も参照すること。)
cstime %ld
(そのプロセスが終了を待っている) 子プロセスのカーネルモードでの実行時間 (単位 jiffies)。
priority %ld
標準的な nice 値に 15 を加えた値。 この値はカーネル内では決して負にならない。
nice %ld
19 (最優先) から -19 (他の全てより優先度が低い) の範囲の nice 値。
num_threads %ld このプロセスのスレッド数 (カーネル 2.6 以降)。 カーネル 2.6 より前では、このフィールドは削除されたフィールドの 場所埋めとして 0 にハードコードされていた。
itrealvalue %ld
インターバルタイマによって、次に SIGALRM がプロセスへ送られるまでの時間 (単位 jiffies)。 カーネル 2.6.17 以降では、このフィールドはメンテナンスされなくなり、 0 にハードコードされている。
starttime %llu (Linux 2.6 より前は %lu)
プロセスの起動時刻。システムが起動した時刻が起点 (単位 jiffies)。
vsize %lu
仮想メモリのサイズ。単位はバイト。
rss %ld
Resident Set Size。プロセスが持っている実メモリ上のページ数。 管理用に使われるページ数である 3 を減算した値である。 これはちょうどテキスト、データ、スタック空間に使われているページ数である。 デマンドロードされていないページや スワップアウトされたページの数は含んでいない。
rlim %lu
現在の rss の上限 (通常 i386 では 4294967295)。単位はバイト (byte)。
startcode %lu
プログラムテキストが実行可能であるような領域の先頭アドレス。
endcode %lu
プログラムテキストが実行可能であるような領域の末尾アドレス。
startstack %lu
スタックの開始アドレス。
kstkesp %lu
現在の ESP (スタックポインタ) の値。 プロセスのカーネルスタックページにある。
kstkeip %lu
現在の EIP (インストラクションポインタ) の値。
signal %lu
待機中のシグナルのビットマップ。
blocked %lu
ブロックされた (blocked) シグナルのビットマップ。
sigignore %lu
無視された (ignored) シグナルのビットマップ。
sigcatch %lu
キャッチされた (caught) シグナルのビットマップ。
wchan %lu
プロセスが待っている「チャネル」。 これはシステムコールのアドレスであり、文字名が必要ならば (アドレスとシステムコール名との) 対応表から見つけられる (もし /etc/psdatabase [訳注: このファイル名はパッケージによる] を 更新しているならば、ps -l して WCHAN フィールドを見よ)。
nswap %lu
スワップされたページ数 (メンテナンスされていない)。
cnswap %lu
子プロセスの nswap の累計 (メンテナンスされていない)。
exit_signal %d (カーネル 2.1.22 以降)
プロセスが死んだときに親プロセスに送られるシグナル。
processor %d (カーネル 2.2.8 以降)
このプロセスを最後に実行した CPU の番号。
rt_priority %lu (カーネル 2.5.19 以降)
リアルタイム・スケジューリングの優先度 (sched_setscheduler(2) 参照)。
policy %lu (カーネル 2.5.19 以降)
スケジューリング・ポリシー (sched_setscheduler(2) 参照)。
delayacct_blkio_ticks %llu (カーネル 2.6.18 以降)
(clock tick (100分の1秒) 単位での) ブロック I/O の総遅延量。
/proc/[number]/statm
ページ中のメモリ状態についての情報を提供する。 各フィールドは次の通り。


 size       プログラムサイズの総計
 resident   実メモリ上に存在するページ
 share      共有ページ
 text       テキスト (コード)
 lib        ライブラリ
 data       データ/スタック
 dt         ダーティページ (Linux 2.6 では使用されていない)

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

マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 /proc/[number]/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(1) のようなブートマネージャを使って行われる。
/proc/cpuinfo
2 つだけ共通の項目がある。 processor はプロセッサ番号で、 bogomips はカーネルの初期化時に計算されるシステム定数である。 SMP マシンでは各 CPU についての情報が書かれている。
/proc/devices
メジャーデバイス番号とデバイスグループのテキスト形式のリスト。 MAKEDEV スクリプトはこのファイルを使って、 カーネルとの整合性を保つことができる。
/proc/diskstats (Linux 2.5.69 以降)
このファイルには各ディスクデバイスのディスク I/O 統計情報が書かれている。 更に詳しい情報は、カーネルソースファイル Documentation/iostats.txt を参照すること。
/proc/dma
登録されている ISA DMA (direct memory access) チャネルのリスト。
/proc/driver
空のサブディレクトリ。
/proc/execdomains
実行ドメインのリスト (ABI パーソナリティ)。
/proc/fb
カーネルのコンパイル時に CONFIG_FB が定義されている場合、フレームバッファの情報が書かれる。
/proc/filesystems
カーネルが対応しているファイルシステムのテキスト形式のリスト。 カーネルに組み込まれてコンパイルされたファイルシステムと、 カーネルモジュールが現在ロードされているファイルシステムが列挙される (fs(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
(すくなくとも) i386 アーキテクチャでは IRQ ごとの割り込み回数の記録に使われる。 簡単に読むことのできるフォーマットで、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(8) によって表示される。
/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 つの数値から構成される。 この数値のうち最初のものは、現在実行されている カーネルスケジュールエンティティ (プロセス、スレッド) の数である。 この数値は CPU の数以下になる。 スラッシュの後の数値は、現在システム上に存在する カーネルスケジュールエンティティの数である。 5 番目のフィールドはシステム上に最も最近生成されたプロセスの PID である。
/proc/locks
このファイルは現在のファイルロック (flock(2) と fcntl(2)) とリース (fcntl(2)) を表示する。
/proc/malloc (Linux 2.2 以前のみ)
コンパイルのときに CONFIGDEBUGMALLOC が定義されているときのみ、このファイルは存在する。
/proc/meminfo
このファイルは free(1) によってシステムの未使用および使用中のメモリ量 (物理メモリとスワップ) と、 カーネルに使われている共有メモリとバッファの情報を報告するために使われる。

KB の代わりにバイト (byte) を使うことを除けば free(1) と同じフォーマットである。

/proc/mounts
現在システムにマウントされている全てのファイルシステムのリスト。 このファイルのフォーマットは fstab(5) に記述されている。 カーネル 2.6.15 以降では、このファイルをポーリングすることができる。 このファイルを読み出し用にオープンした後では、このファイルに変更が 生じると (つまり、ファイルシステムのマウントやアンマウントがあると)、 select(2) はそのファイルディスクリプタが読み出し可能だとマークをつけ、 poll(2) と epoll_wait(2) はそのファイルがエラー状態になっているとマークをつける。
/proc/modules
現在システムにロードされているモジュールのテキスト形式のリスト。 lsmod(8) も参照すること。
/proc/mtrr
Memory Type Range Registers。 詳細は /usr/src/linux/Documentation/mtrr.txt を参照すること。
/proc/net
さまざまなネットワークについての擬似ファイルで、 それぞれがネットワーク層の各種の状態を与える。 これらのファイルの内容は ASCII 形式なので、cat で読み出せる。 とはいえ基本コマンドの netstat(8) はこれらのファイルの内容のよりすっきりとした表示を提供する。
/proc/net/arp
アドレス解決に使われるカーネルの ARP テーブルの ASCII 可読なダンプを保持している。 動的結合されたものと固定 (pre-programmed) の両方の 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 はローカルアドレスとポート番号のペアである。 (ソケットが接続している場合は) remote address はリモートアドレスとポート番号の対である。 st はソケットの内部状態である。 tx_queue と rx_queue はカーネルメモリを消費している 送信/受信データキューのサイズ。 tr と tm->when と rexmits フィールドはソケット状態のカーネル 内部情報を保持しているが、これらはデバッグのときにしか役に立たない。 "uid" フィールドはソケット生成者の実効 UID を保持している。
/proc/net/udp
UDP ソケットテーブルのダンプを保持している。 大部分の情報はデバッグ以外には使われない。 sl はソケットのカーネルハッシュスロットの値、 local address はローカルアドレスとポート番号のペアである。 (ソケットが接続している場合は) remote 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
各パーティションのメジャー番号とマイナー番号が書かれている。 さらに、ブロック数とパーティション名も書かれている。
/proc/pci
カーネルの初期化時に見つかったすべての PCI デバイスのリストと その設定。
/proc/scsi
scsi 中間レベル擬似ファイルといくつかの SCSI 低レベルドライバの ディレクトリを含むディレクトリ。 これらのファイルは ASCII で表現されているので cat で読める。

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

/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 ファイルシステムへのアクセスを参照させる。 これは (このプロセスの) プロセス ID が名前であるディレクトリと同じものである。
/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
ユーザーモード、 低い優先度 (nice) でのユーザーモード、 システムモード、 タスク待ち (idle task)、 でそれぞれシステムが消費した時間を USER_HZ を単位として計測した積算値 (多くのアーキテクチャでは USER_HZ は 1/100 秒である)。 最後の値 (タスク待ち) は疑似ファイル uptime の 2番目のエントリの値を USER_HZ 倍したものである。

Linux 2.6 では、この行に 3つの欄が追加されている: iowait (I/O の完了を待っていた時間; 2.5.41 以降); irq (割り込み処理を行った時間; 2.6.0-test4 以降); softirq (ソフト割り込みの処理を行った時間; 2.6.0-test4 以降)。

Linux 2.6.11 以降では、8個目の欄として steal (盗まれた時間; stolen time) が存在する。 これは、仮想化環境での動作時に他のオペレーティングシステムにより 消費された時間である。

page 5741 1808
システムが (ディスクから) ページイン/ページアウトしたページ数。
swap 1 0
スワップイン/スワップアウトされたページ数。
intr 1462898 この行はシステム起動時以降に処理された割り込みの回数を示す。 最初の欄は処理された割り込み全ての合計であり、それ以降の欄は 個々の割り込みについての合計数である。
disk_io: (2,0):(31,30,5764,1,2) (3,0):...
(メジャー番号,マイナー番号):(読み書き回数, 読み込み回数, 読み込みブロック数, 書き出し回数, 書き出しブロック数)
(Linux 2.4 のみ)
ctxt 115315
コンテクスト・スイッチの延べ回数。
btime 769041601
起動時刻、紀元年 (epoch, 1970 年 1 月 1 日午前 0 時) からの秒数。
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) を用いて書き換えることもできる。 いまのところ abi, debug, dev, fs, kernel, net, proc, rxrpc, sunrpc, vm というサブディレクトリがあって、 それぞれがファイルとサブディレクトリを含んでいる。
/proc/sys/abi
このディレクトリは空の場合もある。 このファイルが存在しないシステムもある。
/proc/sys/debug
このディレクトリは空の場合もある。
/proc/sys/dev
このディレクトリにはデバイス特有の情報 (たとえば dev/cdrom/info) が含まれる。 このディレクトリが空になっているシステムもある。
/proc/sys/fs
このディレクトリには、サブディレクトリ binfmt_misc, inotify, mqueue と以下のファイルがある: dentry-state, dir-notify-enable, dquot-nr, file-max, file-nr, inode-max, inode-nr, inode-state, lease-break-time, leases-enable, overflowgid, overflowuid, suid_dumpable, super-max, super-nr.
/proc/sys/fs/binfmt_misc
このディレクトリ以下のファイルについてのドキュメントは、 カーネルソースの Documentation/binfmt_misc.txt にある。
/proc/sys/fs/dentry-state
このファイルには nr_dentry, nr_unused, age_limit (age: 秒数), want_pages (システムがリクエストしたページ数), ダミーの 2 つの値、 という 6 つの数字が書かれている。 nr_dentry は常に 0 であるよう思われる。 nr_unused 使用されていない dentry の数であるように思われる。 age_limit は dcache entry を利用できるようになるまでの age (秒数) である。 これはメモリが不足していて want_pages が 0 でなく、 カーネルが shrink_dcache_pages() を呼び出したが dcache がまだ縮小されていない場合に、 あと何秒で dcache entry を利用できるかを表す。
/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/file-max
このファイルはシステム全体でプロセスがオープンできる ファイル数の上限を定義する。 (各プロセスがオープンできるファイル数の上限を RLIMIT_NOFILE によって設定する setrlimit(2) も参照すること。) ファイルハンドルを使い果たして大量にエラーメッセージが出る場合は、 以下のようにしてこの値を増加させてみよ:


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

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

/proc/sys/fs/file-max を増やした場合は、 /proc/sys/fs/inode-max を新しい /proc/sys/fs/file-max の値の 3-4 倍に増やしておくこと。 こうしないと inode を使い果たしてしまうだろう。

/proc/sys/fs/file-nr
(読み込みだけが可能な) このファイルには、 現在オープンされているファイルの数が書かれている。 このファイルには、割り当てられているファイルハンドル数・ 空いているファイルハンドル数・ファイルハンドル数の最大値、 という 3 つの数値が書かれている。 カーネルはファイルハンドルを動的に割り当てるが、 それを再び解放しない。 割り当てられているファイル数が最大値に近づいた場合は、 最大値を大きくすることを考慮すべきである。 空いているファイルハンドル数が多い場合は、 ファイルハンドルの使用のピークを経験したことがあり、 最大値を大きくする必要はないだろう。
/proc/sys/fs/inode-max
このファイルには、メモリ内 inode の最大値が書かれている。 (2.4 系の) システムによっては、このファイルが存在しないかもしれない。 この値は file-max の値の 3-4 倍にすべきである。 これは stdin, stdout, ネットワークソケットを扱うにも inode が必要なためである。 日常的に inode を使い果たしている場合は、この値を増やす必要がある。
/proc/sys/fs/inode-nr
このファイルには、inode-state の最初の 2 つの値が書かれている。
/proc/sys/fs/inode-state
このファイルには 7 個の値が書かれている: nr_inodes, nr_free_inodes, preshrink と 4 つのダミーの値である。 nr_inodes はシステムが確保する inode の数である。 Linux は 1 度に 1 ページ分いっぱいに nr_inode を確保するので、 この値が inode-max より幾分大きくなることもある。 nr_free_inodes は空いている inode の数を表す。 nr_inodes > inode-max の場合、preshrink は 0 以外の値になる。 この場合システムは inode をさらに確保するのではなく、 inode リストを切り詰める必要がある。
/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/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 だけが読み込み可能な形でダンプする。 この場合、ユーザはそのコアダンプファイルを削除することはできるが、 読むことはできない。 セキュリティ上の理由から、このモードのコアダンプでは、 既存のダンプファイルや他のファイルを上書きすることはない。 このモードは、管理者が通常の環境で問題を解析しようとする際に 適している。

このファイルはスーパブロックの値を制御する。
この値はカーネルがマウントできるファイルシステムの最大値になる。 現在、super-max で許可されているファイルシステム数以上に マウントする必要がある場合は、この値を増加させるだけでよい。
/proc/sys/fs/super-nr
このファイルには現在マウントされているファイルシステム数が書かれている。
/proc/sys/kernel
このディレクトリには以下のファイルがある: acct, cad_pid, cap-bound, core_pattern, core_uses_pid, ctrl-alt-del, dentry-state, domainname, hotplug, hostname, htab-reclaim (PowerPC のみ), java-appletviewer (binfmt_java は古い), java-interpreter (binfmt_java は古い), l2cr (PowerPC のみ), modprobe, msgmax, msgmnb, msgmni, osrelease, ostype, overflowgid, overflowuid, panic, panic_on_oops, pid_max, powersave-nap (PowerPC のみ), printk, pty, random, real-root-dev, reboot-cmd (SPARC のみ), rtsig-max, rtsig-nr, sem, sg-big-buff, shmall, shmmax, shmmni, sysrq, tainted, threads-max, version, zero-paged (PowerPC のみ)
/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-bound
このファイルにはカーネルの capability bounding set (符号付き 10 進数表現) の値が書かれている。 execve(2) 中は、このセットとプロセスに許可されている権限の AND がとられる。
/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(1) プログラムに送られて、正しく再起動される。 値が 0 より大きい場合、Vulcan Nerve Pinch (tm) に反応して、 Linux はダーティバッファを同期させることなく、すぐに再起動を行う。 注意: プログラム (dosemu など) に 'raw' モードのキーボードがある場合、 ctrl-alt-del はカーネルの tty レイヤーに到達する前に プログラムに遮断され、 プログラムに送られてどのように扱うかが決められる。
/proc/sys/kernel/hotplug
このファイルはホットプラグ・ポリシー・エージェントのパスが書かれている。 このファイルのデフォルト値は "/sbin/hotplug" である。

/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/htab-reclaim
(PowerPC のみ) このファイルを 0 以外の値に設定すると、 PowerPC htab (カーネルファイル Documentation/powerpc/ppc_htab.txt 参照) を、 システムがアイドルループになるたびに切り詰める。
/proc/sys/kernel/l2cr
(PowerPC のみ) このファイルには G3 プロセッサボードの L2 キャッシュを制御するフラグが含まれる。 0 の場合、キャッシュは無効になる。 0 以外の場合は有効になる。
/proc/sys/kernel/modprobe
このファイルはカーネルソースファイル Documentation/kmod.txt に記述されている。
/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 で新しく追加された) このファイルは、 oops や BUG が起こった場合のカーネルの動作を制御する。 ファイルに 0 が書かれている場合、システムは操作を続行しようとする。 1 が書かれている場合、システムは (klogd が oops 出力を記録する時間を与えるために) 数秒間遅延した後、 panic を起こす。 /proc/sys/kernel/panic ファイルも 0 でない場合、マシンは再起動される。
/proc/sys/kernel/pid_max
(Linux 2.5 で新しく追加された) このファイルは、 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_loglevel は console_loglevel に設定できる 最小 (最高) の値である。 default_console_loglevel は console_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
このファイルはカーネルソースファイル Documentation/initrd.txt に記述されている。
/proc/sys/kernel/reboot-cmd (Sparc のみ)
このファイルは SPARC ROM/Flash ブートローダに引き数を渡す方法を 提供しているように思われる。 再起動後に何をするかを指定しているのだろうか?
/proc/sys/kernel/rtsig-max
(2.6.7 までのカーネルにのみ存在する。 setrlimit(2) を参照すること) このファイルはシステムで発行される POSIX realtime (queued) signal の 最大数を調整するのに使用される。
/proc/sys/kernel/rtsig-nr
(2.6.7 までのカーネルにのみ存在する) このファイルは現在キューに入っている POSIX realtime signal の数を表す。
/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/shmall
このファイルには System V 共有メモリの総ページ数の システム全体での制限が書かれている。
/proc/sys/kernel/shmmax
このファイルは、(System V IPC) 共有メモリセグメントを作成するときの 最大サイズの制限を取得または設定できる。 現在は 1Gb までの共有メモリセグメントが カーネルでサポートされている。 この値のデフォルトは SHMMAX である。
/proc/sys/kernel/shmmni
(Linux 2.4 以降で使用可能) このファイルは、システム全体で作成可能な System V 共有メモリセグメント数を指定する。
/proc/sys/kernel/version
このファイルには、以下のような文字列が書かれている:


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


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

/proc/sys/kernel/zero-paged (PowerPC のみ)
このファイルはフラグを含む。 (0 以外の値で) 有効された場合、Linux-PPC はアイドルループで pre-zero page を行うので、get_free_pages の速度が向上する可能性がある。
/proc/sys/net
このディレクトリにはネットワーク関係の情報が入っている。 このディレクトリにあるファイルのいくつかについては、 tcp(7) や ip(7) に説明がある。
/proc/sys/net/core/somaxconn
このファイルは listen(2) の backlog 引き数の上限値を規定する。 詳細は listen(2) のマニュアルページを参照。
/proc/sys/proc
このディレクトリはたぶん空である。
/proc/sys/sunrpc
このディレクトリはネットワークファイルシステム (NFS) への Sun remote procedure call (遠隔手続き呼び出し) をサポートする。 これが存在しないシステムもある。
/proc/sys/vm
このディレクトリにはメモリ管理の調整、バッファやキャッシュ管理のための ファイルがある。
/proc/sys/vm/drop_caches (Linux 2.6.16 以降)
このファイルに書き込みを行うことで、クリーンなキャッシュ、dentry、 inode をメモリ上から外し、そのメモリを解放する。

ページキャッシュを解放するには、 echo 1 > /proc/sys/vm/drop_caches とする。 dentry、inode を解放するには、 echo 2 > /proc/sys/vm/drop_caches とする。ページキャッシュ、dentry、inode を解放するには、 echo 3 > /proc/sys/vm/drop_caches とする。

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

/proc/sys/vm/legacy_va_layout (Linux 2.6.9 以降)
0 以外の場合、新しい 32ビットメモリマッピング配置が無効になり、 カーネルは全てのプロセスに対して従来の (カーネル 2.4 の) 配置方法を 使用する。
/proc/sys/vm/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/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), find(1), free(1), ps(1), tr(1), uptime(1), chroot(2), mmap(2), readlink(2), syslog(2), slabinfo(5), hier(7), arp(8), dmesg(8), hdparm(8), ifconfig(8), init(8), lsmod(8), lspci(8), mount(8), netstat(8), procinfo(8), route(8)
/usr/src/linux/Documentation/filesystems/proc.txt


 

Index

名前
説明
注意
関連項目

This document was created by man2html, using the manual pages.
Time: 04:31:56 GMT, November 19, 2007