CHAPTER 1 设备驱动程序简介
内核功能划分:
进程管理
管理进行你创建与销毁,处理它们与外部的连接(即输入或输出)。
内存管理
进行内存策略性管理。
文件系统
Unix中每个对象都可当作一个文件进行相应的操作,内核在没有结构的硬件上构造结构化的文件系统,文件抽象在整个系统中广泛使用。
设备控制
每一系统操作最终映射到物理设备上,所有设备的操作都由驱动程序来完成。
网络功能
处理网络数据包的接收与发送,如数据的收集、标识和分发,系统负责在应该程序和网络接口之间传递数据包,并根据网络活动控制程序的招待,还有网络的路由和地址解析都由内核处理。
![](https://img-my.csdn.net/uploads/201410/02/1412226776_7260.png)
设备与模块的分类:
字符设备
字节流设备,如串口,至少需要实现open、close、read和write,字符设备可能通过系统节点来访问,如/dev/ttyS1,与普通文件唯一差别在于普通文件的访问可以前后移动访问位置,而字符设备只能顺序访问。
块设备
大多数情况下,块设备的I/O操作每次只能传输一个或者多个完整的块,而每块包含512字节(或者2的更高次幂的数据),块设备和字符设备的区别仅仅在于内核内管管理的方式,即内核与驱动程序之间的软件接口。
网络接口
网络接口,可能是个硬件设备,也可是个线软件设备,如回环(loopback),网络接口在文件系统中不存在对应的节点,只分配一个唯一的名字,如eth0等。
版本编号:
内核版本,偶数编号(如2.6.x)为正式发行的稳定版本,而奇数编号(如2.7.x)则是开发过程中的一个快照,很快就被下一个版本更新
最后贴一个LDD第三版地址:
Linux Device Drivers, Third Edition