设备驱动使某些特定硬件响应一个定义良好的内部编程接口。驱动程序可以看做应用程序和实际设备之间的一个软件层。
驱动程序同样存在机制和策略的分离问题。应当尽可能做到让驱动程序不带策略。举例:软驱的驱动程序不带策略,他的作用是将磁盘表示为一个连续的数据块阵列;系统高层负责提供策略,比如谁有权访问软盘驱动器,是直接访问驱动器还是通过文件系统,以及用户是否可以再驱动器上挂装文件系统等。有时候也需要在驱动程序中实现一些策略,如某个数字I/O驱动程序只提供一字节为单位访问硬件的方法,这样可以避免编写额外代码来处理单个数据位的麻烦。
内核功能划分

设备和模块的分类
- 字符设备
- 块设备
- 网络接口
版本编号
内核api发生的变化