关于驱动模型的(1)的深度解析
来源:互联网 发布:赛钛客st软件下载 编辑:程序博客网 时间:2024/06/16 17:54
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内核设计者们的思路就是这个样子的 如果要我去设计内核我想我也会这么做的似乎没有找到更好的办法(暂时的哦)
看完了是不是很简单 其实就是这么简单 看完了我的这个你就会有一个主体的简单的思路然后再去看书学习的 时候就会有指导的知道那里是重点了呵呵
- 关于驱动模型的(1)的深度解析
- 关于驱动模型的理解
- 关于模型驱动开发的一个小争论(zt)
- 关于XML文档模型的事件驱动
- 关于Struts2模型驱动封装的细节
- ConcurrentHashMap关于方法的深度解析
- 关于编码问题的深度解析
- 关于AsyncTask的一次深度解析
- 关于僵尸进程的深度解析
- 深度解析:关于无人驾驶最新进展的深度研究报告
- 关于hello world驱动的解析
- 深度探索C++对象模型 关于对象的笔记
- 深度链接、延迟深度链接、App Links以及关于LinkedME实现深度链接的原理解析
- 推荐 | CVPR2017关于如何解释深度学习模型的讲座(附视频与PPT)
- Struts2的模型驱动
- wince的驱动模型
- Struts2的模型驱动
- Struts2的模型驱动
- Qt 多线程之 std::thread (一)
- Oracle 10.2.0.1 数据库hang住 Bug 4612267
- java数据结构
- 2011.7.8 在PLSQL Developer中远程连接他机的Oracle数据库
- 笔试 sizeof 字节对齐(实例详细解说版)
- 关于驱动模型的(1)的深度解析
- js清除所有cookies
- 在Hadoop集群中添加机器和删除机器
- SNMP++ linux环境搭建与编译
- Linux查看CPU和内存使用情况详细解读
- 在JAVA中解决Zip压缩乱码问题
- Android 应用程序窗体显示状态操作(requestWindowFeature()的应用) [轉載]
- div左右滚动条(转)
- js清除所有cookies