proc 文件系统是一个虚拟文件系统,它以文件系统的方式为应用层访问系统内核数据提供了接口
,
用户和应用程序可以通过 proc 文件系统得到系统信息和进程相关信息
,对 proc 文件系统的读写作为与内核进行通信的一种手段。但是与普通文件不同的是,proc 文件系统是动态创建的,文件本身并不存在于磁盘当中、
只存在于内存当中,与 devfs 一样,都被称为虚拟文件系统。
内核构建 proc 虚拟文件系统,它会将内核运行时的一些关键数据信息以文件的方式呈现在 proc 文件系统下的一些特定文件中,这样相当于将一些不可见的内核中的数据结构以可视化的方式呈现给应用层。
proc 文件系统挂载在系统的/proc 目录下,对于内核开发者(譬如驱动开发工程师)来说,proc 文件系统给了开发者一种调试内核的方法:通过查看/proc/xxx 文件来获取到内核特定数据结构值,在添加了 新功能前后进行对比,就可以判断此功能所产生的影响是否合理。
/proc
目录下有很多以数字命名的文件夹,譬如
100038
、
2299
、
98560
,这些数字对应的其实就 是一个一个的进程 PID
号,每一个进程在内核中都会存在一个编号,通过此编号来区分不同的进程,这个编号就是 PID
号。
proc
文件系统的使用
proc
文件系统的使用就是去读取
/proc
目录下的这些文件,获取文件中记录的信息,可以直接使用
cat
命令读取,也可以在应用程序中调用 open()
打开、然后再使用
read()
函数读取。