编写设备驱动程序

什么是设备驱动程序?

设备驱动程序是一种内核模块,负责管理硬件设备的底层 I/O 操作。设备驱动程序是使用标准接口编写的,内核可通过调用该标准接口与设备进行交互。设备驱动程序也可以是仅针对软件的,即模拟仅存在于软件中的设备,如 RAM 磁盘、总线以及伪终端。

设备驱动程序包含与设备进行通信时所需的所有特定于设备的代码。此代码包括一组用于系统其余部分的标准接口。就像系统调用接口可使应用程序不受平台特定信息影响一样,此接口可保护内核不受设备特定信息的影响。应用程序和内核其余部分需要非常少的特定于设备的代码(如果有)对此设备进行寻址。这样,设备驱动程序使得系统的可移植性更强,并更易于维护。

初始化 Solaris 操作系统 (Solaris operating system, Solaris OS) 后,设备会进行自标识并组织为设备树,即设备分层结构。实际上,设备树是内核的硬件模型。单个设备驱动程序表示为树中的一个节点,并且不包含任何子节点。此类型的节点称为叶驱动程序。为其他驱动程序提供服务的驱动程序称为总线结点驱动程序,并显示为包含子节点的节点。在引导过程中,物理设备会映射到树中的驱动程序,以便可以在需要时找到这些驱动程序。有关 Solaris OS 如何使用设备的更多信息,请参见第 2 章

设备驱动程序按照处理 I/O 的方式可以分为以下三大类别: