LDD3读书笔记(第一章)
第一次阅读linux驱动方面的书籍,带着三个疑问进行下去。
what how why
什么是 怎样做 为什么
第一章:设备驱动的简介
- 设备驱动的作用:了解驱动,我们首先要知道什么是设备驱动程序,设备驱动程序在内核中扮演一个特殊的角色,它们是独立的,让某个硬件响应一个定义好的内部编程接口,这些接口完全隐藏了设备的工作细节,这就是设备驱动程序。区分机制和策略是学习驱动程序最好的思想之一,机制是“需要我们提供的功能”,策略是“如何使用这些功能”,驱动程序在于提供机制,而不提供策略。在我们设计的时候一定要考虑到三个因素:1.提供给用户尽量多的选项。2.时间效率。3.尽量保证程序的简单。
- 内核功能划分:在unix系统中支持多个进程的并发运行,每个进程都请求资源,内核就负责处理这些请求,根据不同的任务分为五个部分:1.进程管理。2.内存管理。3.文件系统。4.设备控制。5.网络功能。我们驱动程序主要就是以设备控制一方面为主题。
- 设备模块的分类:1.字符设备:能像字节流一样被访问的设备,类似于文件一样,大多数字符设备是一个只能顺序访问的数据通道。2.块设备:块设备就是一些存储介质,例如磁盘。进行传输时每次只能传输一个块或多个完整的块。3.网络接口:任何网络事物都通过一个网络接口形成,通常接口是一个硬件设备,但也可以是软件设备。网络驱动程序不需要知道各个连接的相关信息。他只需要处理数据包即可。