23-小结
8.7 小结
本章概述了设备驱动程序的基础知识,并介绍了它们在Linux系统架构中的作用。现在你已经掌握了这些基础知识,如果你是设备驱动程序方面的新手,可以找一本专门讲述设备驱动程序的优秀参考书继续深入学习,本章最后一节列出了几本相关书籍。本章最后介绍了内核设备驱动程序和开源GNU公共许可证之间的关系。
- 设备驱动程序将非特权的用户应用程序和关键的内核资源(比如硬件和其他设备)合理地划分开来。而且,它们向应用程序提供了一个大家熟知的统一接口。
- 要加载设备驱动程序,我们所需的最少的基础设施仅仅是几行代码。我们介绍了这一基础设施,并在此概念的基础上编写了一个使用驱动模块的应用程序。
- 内核启动后,配置为可加载模块的设备驱动程序可以加载到运行的内核中,也可以从中删除。
- 模块工具用于管理设备驱动程序模块的加载、删除和罗列。我们介绍了用于完成这些功能的模块工具。
- 文件系统中的设备节点是用户空间应用程序和设备驱动程序之间的粘合剂。
- 驱动程序中的方法实现了我们熟悉的
open
、read
、write
和close
函数,它们是所有UNIX/Linux设备驱动程序所共有的。我们用一个例子解释了这个机制,包括编写一个使用这些驱动方法的简单用户空间应用程序。
补充阅读建议
《Linux设备驱动程序(第三版)》,Alessandro Rubini,Jonathan Corbet,中国电力出版社,2006年1月出版。
《精通Linux设备驱动程序开发》,Sreekrishnan Venkateswaran,人民邮电出版社,2010年6月出版。
“文件系统层次结构标准”
http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
Rusty的Linux内核主页(针对2.6内核的模块工具),Rusty Russell。