系统信息访问指南
1. 传统与现代系统信息访问方式
在过去,像 ps 和 uptime 这类 UNIX 程序,会直接访问内核数据结构来获取系统信息。这要求开发者了解内核外部接口,并且在访问时要确保数据值不被修改。这些程序还需要设置 setuid root 权限才能访问内核数据结构,若编写不当,就容易遭受安全攻击。而且,当内核发生变化时,由于数据结构的位置和布局可能改变,这些程序常常需要重新编译。
现代一些系统引入了 /proc 虚拟文件系统,其中包含特殊文件,通过读取这些文件就能获取系统状态信息,这些文件通常是纯文本文件。相较于其他系统,Linux 系统通过 /proc 文件系统提供了更丰富的信息。
/proc 文件系统中的条目可以由任何内核模块创建,实现 /proc 文件系统及其部分条目的代码位于 /usr/src/linux/fs/proc 目录下,部分 proc 命名空间使用内核函数 proc_register() 进行注册。
需要注意的是,这里介绍的 /proc 文件是基于运行 2.2.5 内核的系统。如果你的内核版本不同,或者安装了会创建 /proc 条目的驱动程序,那么你看到的文件可能会有所不同。很多这里列出的文件在文档中并未提及,因此需要结合自身知识、内核源码、与各种工具输出的对比,甚至偶尔的
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



