Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。
用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。
/proc目录下包含多个以数字命名的文件夹,这些数字为当前系统中正在运行的进程的进程号,文件夹中包含了与对应进程相关的多个文件。
下图为/proc目录下的部分文件(测试系统:Ubuntu16.04)
- /proc/cpuinfo 存放处理器相关信息
- /proc/devices 已经加载的所有块设备和字符设备的信息,包含主设备号和设备组(与主设备号对应的设备类型)名
- /proc/filesystems 当前系统内核支持的文件系统
- /proc/meminfo 系统中关于当前内存的利用状况等的信息,free命令可以查看
以下是432文件夹下的文件内容
cmdline :启动当前进程的完整命令
cwd:指向当前进程运行目录的一个符号链接
exe:指向启动当前进程的可执行文件(绝对路径)的符号链接
environ:当前进程的环境变量列表
fd:包含当前进程打开的每一个文件描述符,这些文件描述符是之前实际文件的一个符号链接
其余文件就不一一赘述了。