sysfs文件系统是基于RAM实现的文件系统,以下操作便是基于sysfs文件系统。
一、kobject和kset和kobject_uevent()
1)kobject
kobject表示一个内核对象,在使用时通常是嵌在某一内核对象的数据结构中,比如字符设备cdev定义的内核对象也嵌入了。
struct kobject {
/*用来表示内核对象的名称,如果该内核对象加入系统,那么它的name会出现在sysfs文件系统中,
表现形式是一个新的目录名字*/
const char *name;
/*将一系列的内核对象构成链表*/
struct list_head entry;
/*指向该内核对象的上层节点,通过该成员构建内核对象的层次化关系*/
struct kobject *parent;
/*当前内核对象所属的kset对象指针,kset可以容纳一系列同类型的kobject对象*/
struct kset *kset;
/*定义了该内核对象的一组sysfs文件系统相关的操作函数和属性。同时,内核通过ktype成员将
kobject对象的sysfs文件操作(show和store)与其属性文件关联起来。*/
const struct kobj_type *ktype;
/*用来表示该内核对象在sysfs文件系统中对应的目录项