/proc 目录详解
/proc
目录是一个虚拟文件系统,用于保存操作系统信息和进程信息,这些信息都由内核反馈出来。它提供了对内核运行时数据的访问接口,允许用户和进程通过读取这些虚拟文件来获取有关系统状态和进程信息的实时视图。在 /proc
目录下,每个运行的进程都有一个对应的目录,以进程 ID(PID)的形式命名。里面存放着进程当前运行的信息,例如:进程对应的可执行文件,进程打开的文件描述符表,进程消耗的内存信息,进程内部的动态链接库信息等。
/proc
目录下的文件及目录说明如下:
文件/目录 | 描述(进程属性) |
---|---|
1 | 进程 ID 为 1 的进程信息目录 |
ksymbol | 内核符号表文件 |
posix | POSIX 子系统信息目录 |
net | 网络子系统信息目录 |
power | 电源管理子系统信息目录 |
fs | 文件系统子系统信息目录 |
version | 当前系统运行的内核版本号信息文件 |
kernel | 内核子系统信息目录 |
cpuinfo | 处理器相关信息文件 |
bspmem | 每个物理存储器设备(RAM 或 ROM)在系统内存中的映射信息文件 |
self | 辅助性信息目录 |
yaffs | YAFFS 文件系统信息文件 |
smp | SMP运行信息文件 |
xinput | 输入设备信息文件 |
dma | DMA 设备信息文件 |
sysvipc | 系统 V IPC 信息目录 |
diskcache | 磁盘缓冲信息文件 |
cmdline | 系统启动信息文件 |
通常使用脚本来访问 /proc
目录下的文件,也可以从程序中使用常规I/O系统调用来访问 /proc
目录下的文件。但是在访问这些文件时,有以下限制:
/proc
目录下的一些文件是只读的,即这些文件仅用于显示内核信息,但无法对其进行修改。/proc/pid
目录下的大多数文件就属于此类型。/proc
目录下一些文件仅能由文件拥有者(或超级用户所属进程)读取。- 除了
/proc/pid
子目录中的文件,/proc
目录的其他文件大多属于 root 用户,并且仅有 root 用户能够修改那些可修改的文件。