【2023年7月版】/proc, /sys メモ

# はじめに

すぐにわすれる /proc (procfs), /sys (sysfs) 周りのメモ

# 主な /proc のディレクトリとファイル

| 名称 | 説明 |
| --- | --- |
| `/proc/[pid]` | PID（プロセスID）で指定された各プロセスの情報を含むディレクトリ。 `[pid]`はプロセスIDの実際の数字で、その中にはプロセスの状態、環境、メモリマップなどに関する情報が含まれる |
| `/proc/cmdline` | ブート時にカーネルに渡されたコマンドラインオプションを表示 |
| `/proc/cpuinfo` | CPUの詳細情報を表示 |
| `/proc/meminfo` | メモリ使用状況についての詳細な情報を表示 |
| `/proc/mounts` | システム上のすべてのマウントポイントに関する情報を表示 |
| `/proc/partitions` | パーティションとそのサイズに関する情報を表示 |
| `/proc/uptime` | システムが稼働してからの時間（秒）と、全体のアイドル時間（秒）を表示 |
| `/proc/version` | カーネルのバージョン情報と、コンパイル時のGCCのバージョン情報を表示 |
| `/proc/diskstats` | 各ディスクデバイスとパーティションに関するI/O統計情報を表示 |
| `/proc/loadavg` | システムの平均負荷を表示 |
| `/proc/net` | ネットワークサブシステムの様々な情報と統計を表示 |
| `/proc/self` | カレントプロセス（/proc/selfを見ているプロセス）の情報を表示するためのシンボリックリンク |
| `/proc/sys` | カーネルパラメータの値を表示、調整するためのインターフェースを提供 |
| `/proc/fs` | ファイルシステム固有の情報を表示 |
| `/proc/[pid]/status` | PIDで指定されたプロセスの短い状態情報を表示 |
| `/proc/[pid]/cmdline` | PIDで指定されたプロセスが実行されたコマンドラインを表示 |
| `/proc/[pid]/environ` | PIDで指定されたプロセスの環境変数を表示 |
| `/proc/swaps` | スワップ空間の情報を表示 |
| `/proc/buddyinfo` | メモリのフラグメント情報を表示 |
| `/proc/cgroups` | システム上の利用可能なコントロールグループとその使用状況を表示 |
| `/proc/iomem` | システム上の物理メモリのI/Oマップを表示 |
| `/proc/ioports` | 登録されたポート領域と使用中のデバイスを表示 |
| `/proc/kallsyms` | カーネルの全シンボルテーブルを表示 |
| `/proc/sched_debug` | スケジューラのデバッグ情報を表示 |
| `/proc/slabinfo` | カーネルのスラブキャッシュの使用状況を表示 |
| `/proc/[pid]/root` | PIDで指定されたプロセスのルートディレクトリへのシンボリックリンク |
| `/proc/[pid]/fd` | PIDで指定されたプロセスが開いているファイル記述子へのシンボリックリンク |
| `/proc/[pid]/maps` | PIDで指定されたプロセスのメモリマップを表示 |
| `/proc/timer_list` | システムのタイマー情報を表示 |
| `/proc/zoneinfo` | システムのメモリゾーン情報を表示 |
| `/proc/consoles` | システムのコンソールに関する情報を表示 |
| `/proc/devices` | システム上の登録されたキャラクタとブロックデバイスをリスト |
| `/proc/interrupts` | 割り込みに関する詳細な情報を表示 |
| `/proc/key-users` | キーリングに関する情報を表示 |
| `/proc/locks` | システム上の現在のファイルロックを表示 |
| `/proc/modules` | 現在ロードされているカーネルモジュールをリスト |
| `/proc/stat` | システム全体の統計情報を表示 |
| `/proc/sysvipc` | System V IPCに関する情報を表示 |
| `/proc/[pid]/cwd` | PIDで指定されたプロセスのカレントワーキングディレクトリへのシンボリックリンク |
| `/proc/[pid]/limits` | PIDで指定されたプロセスのリソースリミットを表示 |
| `/proc/[pid]/stack` | PIDで指定されたプロセスのカーネルスタックトレースを表示 |
| `/proc/[pid]/stat` | PIDで指定されたプロセスの現在の状態を表示 |
| `/proc/[pid]/task` | PIDで指定されたプロセスに関連付けられた各スレッドの情報を表示 |
| `/proc/timer_stats` | タイマーの統計情報を表示 |

# 主な /sys のディレクトリとファイル

| 名称 | 説明 |
| --- | --- |
| `/sys/block` | システムのブロックデバイスを表示 |
| `/sys/bus` | システムのバスデバイスを表示 |
| `/sys/class` | デバイスクラスの一覧を表示 |
| `/sys/devices` | システムのデバイスツリーを表示 |
| `/sys/firmware` | ファームウェアの詳細情報を表示 |
| `/sys/fs` | ファイルシステムの情報を表示 |
| `/sys/hypervisor` | ハイパーバイザーの情報を表示（仮想化が使用されている場合） |
| `/sys/kernel` | カーネル固有の情報を表示 |
| `/sys/module` | カーネルモジュールの情報を表示 |
| `/sys/power` | 電源管理情報を表示 |
| `/sys/dev` | デバイスのメジャーとマイナー番号の情報を表示 |
| `/sys/kernel/debug` | デバッグ情報を提供（デバッグカーネルが有効な場合） |
| `/sys/kernel/security` | カーネルのセキュリティモジュール情報を表示 |
| `/sys/kernel/slab` | カーネルのSLABキャッシュ情報を表示 |
| `/sys/kernel/tracing` | カーネルトレーシングの情報を表示 |
| `/sys/block/[device]` | 特定のブロックデバイスの属性を表示 |
| `/sys/class/net` | ネットワークインターフェースの情報を表示 |
| `/sys/devices/system/cpu` | CPUの詳細な情報を表示 |
| `/sys/power/state` | 利用可能な電源状態を表示 |
| `/sys/bus/usb` | USBバスの情報を表示 |

# さいごに

わすれたくない

# 関連資料

[LinuC レベル2 Version 10.0 201試験 出題範囲](
https://linuc.org/linuc2/range/201.html)
[LinuC レベル2 Version 10.0 202試験 出題範囲](
https://linuc.org/linuc2/range/202.html)
[Linux教科書 LinuCレベル2 Version 10.0対応](https://www.amazon.co.jp/dp/B08JX5SV8K)