sysfs是一个特殊的文件系统,类似于/proc。sysfs不仅像/proc一样允许用户空间访问内核的数据,而且以更结构化的方式向用户提供内核数据信息。sysfs是一种内存文件系统,它与kobject关系非常密切。系统中的每一个kobject对应着sysfs中的一个目录,而每一个sysfs中的目录代表一个kobject对象,每个sysfs文件代表对应的kobject的属性。
sysfs文件系统非常清晰地展示了设备驱动程序模型中各组件的层次关系。其顶级目录包括block、device、bus、drivers、class、power、firmware等。
[root@urbetter sys]#ls
block class devices fs module
bus dev firmware kernel power
/sys的根目录见表2-1。
sysfs文件系统最基本的函数包括:
表2-1 sysfs文件系统的目录
sysfs文件系统一般是自动加载到/sys下的,也可以通过下面的命令手工加载:(www.xing528.com)
mount-t sysfs sysfs/sys
device_create函数用于在/sysfs文件系统中创建一个指定设备号的设备:
例2.1 自动创建设备节点
本例演示如何在驱动中创建/sys类节点与/dev设备节点。先要在/sys/class目录中创建节点,发出内核事件,才能触发udev或者mdev等设备事件处理程序来增删设备节点。
本例代码见\samples\2model\2-1module_devicecreate。核心代码如下:
本例运行结果如下:
可见/sys/class以及/dev下面均创建了设备文件。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。