Skip to content

设备驱动程序接口

考情分析

设备驱动程序的概念在 I/O 软件层次中已覆盖,单独考查频率较低。🔥 低频。

同样是"读 512 字节",对磁盘要设置柱面号和扇区号,对网卡要填 DMA 描述符——驱动程序就是把上层的统一指令翻译成每种设备听得懂的操作。

设备驱动程序的作用

驱动程序是 I/O 系统中唯一与硬件直接交互的软件模块,负责将上层的抽象 I/O 请求翻译为对设备控制器的具体操作。

驱动程序的功能

功能说明
接收 I/O 请求从设备无关层接收抽象的 I/O 命令
翻译命令将抽象命令转换为具体的硬件操作序列
操作寄存器设置设备控制器的各寄存器
启动 I/O发出启动命令,开始数据传输
处理完成I/O 完成后的后续处理(如唤醒等待进程)

驱动程序的特点

特点说明
设备特定每种设备有对应的驱动程序
内核态运行驱动程序是内核的一部分,运行在内核态
可动态加载现代 OS 支持动态加载和卸载驱动程序
屏蔽差异对上层提供统一接口,屏蔽设备硬件差异

统一驱动程序接口

为了让设备无关层能以相同方式调用不同设备的驱动程序,OS 定义了统一的驱动程序接口:

接口函数功能
open初始化设备,准备使用
close关闭设备,释放资源
read从设备读数据
write向设备写数据
ioctl设备特定的控制命令
interrupt_handler中断处理

每个驱动程序实现这些函数,OS 通过函数指针表(如 Linux 的 file_operations 结构)调用它们。这就像插座标准——不管你插什么电器,三孔插座的接口都一样,电器内部怎么用电是自己的事。

驱动程序与中断处理的配合

  1. 驱动程序设置好设备控制器寄存器,启动 I/O
  2. 当前进程阻塞,CPU 转去执行其他进程
  3. I/O 完成后设备发出中断
  4. 中断处理程序响应中断,通知驱动程序
  5. 驱动程序完成后续处理(数据拷贝、唤醒进程等)

考研高频考点

  • 🔥🔥 驱动程序是 I/O 软件中唯一与硬件直接相关的层
  • 🔥 驱动程序运行在内核态
  • 🔥 统一驱动接口屏蔽设备差异

驱动程序直接操作设备控制器,而所有设备中考得最多的就是磁盘。下一篇来看磁盘的物理结构与调度算法。

真题练习

相关真题(3题)

2026Q31选择题2分

设备驱动:字符设备和块设备使用不同的I/O方式

2022Q32选择题2分

设备驱动:驱动程序与I/O控制方式密切相关

2013Q25选择题2分

I/O软件层次:设备驱动程序负责将逻辑请求转换为物理参数