设备驱动模型的底层架构:kobject 、kobj_type和kset等

设备驱动模型的底层架构

定义在linux/kobject.h中

kobject    

(1)各种对象(类、设备、总线、驱动等)最基本单元,提供一些公用型服务如:对象引用计数(kref)、维护对象链表、对象上锁(kset)、对用户空间的表示(kobj_type)
(2)设备驱动模型中的各种对象(每种对象都对应一个结构)其内部都会包含一个kobject

(3)地位相当于面向对象体系架构中的总基类

kobj_type

(1)很多书中简称为ktype,每一个kobject都需要绑定一个ktype来提供相应功能
(2)关键点1:sysfs_ops,提供该对象在sysfs中的操作方法:show(当我们执行cat的时候就是利用这种方法)和store(当我们执行echo的时候就是利用这种方法)
(2)关键点2:attribute,提供在sysfs中以文件形式存在的属性,其实就是应用接口

kset

(1)kset的主要作用是做顶层kobject的容器类
(2)kset的主要目的是将各个kobject(代表着各个对象)组织出目录层次架构
(3)可以认为kset就是为了在sysfs中弄出目录,从而让设备驱动模型中的多个对象能够有层次有逻辑性的组织在一起

猜你喜欢

转载自www.cnblogs.com/zhangshuaifeng/p/10634269.html