linuxの/procについて

/proc配下のファイル群は、アプリケーションからのアクセスに応じて動的に内容が生成される仮想ファイル群である。
proc自体はファイルシステムで、システム起動時にマウントされる。(mountで確認できる)
このマウントに関しては、/etc/fstabに書かれているが、実際はカーネルにハードコーディングされているのでマウントする必要はない。(らしい)

配下のファイルの種類は大きくわけて2つ。

ディレクトリ名がプロセスIDになっているディレクトリの中身

名前 内容
cmdline プロセスを起動したコマンドライン(bash等)
cwd 現在の作業ディレクトリ(/home/user等)
environ プロセスの環境変数
exe 実況中のプログラムファイル(/bin/bash等)
fd/ プロセスが開いているファイルのファイル記述子(ファイルディスクリプタ)。シンボリックリンクのリンク先が開いているファイルになっている。
maps プロセスのアドレス空間におけるメモリマップ
mem プロセスのアドレス空間の内容
root ルートディレクトリ(/root)
status プロセス状態(属性や稼働状況)

ディレクトリ名が数値(プロセスID)でないファイル・ディレクトリの一覧

名前 内容
acpi/ 電力制御に関する情報
asound/ サウンドに関する情報
asound/cards 認識しているサウンドカードが確認できる
buddyinfo メモリの分散化問題を解析するために使用される…らしい
bus/ インストールされている各バスの情報
cgroups 資源コントローラの情報?
cmdline カーネル起動時のオプション
cpuinfo CPUの識別情報
crypto インストール済の暗号方法一覧(md5とか)
devices バイスノードに関する情報
diskstats 各ディスクデバイスのディスク I/O 統計情報
dma 登録されているISA DMAチャンネルの一覧
driver/ デバイスドライバが提供する情報表すファイルが置かれる
execdomains 実行ドメインと、パーソナリティ範囲の一覧
fb フレームバッファバイス、その番号、それを制御するドライバなどの一覧
filesystems 組み込まれているファイルシステムに関する情報を表すファイルが置かれる
fs/ nfsを利用している場合はここに情報が表示される?
ide/ IDEチャネルとそれに取り付けられている各デバイスの情報
interrupts バイスが使用しているIRQ(割り込み要求)の一覧
iomem バイスが使用しているメモリの一覧
ioports バイスが使用しているI/Oアドレスの一覧
irq/ 特定のIRQ(割り込み要求)を1つのCPUにのみ接続、またはCPUがどのIRQも処理しないように設定したりできる
kallsyms カーネルの外部シンボル定義一覧
kcore カーネルのメモリ空間全体にアクセスできる
key-users 認証データをLinuxカーネルにキャッシュすることかできる「鍵保存サービス」で使われる
keys 認証データをLinuxカーネルにキャッシュすることかできる「鍵保存サービス」で使われる
kmsg カーネルからのログメッセージ
kpagecount 中を見ても意味不明。何かのカウント?
kpageflags 中を見ても意味不明。何かのフラグ?
latency_stats レイテンシ情報?「Latency Top version : v0.1」こんなのが返ってきた
loadavg ロードアベレージ
locks ファイルロックとリースの情報
mdstat RAID設定の情報
meminfo メモリ使用状況
misc その他のメジャーデバイス上に登録されている その他のドライバを一覧
modules カーネルに組み込まれているモジュールの一覧
mounts 全マウントの一覧
mtrr システムで使用中の MTRR (Memory Type Range Registers)
net/ ネットワークデバイスやデバイスの通信に関する情報
pagetypeinfo 今のところ謎。そして調査予定なし…
partitions パーティション情報
reserve_info 「1:0 "total reserve" 0K 0/0」とだけ書いていた。今のところ謎。
sched_debug
schedstat
scsi/ SCSI情報(USBハードディスクはSCSIバイスとして認識)
self 自プロセスに関する情報。自プロセスのproc仮想ファイルへのシンボリックリンク
slabinfo カーネル設定オプションCONFIG_SLABが有効の場合にのみ存在する。カーネルキャッシュ使用率の情報。
stat システムのさまざまな統計情報。最後に再起動された時以降のものが保持されている。
swaps スワップ領域の一覧
sys/ カーネルの調整可能パラメータ(チューニングで利用)
sysrq-trigger このファイルにecho等で書き込むとSysRqキーを使うことができる。(rootのみ)
sysvipc/ 現在システム上に存在するIPCオブジェクトの一覧
timer_list システム上の設定されたクロックとタイマの情報?なんのこっちゃいな…
timer_stats カーネルのタイマを要求されているルーチンについての情報?
tty/ ttyドライバとライン設定のサブディレクトリがある
uptime システムが起動してからの経過時間
version カーネルのバージョン
vmallocinfo 動的メモリ空間の情報
vmstat 仮想メモリの使用状況
zoneinfo メモリのゾーン (memory zone) に関する情報。仮想メモリの振舞いを分析するのに役立つらしい。