第11章 设备驱动模型 在早期的Linux内核中并没有为设备驱动提供统一的设备模型。随着内核的不断庞大和系统的不断复杂,编写一个驱动程序越来越困难,所以在Linux 2.6内核中添加了一个统一的设备模型。这样,写设备驱动程序就稍微容易一些了。本章将对设备模型进行详细的介绍。 11.1 设备驱动模型概述 设备驱动模型比较复杂,Linux系统将设备和驱动归一到设备驱动模型中来管理。设备驱动模型的提出,解决了以前编写驱动程序没有统一方法的局面。设备驱动模型给各种驱动程序提供了很多辅助性的函数,这些函数经过严格测试,可以很大程度地提高驱动开发人员的工作效率。 11.1.1 设备驱动模型的功能 Linux内核的早期版本为编写驱动程序提供了简单的功能:分配内存、分配I/O地址、分配中断请求等。写好驱动之后,直接把程序加入到内核的相关初始化函数中,这是一个非常复杂的过程,所以开发驱动程序并不简单。并且,由于没有统一的设备驱动模型,几乎每一种设备驱动程序都需要自己完成所有的工作,驱动程序中不免会产生错误和大量的重复代码。 有了设备驱动模型后,现在的情况就不一样了。设备驱动模型提供了硬件的抽象,内核使用该抽象可以完成很多硬件重复的工作。这样很多重复的代码就不需要重新编写和调试了,编写驱动程序的难度有所下降。这些抽象包括如下几个方面: 1.电源管理 2.即插即用设备支持 3.与用户空间的通信 1
原创力文档

文档评论(0)