1 驱动模型的理解
听老师讲的这些开始没有理解 于是就看了几本书理解一些然后又看老师的视频有些理解小小的体会赶紧记录下来嘿嘿
驱动模型就是主体的思想就是让尽量少的代码服务最多的设备和让更多的设备去应用 就冲着这个思想就不难理解 understanding the linux kenal这本书里的血东西呵呵
看懂了这些 为什么要这么组织 可能看一遍还是看不懂的但是没关系了 多看几遍下面就说一个最简单的例子
实例
加入插入的是一个usb的 鼠标
插入的第一步会被usb 总线识别 然后会与 总线里面的 驱动皮匹配然后呢 找到驱动 匹配成功 然后呢就会在那个 sys/devices 里面有个这个文件你是能够看到的总体来说是应三个 包括 总线里面的那两个
下面的就是 介绍一下 几个重要的 角色
subsystem
bus_type kobject kset kobject_type 这几个结构在utlk 这本书里面能够找到 带有注释呢 当然也能在源码里面找到
里面有几个重要的 对象下面说明一下
kobject 里面
有个attr 这个一看就知道是属性啦 这个是指针的指针 是一大堆属性 于是这个就符合了上面的思想
有个sys_ops 这个当然是对属性的操作了 这个需要传入几个参数 传入的那几个 猜就能猜出来根据上面的思想 如果猜不出来就去看看代码啦
这个里面有最基本的两个指针就是 指向 写入和读取的东西因为一个属性对应的是一个简单的文件 所以呢是文件就会有文件的几本属性 就能够经得起读取 写入了
当然具体怎么办 这个是有vfs 弄得呵呵这个不用操心了
初始化看kobject 和添加注册这个我就不多说了 很简单的事 请难就难在 比较有深度的理解为什么这么做了
kset 这里就一句话 是kobject的一个集合 深入理解linux内核里面说的很清楚 可以去参考我这里就不废话啦
可以看多当初linux内核设计者们的思路就是这个样子的 如果要我去设计内核我想我也会这么做的似乎没有找到更好的办法(暂时的哦)
看完了是不是很简单 其实就是这么简单 看完了我的这个你就会有一个主体的简单的思路然后再去看书学习的 时候就会有指导的知道那里是重点了呵呵