5.Windows 95:构筑即插即用的理论体系<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
即插即用系统的设计目标就是使普通用户安装新硬件的操作更容易,减少麻烦事。1995年,微软公司在其发布的Windows 95操作系统中率先提供了对即插即用技术的支持,即插即用技术从此走上了不断发展的道路。即插即用操作系统能够动态地分配和管理系统资源,有效地避免资源冲突,提高了电脑的可靠性和易用性。
Windows也好,Linux也罢,操作系统就是一个管理和利用好硬件资源、然后为应用程序做好服务的一个“中间件”。操作系统的主要任务是将设备、主机(包括BIOS)与设备驱动程序三者结合起来。为此,操作系统要完成两个基本任务:一是为设备配置资源,让设备在主板上占有一席之地;二是为设备选择匹配的驱动程序,以便在需要时可以调用它。
前文曾提到,操作系统对一些基本的硬件(如键盘、鼠标和软驱、硬盘等)进行操作时,是通过调用BIOS的中断服务程序实现的。因为这些BIOS所支持设备的驱动程序固化在BIOS中,系统通过调用软件中断的方式来执行它们,因此称为中断服务程序。对于BIOS所不支持的设备,操作系统需要操作和管理这些设备时,就要利用设备驱动程序。
驱动程序是随新硬件而来的用于管理硬件的程序,可别小看了它的作用。如果把新硬件比作新娘,驱动程序就是陪嫁的仆人,她既了解新娘的嗜好和习惯,对新主人也惟命是从。驱动程序执行操作系统给出的任务,去与硬件打交道,并将执行结果返回给操作系统。
操作系统安装驱动程序,就是让操作系统、驱动程序和新硬件三者之间实现无缝连接。已经安装的设备驱动程序保存在\WINDOWS\SYSTEM目录中,注册表中记录了驱动程序的位置及文件名、版本号等详细信息。操作系统欲对某设备进行操作时,可以立即找到它,并把操作任务交给它去做。操作系统软件之所以越来越庞大,其中一个主要原因就是其中捆绑了更多的驱动程序,这样就让更多的设备可以实现无人值守的安装了。
说了半天,Windows发现和安装硬件驱动程序的究竟是怎样一个过程呢?这大概才是大家最想知道的。Windows利用“PnP管理器”和“I/O管理器”这两个家伙来发现和完成新设备安装,如图3。
图3 即插即用系统信息流程
新设备插入后,即PnP管理器会发现它,然后告诉用户说:“发现了新硬件”。之后,它会默不作声地去注册表中寻找,看有没有现成的驱动程序,如果能找到,就告诉用户,你安装的新硬件已经可以使用了。如果没有找到与这台设备相匹配的驱动程序,就会提醒用户说,我找到你所安装的设备,但还要请你插入这台设备的驱动程序盘。用户把驱动程序盘给了它,它立即打开盘上的.inf文件(inf的意思是install information,安装信息),检查.inf文件里的标志与新设备的标志是否相同,如果相同,它就会依照.inf文件里提供的路径去找驱动程序,找到之后,后面的工作交给I/O管理器去做,由I/O管理器来完成驱动程序的安装工作。I/O管理器当然也不是白干活,它成了驱动程序的新主人,驱动程序以后就听它使唤了。
6.即插即用理论的最新发展
Windows 95首创了即插即用的理论架构,但它却远不是一个可靠的解决方案,也因此得了一个绰号Plug and Pray(即插即祈祷)。Windows98、Windows2000直至现在最新Windows XP都对即插即用技术进行了不断完善。
Windows2000对Windows95的即插即用模式进行了重大变革,Window2000采用新型的WDM(Windows Driver Model,Windows驱动模型)体系结构,对于为Windows 95和Windows 98所编制的VxD(虚拟设备驱动)程序不提供支持。相比之下,Windows98还是一个过渡产品,在使用WDM的同时,也保留了对VxD的支持。
Windows2000对即插即用的支持是按照ACPI(Advanced Configuration and Power Interface,高级配置和电源接口)规范来处理的,所有电源管理和配置设置都处于操作系统的控制之下,而不再受BIOS控制。BIOS与操作系统在资源配置问题上分庭抗礼的局面已经结束,BIOS不再对资源进行配置,其主要任务转变成为ACPI创建一个“资源需求表”供操作系统使用。这种新的控制模式使Window2000对即插即用的支持比Window95具有更为广泛的适应性。
Windows 2000对资源实行动态分配,多台设备可以共享同一IRQ,这个特性可以使用户添加多个硬件而不用关心硬件冲突的事情。你可能看到在设备管理器中许多设备共同使用一个IRQ,比如IRQ9,但每一台设备都可以正常运转。
最新的Windows XP与Windows 2000的内核基本相同,能够更好地支持一些新近出现的设备,如DVD和IEEE1394接口的AV设备等。Windows XP将即插即用应用范围扩展到了整个网络上,可以发现和控制网络打印机、Internet网关以及消费电子设备。
为了确保硬件对即插即用操作系统的支持,Microsoft对硬件制造商提供硬件及驱动程序的PnP兼容性测试服务,获得通过的硬件和驱动程序可获得Microsoft的Designed for Windows标志及驱动程序的数字签名。目前,这一技术已经被纳入到Windows 2000和Windows XP的即插即用管理器中。
7.开放体系结构:即插即用的基石
|
20年前,IBM、Intel和微软在个人计算机制造业的联姻,诞生了开放的PC工业标准,标志着个人计算机应用时代的全面到来。开放的硬件体系结构、统一的操作系统和应用软件,这个一统江湖的标准沿用至今。
开放体系可以让各种设备非常容易地连接在一起。“基于简单扩展总线的开放体系结构” 的出现是电脑的一次革命,也是PC最重要的概念。如果没有开放体系,从工厂造出来的电脑一切都不能更改,不能扩充功能,不能升级,电脑就是一个死机器。一句话,没有开放体系结构,新硬件压根儿无从谈起。
开放体系结构已经沿用了20年,现在仍然可以把最早期的PC扩展卡插在最新的PC主板上并保证正常工作,这就是开放标准的魅力所在。ISA是最早的总线标准,最初为8位数据宽度,运行速度为4.77MHz,与当时的CPU速度相同。后来发展为16位,运行速率达到8MHz,今天仍然有一些ISA板卡在使用中。
PCI总线标准是ISA的替代者,数据传输速度提高到了133MB/s,最高甚至可达533MB/s(总线数据位宽为64bit和总线工作频率为66NHz时),这使ISA总线望尘莫及。另外,PCI比ISA“聪明”多了,可以共享中断申请 (IRQ),支持即插即用,这是一大进步。只要将适配卡插入PCI插槽,不用设置跳线开关,不用选择IRQ、DMA通道、I/O接口地址和存储器地址,系统就自动检测到并分配资源,马上便可以使用了。另外,使用PCI网卡,还可以实现远程唤醒,它是通过PCI插槽的A19引脚连接到ACPI控制器的一个唤醒信号PME(Power Management Event,电源管理事件)实现的。
USB和IEEE1394的诞生和发展,给开放式体系结构注入了新的活力。这两种接口最大的特点是支持热插拔,电脑用户通过它们第一次体验到即插即用带来的好处。另外,它们都具有极高的数据传输率,顺应了历史发展潮流,因此近几年得到了迅速发展。新出现闪存盘和数码产品一开始就采用这两种接口,一些老的设备(如打印机和扫描仪等)为了提高速度,也开始从并行接口向USB接口转移。
8.Device ID:即插即用设备身份证
前面曾经谈到,为了保证硬件对即插即用的支持,微软对设备制造商提供的驱动程序进行测试认证。驱动程序通过测试以后,微软硬件质量实验室(WHQL)会返回设备制造商送检的驱动程序文件和一个.cat文件(catalog,目录),.cat文件含有Microsoft的数字签名(也叫“驱动程序签署”或“代码签署”)信息。这样,制造商便可将这个.cat文件包括进驱动程序包中提供给最终用户,用于硬件安装的数字签名审核。经过数字签名的设备信息可以在微软公司的网站上找到。
驱动程序经过数字签名后,制造商可以在其产品上署名“Designed for Windows”标志,同时拥有一个与数字签名相匹配的Device ID(设备识别码)。Device ID是一个4位的16进制数,保存在设备的ROM芯片中,它就是该设备的身份证,具有全球唯一性。安装驱动程序时,安装程序中的数字签名程序将读取Device ID,以检验驱动程序的合法性和PnP兼容性。驱动程序安装后,其Device ID和其他一些能够进一步标识该设备的详细信息被记录在注册表的HKEY_LOCAL_MACHINE\Hardware\Description\System子键中,其中除了Device ID,还有Vendor ID(制造商识别符)、subsystem ID和revision ID等更为详细的设备信息。
在Windows XP中,数字签名策略默认为启用状态,通过数字签名测试的驱动程序,则表明已经通过了Windows的硬件兼容性测试(Hardware Compatibility Test,HCT),而且自通过测试之日起没有被改动过。
如果试图安装一个未经签署的驱动程序,Windows会发出一个警告信息,告知驱动程序数字签名的重要性,如图4。选择继续安装,就不能保证设备能否正常使用。安装了一个与device ID与不相匹配的驱动程序,设备管理器会将该设备作为“未知设备”对待。如果发生资源冲突,还会在该设备前面加一个黄色感叹号。
图4 数字签名的警告信息
除了在操作系统安装驱动程序要用到Device ID,PnP BIOS也要读取并识别Device ID,以便分辨设备类型,根据类型给其分配所需的资源。
(全文结束)
文章评论(0条评论)
登录后参与讨论