proc文件系统的作用
(1) 内核项目太庞大,调试困难,引入新的调试方法。
(2) proc文件系统的思路是:在内核中构建一个虚拟文件系统/proc,内核运行时将内核中一些关键的数据结构以文件的方式呈现在/proc目录下的一些特定文件中, 这样相当于将不可见的内核中的数据结构以可视化的方式呈现给内核开发者。
(3) proc文件系统给了开发者一种调试内核的方法:我们通过实时的观察/proc/xxx文件,来观看内核中特定数据结构的值。在我们添加一个新功能的前后来对比,就可以知道这个新功能产生的影响对还是不对。
(4)proc目录下的文件大小都是0,因为这些文件本身并不存在于硬盘中,它也不是一个真实文件,它只是一个接口,当我们去读取这个文件时,其实内核并不是去硬盘上找这个文件,而是映射为内核内部一个数据结构被读取并且格式化成字符串返回给我们。 所以尽管我们看到的还是一个文件内容字符串,和普通文件一样的,但是实际上我们知道这个内容是实时的从内核数据结构中读取的,而不是硬盘中的。
扩展出sys文件系统
(1)sys文件系统本质上和proc文件系统是一样的,都是虚拟文件系统,都在根目录下有个目录(一个是/proc目录,另一个是/sys目录),因此都不是硬盘中的文件,都是内核中的数据结构的可视化接口。
(2)不同的是/proc中的文件只能读,但是/sys中的文件可以读写。读/sys中的文件就是获取内核中数据结构的值,而写入/sys中的文件就是设置内核中的数据结构的元素的值。
(3)历史上刚开始先有/proc文件系统,人们希望通过这种技术来调试内核。实际做出来后确实很有用,所以很