linux内核之虚拟文件系统
文章平均质量分 74
xhy_851221
这个作者很懒,什么都没留下…
展开
-
proc源码解析(一)--proc文件系统的内容
在linux系统中,伪文件系统是系统中重要的组成部分,它与普通文件的最大差别在于它的易失性。普通文件都有固定的存储介质,而伪文件系统则存储在内存中,这也使得伪文件系统在系统掉电后,它保存的内容就会挥发掉。Linux系统中存在以下几类伪文件系统:1.procfs:proc提供内核和用户交互的平台,由于其文件格式是ASCII,所以用户可以使用cat,vim,echo等命令查看或修改原创 2009-12-07 16:27:00 · 2589 阅读 · 2 评论 -
proc源码解析(二)--proc数据结构
上节主要说明了proc下的内容,从本节开始解析proc的实现。与普通文件系统一样,proc当然需要虚拟文件系统的支持,所以它必须具备文件系统的几个主要的数据结构。1.proc_dir_entry 在proc文件系统中,每个entry的实例是由proc_dir_entry来描述的,其结构如下: <!--原创 2009-12-07 16:46:00 · 2893 阅读 · 0 评论 -
proc源码解析(四)--挂载proc文件系统
挂载proc文件系统和挂载普通文件系统如ext2没有区别,其挂载过程会在VFS文件系统时详细描述,此处就不在多费唇舌了。 proc的挂载命令是: root@xuhengyang # mount -t proc proc /proc原创 2009-12-07 19:09:00 · 2663 阅读 · 0 评论 -
proc源码解析(五)--proc的管理函数
proc目录是系统模拟出来的一个文件系统,本身并不存在于磁盘上,其中的文件都表示内核参数的信息,这些信息分两类,一类是可都可写的,这 类参数都在“/proc/sys”目录下,另一类是只读的,就是“/proc/sys”目录之外的其他目录和文件,当然这只是一种惯例,实际在其他目录下建立可读写的/proc文件也是可以的。 Linux内核在2.4以后/proc目录文件的建立已经变得很容易原创 2009-12-07 19:11:00 · 7726 阅读 · 0 评论 -
proc源码解析(六)--proc文件读写函数
前边说过目录项创建时一般都使用默认的读写函数,本节就来看看默认的文件操作函数的定义。前边已经引用过该定义,此处再次引用:static const struct file_operations proc_file_operations = { .llseek = proc_file_lseek, .read = proc_file_read,原创 2009-12-07 19:19:00 · 3506 阅读 · 0 评论 -
proc源码解析(七)--查找目录项
前边几节讲了proc的实现和管理,还有一个重要的功能没有提到,那就是proc目录项的查找。 在查找的过程中,用户程序把proc看作是普通文件系统里的文件;也就是说当查找目录项时,do_lookup会调用real_lookup函数执行与文件系统相关的查找,real_lookup则会调用proc根节点inode的 proc_root_inode_operations中的proc_ro原创 2009-12-07 19:24:00 · 2870 阅读 · 0 评论 -
proc源码解析(三)--proc初始化
在使用proc之前,我们必须首先初始化并挂载proc,并在内核内存中创建数据结构来描述文件系统。但是,不同的体系结构拥有不同的proc内容,所以,在初始化阶段并不完全创建子目录的内容,有些文件要等到系统运行时动态创建。Proc文件系统初始化的流程图如下: proc_root_init的定义定义如下:void __init proc_root_init(voi原创 2009-12-07 17:11:00 · 3646 阅读 · 0 评论