- 论坛徽章:
- 0
|
国内所谓的linux开发,很大一部分应该是在做驱动开发。从代码量来看,这部分代码在内核所占的比例也是最高的。没出来一种新设备,就需要有驱动程序来对它进行操作。
从2.5开始,linux为驱动开发提供了一个模型,大大简化了驱动程序编写的难度。最近也在看这方面的资料,打算边看边做些笔记。ldd3也有专门讲这部分内容,但看完之后感觉还不是很明白。主要是这部分数据结构太复杂了。而且大部分开发人员只需要开发设备驱动程序,调用系统提供的接口,所以这部分内容也比较少人讲。
CPU通过总线和各个设备相连,在设备驱动程序之上有总线驱动,如PCI总线驱动。内核也为总线开发提供了一系列的支持,称之为核心驱动。主要是提供了一些数据结构,以及一些注册函数等。
ldd3提到,驱动模型最主要的数据结构是kobject, kset, subsystem。但我觉得最主要的就是kobject。其他两个都是对它的包装。kobject是各种数据结构相互联系的纽带。
要去打球了,而且目前所学也不多,打算慢慢写。希望对这部分比较熟悉的朋友可以给个连接,让知识共享,让大家互相学习。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/17192/showart_334194.html |
|