本系列文章是对《Linux Device Drivers》一书的个人笔记,作为学习过程的记录,供日后参考回顾用,不保证可读性和条理性。
设备驱动程序简介
机制和策略
区分机制和策略是Unix的设计哲学之一。
- 机制:需要提供什么功能
- 策略:如何使用这些功能
举例一:TCP/IP网络,位于下层的操作系统负责提供套接字抽象,但在所传输的数据上没有附加任何策略;上层的服务器则分别提供不同的服务。
举例二:ftpd服务器提供文件传输机制,用户可以使用任何自己喜欢的客户端传输文件,例如命令行和图形客户端。
驱动程序应当不带策略:编写访问硬件的内核代码时,不要给用户强加任何特定策略。不同的用户有不同的需求,驱动程序应该处理如何使用硬件可用的问题,而降怎样使用硬件的问题留给上层应用程序。因此,当驱动程序只提供了放文件硬件的功能而没有附加任何限制是,这个驱动程序就比较灵活。
不带策略的驱动程序包括一些典型特征:
- 支持同步和异步操作
- 驱动程序能够被多次打开、充分利用硬件特性
- 不具备用来简化任务的软件层
- 不具备提供与策略相关的软件层