操作系统中的设备驱动程序2025年4月22日 | 阅读6分钟 操作系统借助设备驱动程序来处理所有 I/O 设备。设备驱动程序是一种计算机程序,它操作或控制连接到计算机或自动机的特定设备。驱动程序为硬件设备提供软件接口,使操作系统和其他计算机程序能够访问硬件功能,而无需了解所用硬件的精确细节。 设备驱动程序对于计算机系统的正常运行至关重要。没有设备驱动程序,特定硬件将无法正常工作,这意味着它无法执行为其创建的特定操作。 驱动程序依赖于硬件并且特定于操作系统。它们通常提供中断处理,这是任何必要的异步时间相关的硬件接口所必需的。 驱动程序通过硬件连接到的计算机总线或通信子系统与设备进行通信。一旦设备将数据发送回驱动程序,驱动程序可能会调用原始调用程序中的例程。当调用程序调用驱动程序的例程时,驱动程序会向设备发出命令。 ![]() 设备驱动程序封装了设备相关的代码,并实现了一个标准接口来包含特定于设备的寄存器读写。设备驱动程序通常由设备制造商编写,并随设备一起在 CD-ROM 上提供。设备驱动程序执行以下工作,例如:
设备驱动程序如何处理请求?设备驱动程序在操作系统中处理请求的方式如下: 假设收到读取块 N 的请求。如果驱动程序在收到请求时处于空闲状态,它会立即开始执行请求。否则,如果驱动程序已经忙于处理其他请求,它会将新请求放入待处理请求队列中。 设备驱动程序的目的设备驱动程序的主要目的是通过充当硬件设备与使用它的应用程序或操作系统之间的翻译器来提供抽象。程序员可以编写更高级别的应用程序代码,而无需考虑最终用户正在使用的特定硬件。 例如,与串行端口交互的高级应用程序可能有“发送数据”和“接收数据”函数。实现这些功能的设备驱动程序将与用户计算机底层安装的特定串行端口控制器进行通信。 控制 16550 UART 所需的命令与控制 FTDI 串行端口转换器所需的命令不同。尽管如此,每个特定于硬件的设备驱动程序都会将这些细节抽象成相同或类似的软件接口。 设备驱动程序如何工作?当您购买打印机、扫描仪、键盘或调制解调器等外围设备时,设备会附带驱动程序 CD,需要在设备开始工作之前安装。一旦我们将驱动程序软件安装到计算机中,它就会检测并识别外围设备,我们就能控制它。 设备驱动程序是一段软件,它允许您的计算机操作系统与驱动程序为其编写的硬件设备进行通信。通常,驱动程序通过**计算机总线**与设备通信,该总线将设备与计算机连接起来。设备驱动程序依赖于操作系统的指令来访问设备并执行任何特定操作。在操作完成后,它们还通过将硬件设备的输出或消息传递给操作系统来显示它们的响应。 ![]() 设备驱动程序在操作系统**内核**层内工作。内核是操作系统中直接与系统物理结构交互的部分。操作系统不会直接访问设备,而是加载设备驱动程序并调用驱动程序软件中的特定函数来执行设备上的特定任务。每个驱动程序都包含执行设备操作所需的特定于设备的 कोड。 读卡器、控制器、调制解调器、网卡、声卡、打印机、显卡、USB 设备、RAM、扬声器等都需要设备驱动程序来操作。例如,打印机驱动程序在收到 OS 的指令后会告诉打印机以何种格式打印。同样,声卡驱动程序之所以存在,是因为 MP3 文件的 1 和 0 数据会转换为音频信号,您就可以欣赏音乐了。 设备驱动程序类型对于几乎所有与计算机系统相关的设备,都存在特定硬件的设备驱动程序。但它可大致分为以下两类,例如: ![]() 1. 内核模式设备驱动程序 这种内核模式设备驱动程序包含一些通用硬件,这些硬件作为操作系统的一部分与操作系统一起加载。这些是**BIOS、主板、处理器**以及内核软件中的其他一些硬件。它们包括每个操作系统的最低系统要求设备驱动程序。
2. 用户模式设备驱动程序 除了内核为了系统运行而提供的设备外,用户在使用系统期间还会使用一些设备,这些设备需要设备驱动程序才能正常工作,这些驱动程序属于用户模式设备驱动程序。例如,用户需要的任何即插即用操作都属于此类别。 设备驱动程序应用由于现代硬件和操作系统的多样性,驱动程序在许多不同的环境中运行。设备驱动程序可以与打印机、视频适配器、网卡、声卡、各种类型的本地总线、图像扫描仪、数码相机、数字地面电视调谐器、IrDA 适配器接口,并支持不同的文件系统。它还与以下接口:
为给定的硬件选择和安装正确的设备驱动程序通常是计算机系统配置的关键组成部分。设备驱动程序的常见抽象级别包括: 1. 对于硬件
2. 对于软件
什么是虚拟设备驱动程序虚拟设备驱动程序是设备驱动程序的特定变体。它们用于模拟硬件设备,尤其是在虚拟化环境中,例如,当在 Microsoft Windows 计算机上运行 DOS 程序时,或者当在 **Xen** 主机上运行客户操作系统时。虚拟设备驱动程序不启用客户操作系统与硬件对话,而是扮演相反的角色,模拟硬件的一部分。在虚拟机内部运行的客户操作系统及其驱动程序可以拥有访问真实硬件的错觉。 客户操作系统尝试访问硬件的请求作为函数调用被路由到主机操作系统中的虚拟设备驱动程序。虚拟设备驱动程序还可以将模拟的处理器级事件(如中断)发送到虚拟机。 虚拟设备也可以在非虚拟化环境中使用。例如,虚拟网络适配器与虚拟专用网络一起使用,而虚拟磁盘设备与 **iSCSI** 一起使用。虚拟设备驱动程序有几种变体,例如 VxDs、VLMs 和 VDDs。虚拟设备驱动程序的良好示例是 **Daemon Tools**。 |
我们请求您订阅我们的新闻通讯以获取最新更新。