Linux驱动模型简介

65 篇文章 0 订阅
50 篇文章 2 订阅

Linux驱动模型可以从底层和上层两个层次来探究:  设备底层模型 和 设备模型的上层容器

Linux驱动模型和sysfs文件系统紧密相连,在内核中注册的每个kobject对象对应sysfs文件系统中的一个目录。
sysfs的引入是为了方便调试,设备模型的开发者将设备结构树导出为一个文件系统,这就是sysfs文件系统,它可以帮助用户能以一个简单文件系统的方式来观察系统中各种设备的拓扑结构。sysfs代替了先前处于/proc下的设备相关文件;另外它为系统对象提供了一个很有效的视图。

1. Linux设备底层模型

kobject, ktype 和 kset
kobject代表设备驱动模型中一个基本对象,是一个顶级,抽象类,
用来嵌入某一个具体的设备结构体中
ktype是kobj_type类型的结构体, 记录了kobject对象的一些属性(对象公共属性,sysfs操作集,对象释放处理方法等)
kset是一个kobject集合,包含了一系列的kobject,同时它本身也是一个kobject


相关操作函数:
kobject 相关函数

复制代码
   kobject_init()            // 初始化kobject结构
   kobject_add()             // 将kobject对象注册到系统
   kobject_init_and_add()    // 初始化kobject,并将其注册到系统
   kobject_create()
   kobject_create_and_add()
   kobject_set_name()        // 设置kobject的名字
   kobject_del()             // 从系统中删除kobject对象
   kobject_get()             // 将kobject对象的引用计数加1,同时返回该对象指针
   kobject_put()             // 将kobject对象的引用计数减1,如果引用计数降为0,则调用release方法释放该kobject对象
复制代码

kset也有类型的函数

复制代码
   kset_init()                // 
   kset_register()            // 
   kset_unregister()        
   kset_create_and_add()
   kobject_del()              // 
   kset_get()                 // 
   kset_put()
复制代码


关于详细的描述可以参考内核文档 Documentation/kobject.txt

 

http://code.google.com/p/xue-xi/source/checkout

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值