Enterprise Just Builder

Solution for Enterprise Software Architecture

Linux和Windows设备驱动架构比较

本文将带你了解广泛使用的 Windows 和 Linux 操作系统的设备驱动架构的差异。文章将首先比较这两个平台上实现设备驱动所需的组件,然后讨论实现驱动程序的过程,包括如何对内核缓冲区执行 I/O 操作等等。最后我们还将了解这两个操作系统所提供的开发环境和基础工具。1 1.引言 现代操作系统一般都包含多个模块,如内存管理器、进程调度器、硬件抽象层和安全管理器等等。这里提供一些参考资料以方便你进一步了解这两种操作系统的内核:关于 Windows 内核的细节,可翻阅 Russinovich 著的《Windows Internal》一书;而 Linux 内核则可以参考 Rusling 的《The Linux Kernel》或者 Beck et al 等合著的《Linux Kernel Internal》。内核可被视为一个黑盒,它知道如何去和市面现有的或将要推出的各种设备交互。能否让内核内建就支持所有市面上的已知设备呢?这是有可能实现的,但没有实际意义,因为这会无谓地消耗过多的系统资源。 1.1. 内核模块化 内核无法在创建伊始就预见到要如何与尚未面世的新设备交互。现代操作系统的内核允许在运行时添加设备驱动模块来扩展系统功能,该模块实现的功能使得内核可以与特定的某种新设备交互。这些模块通常都会实现一个例程供内核在加载模块时调用,此外还有一个例程供移除模块时调用。模块还会实现其他各种不同的例程以便实现 I/O 功能,如将数据传送到设备或从设备接收数据;同时还有例程以便向设备发送 I/O 控制指令。这些对 Linux 和 Windows 两种驱动架构均适用。 1.2. 本文的组织结构 本论文分成下面几节: 对两种驱动架构的一般介绍 (第二节) 详细论述两种驱动架构的各个组件 (第三节) 驱动程序范例,包括如何对内核缓冲区执行 I/O 操作(第四节) 相关驱动开发环境和基础工具(第五节) 1.3. 相关著作 有关 Windows 设备驱动架构相关文档可在 Windows 驱动开发包(DDK)中找到. […]

, , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.