参考文档
- Documentation/filesystems/sysfs.txt
- Documentation/sysfs-rules.txt
- Linux那些事儿之我是USB
什么是sysfs
sysfs是一个基于ram的文件系统。sysfs根据kobject框架,将内核中的数据结构、属性文件、相互关系通过文件系统的方式表现出来,并提供了内核空间和用户空间交互的一种方式。
我们讨论一个文件系统,首先要知道文件系统的信息来源在什么地方。如使用mout挂载一个分区mount -t vfat /dev/hda2 /mnt/c
可以知道挂载在/mnt/c下的是一个vfat类型的文件系统,其信息来源是硬盘的第二个分区。而sysfs的挂载过程如下所示:mount -t sysfs sysfs /sys
上述命令看起来没法理解,其实因为sysfs是一个虚拟文件系统,没有实际存放文件的戒指。其信息来源是设备基于kobject构成的设备层次。
用户空间如何调用到属性文件的过程(show 和 store)
- sysfs_init_inode
- sysfs_create_link
- sysfs_create_file
seperate out kernfs from sysfs