特殊文件系统,指的是在磁盘上没有对应的存储数据的文件系统,这其中最常见的,要属记录进程和内核运行参数的 proc 文件系统。
在本节课中,我们就来详细讨论一下 proc 文件系统,包括其中几个常用文件所包含的信息及可能的使用场景,主要包括以下几方面内容:
- proc 文件系统概述
- proc 文件系统详解
- 注意事项
17.1 proc 文件系统概述
在 Linux 的内核中,虚拟文件系统转换层(VFS)的存在,使得各种不同种类的文件都可以通过一组统一的系统调用来处理,其中不仅包括保存在不同格式的文件系统上的磁盘文件,还包括各种不同种类的外部设备,以及进程信息和多种内核参数,等等。
特殊文件系统中的文件,其特殊之处在于,它们的信息并不是保存在外部物理存储设备上的,而是在收到读取请求的时候才由内核动态生成的。
proc 文件系统提供了一些内核中各个子系统的信息,它使得在用户空间简单地使用 cat 和 each 命令,或者 read 和 write 系统调用就可以获得内核各子系统的信息,比如 CPU 型号和参数、内存使用量、可用的定时硬件及详细参数、连接的外部设备及映射地址,等等,还可以在系统运行时动态修改内核