Windows 9X内核模式驱动程序的设计与策略
1995年Microsoft公司推出了其新一代的桌面操作系统Windows 95,从技术层面来看它是为发挥32位处理优越性能而设计的一个32位操作系统。而它出色的稳定性,强大的寻址能力,无不归功于对32位处理保护模式的充分应用。具体来讲,它利用了80386的保护机制,从操作系统到一般应用程序分别分到4个特权层上,操作系统享有最高的优先级,被安排在ring-0上运行,而优先级最低的普通应用程序被安排在ring-3上运行。这样做的好处是如果一般的应用程序在ring-3上崩溃将不会影响到ring-0的操作系统,另一方面也是对在ring-3上的应用程序所能访问到的资源做了一定的限制,从而大大降低了因应用程序直接操作而产生的意外错误。换句话说,在Windows 98或Windows 95下,应用程序不能像在实模式下可以随意操作硬件资源,而需要通过编写运行在内核模式(ring-0)的虚拟设备驱动程序(virtual device driver)才能达到目的。因此,在Windows 9X下如何高效编写硬件设备驱动程序是微机应用开发中迫切需要解决的问题。
1 Windows 9X系统结构
确切的说Windows 9X不是一个操作系统,而是一个操作系统的集合。当计算机运行在保护模式下时,有“两个”操作系统同时存在,即Windows 本身和一个更低的操作系统,我们把它称为VMM/DPMI(virtual machine manager/Dos protect mode interface)。VMM的主要目的是管理同时运行的32位保护模式Windows应用程序(Win32 applications以及运行在虚拟86模式下的MS-DOS程序,前者称为“线程”(threads),后者称为VM(virtual machine)。VMM使每一条线程拥有自己的独立地址空间,使每一个VM都“单独”占有CPU,并为它们提供各种服务。从图1中我们可以看出,threads和VMs所能访问到的资源已不是直接的物理资源,而是被VMM虚拟化virtualized后的虚拟资源了。
另外,VMM是一个可扩充的“操作系统”,它的核心部件以及标准部件(比如,DMA控制器管理VDMAD,中断管理VPICD等)是由Microsoft提供的。但我们可以编写一些扩充模块,也就是用VxD来增强VMM对硬件的虚拟能力,使整个操作系统获得对新硬件的访问能力。不仅如此,这种扩充操作系统的办法,还能为Win32程序与MS-DOS程序之间的通讯提供一种新的途径以代替传统的MS-DOS设备驱动程序以及内存驻留程序TSRs。从某种意义上说,没有VxD不能完成的事情,而且由于VxD是运行的保护模式下,所以它并不占有宝贵的常规内存。此外,运行实模式MS-DOS驱动程序所导致的模式切换也不复存在。因此一般来讲,VxD的运行速度要高出MS-DOS驱动程序一倍以上。更重要的是VxD在Windows 9X下可以动态装入与卸载而不需要重新启动计算机,这就大大提高了系统的灵活性,同时也为即插即用(Plug and Play)提供了可能。与实模式的驱动程序相比,可动态装、卸载可谓是一场革命。
相关文章
- 2024-10-29一种新型电容测量仪
- 2022-10-14虚拟DCS技术除氧系统建模与仿真概述
- 2022-05-05基于W77E58单片机的通用数据采集和通讯仪的设计
- 2023-12-06轴瓦厚度测量机稳定性的测量分析
- 2023-01-20天然气流量计量的高级孔板阀计量特性与误差分析
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。