工具分享|Synthetic Image Research Map:AI 生成图像检测与溯源研究的交互式文献地图
2026/7/21 23:28:38
class对硬件设备进行分类管理class与用户空间守护进程udev/mdev协作,自动创建设备文件classes_init()函数在sysfs文件系统中创建一个名为class的文件夹。class_create()函数,在class文件夹下创建一个指定名称的分类文件夹(比如指定分类名为xxx)。device_create()函数,在指定的分类中又创建一个表示设备的文件夹(比如指定设备名为yyy)。调用这个函数的时候,我们会传入设备号,所以这个设备文件夹下会生成一个名为dev的设备属性文件存放设备号。device_create()函数除了创建/sys/class/xxx/yyy这个设备目录,还会调用kobject_uevent()函数给用户空间的udev/mdev守护进程发送一个新增设备的消息。udev/mdev收到这个消息后,会去读取/sys/class/xxx/yyy/dev属性文件中的设备号,然后调用mknod()函数在/dev目录下创建一个名为yyy的设备节点。include/linux/device.h
#defineclass_create(owner,name)\({\staticstructlock_class_key__key;\__class_create(owner,name,&__key);\})structclass*__class_create(structmodule*owner,constchar*name,structlock_class_key*key);THIS_MODULEkobject对象的名字,也即是目录的名称struct class里面间接继承了kobject对象include/linux/device.h
structdevice*device_create(structclass*class,structdevice*parent,dev_tdevt,void*drvdata,constchar*fmt,...);classkobject对象的上一层节点,一般为NULLNULLkobject对象的名字