kobject和kset之间的关系

Linux驱动基于kobject和kset构建设备模型,kobject作为设备属性的抽象,拥有属性和读写接口,类似文件夹包含属性文件。kset则如同更大文件夹,组织同类设备驱动。通过kobject和kset,设备以文件系统节点形式存在,允许属性读写。代码示例创建了/sys下的kobject目录,包含可读写的属性文件。
摘要由CSDN通过智能技术生成

linux驱动是一个整体的设备模型,这个模型是以kobject和kset作为基石的,因此搞懂kset和kobject的内部运作关系才能很好的理解统一设备模型.
首先linux对设备的抽象就是将设备描述为一个文件节点,因为设备有属性,比如说亮度、颜色等。因此kobject也就有属性.有了属性还要有统一的读写接口,写入的属性值通过内部再真正写到设备里面去.因此可以将一个kobject看成一个文件夹,里面有许多文件,一个文件描述一个属性.
而kset就可以看成是一个更大的文件夹,可以理解为类别,比如将所有驱动看成一个文件夹,这个文件夹是一个kset,然后这个文件夹下面有许多具体的驱动,这些驱动看成kobject.
先上图再看代码
图片来源:https://blog.csdn.net/qq_33160790/article/details/63800016

struct kobject {
	const char		*name; //名称,文件名称
	struct list_head	entry; //同一级kobject链接结点
	struct kobject		*parent; //指向父级的kobject
	struct kset		*kset; //指向父级kset
	struct kobj_type	*ktype; //属性
	struct sysfs_dirent	*sd; 
	struct kref		kref; //引用计数
	unsigned int state_initialized:1; //标志位
	unsigned int state_in_sysfs:1;
	unsigned int state_add_uevent_sent:1;
	unsigned int state_remo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值