虚拟文件系统
2012-08-15 12:20
239 查看
最近在读linux源代码(slab部分),有一个工具slabinfo可以查看slab的相关信息,其实slabinfo就是读取sys/kernel/slab下面的文件。现在有一问题,sysfs是用来允许用户态进程读取内核数据的,但是我想知道只是如何实现的,具体说,就是想知道以下方面的问题:
1.假设内核中每一部分如slab允许用户态程序访问其中数据,那么slab程序和sysfs是如何建立关系的呢?是slab调用sysfs的借口将数据写入(在数据需要更新时)?还是将sysfs中的某个属性文件和内核中某一数据建立某种关联,当读取属性文件的时侯再读取内核数据?请给出确定答案和分析。
2.我在读取slab源码的时候没有发现和sysfs建立关联的蛛丝马迹,不知是错过了还是不需要在slab源码中和sysfs建立关联,而在引用slab接口的模块中使用sysfs?
我用的内核版本是2.6.18。
通过cat /proc/slabinfo可以看到已经注册到内核的slab信息。
下面简单介绍一下/proc/slabinfo的实现:
在proc_root_init函数里注册了PROC文件系统proc_fs_type,并进行了mount。
在proc_misc_init函数里,在PROC文件系统中添加了slabinfo文件,此文件的操作函数集为proc_slabinfo_operations。
具体的slab信息是proc_slabinfo_operations操作集访问cache_chain链来实现的。
这里更多的是文件系统的内容,而不是内存管理的内容。
另,如果我们的内核版本不一样,其实现也可能会有差别。
引用 1 楼 的回复:
我用的内核版本是2.6.18。
通过cat /proc/slabinfo可以看到已经注册到内核的slab信息。
下面简单介绍一下/proc/slabinfo的实现:
在proc_root_init函数里注册了PROC文件系统proc_fs_type,并进行了mount。
在proc_misc_init函数里,在PROC文件系统中添加了slabinfo文件,此文件的操作函数集为proc……
sysfs是不是也是类似的实现方式啊?我之后会去学习文件系统的相关知识,但是现在想得到一个确定的答案
rootfs, sysfs, procfs, pipefs, ext2fs, ext3fs ...
这些都是文件系统,实现机制都类似。
1.假设内核中每一部分如slab允许用户态程序访问其中数据,那么slab程序和sysfs是如何建立关系的呢?是slab调用sysfs的借口将数据写入(在数据需要更新时)?还是将sysfs中的某个属性文件和内核中某一数据建立某种关联,当读取属性文件的时侯再读取内核数据?请给出确定答案和分析。
2.我在读取slab源码的时候没有发现和sysfs建立关联的蛛丝马迹,不知是错过了还是不需要在slab源码中和sysfs建立关联,而在引用slab接口的模块中使用sysfs?
我用的内核版本是2.6.18。
通过cat /proc/slabinfo可以看到已经注册到内核的slab信息。
下面简单介绍一下/proc/slabinfo的实现:
在proc_root_init函数里注册了PROC文件系统proc_fs_type,并进行了mount。
在proc_misc_init函数里,在PROC文件系统中添加了slabinfo文件,此文件的操作函数集为proc_slabinfo_operations。
具体的slab信息是proc_slabinfo_operations操作集访问cache_chain链来实现的。
这里更多的是文件系统的内容,而不是内存管理的内容。
另,如果我们的内核版本不一样,其实现也可能会有差别。
引用 1 楼 的回复:
我用的内核版本是2.6.18。
通过cat /proc/slabinfo可以看到已经注册到内核的slab信息。
下面简单介绍一下/proc/slabinfo的实现:
在proc_root_init函数里注册了PROC文件系统proc_fs_type,并进行了mount。
在proc_misc_init函数里,在PROC文件系统中添加了slabinfo文件,此文件的操作函数集为proc……
sysfs是不是也是类似的实现方式啊?我之后会去学习文件系统的相关知识,但是现在想得到一个确定的答案
rootfs, sysfs, procfs, pipefs, ext2fs, ext3fs ...
这些都是文件系统,实现机制都类似。
相关文章推荐
- 《Linux内核设计与实现》读书笔记(十三)- 虚拟文件系统
- 向下之旅(十八):虚拟文件系统(二)
- 如何实现虚拟客户机linux系统与主机Windows的文件共享或互访?
- 内核-虚拟文件系统
- linux虚拟文件系统数据结构
- 关于如何找到vmx文件(虚拟系统配置文件)的方法
- 虚拟内存及虚拟文件系统概论
- 《Linux内核设计与实现》读书笔记(十三)- 虚拟文件系统
- Linux 的虚拟文件系统(强烈推荐)
- 从文件 I/O 看 Linux 的虚拟文件系统
- 虚拟硬盘文件+Mac HFS文件系统的数据恢复
- 理解linux虚拟文件系统VFS - 路径查找 path_lookup
- 虚拟文件系统中的数据结构(fs_struct、files_struct)
- Linux虚拟文件系统--文件路径名的解析(2)--回退父目录
- 十三、虚拟文件系统
- 在Solaris 文件系统上模拟测试ASM-(OS文件转化为虚拟设备)
- Linux虚拟文件系统--open()
- (三)Seafile FUSE 虚拟文件系统开发---整体思路
- Linux虚拟文件系统小结