Windows 2000作为新一代的网络操作系统家族,无论在性能上还是可靠性上都有了质的飞跃。在Win dows 2000中,微软已经针对可能影响可靠性的软硬件和系统管理问题专门进行了加强。Windows 2000 在三个主要的方面改进了可靠性。
首先,对结构进行了修改,主要目的在保护操作系统的内核和共享内存,因此增强了系统的稳定性。
第二,开发了新的工具可以帮助开发者创建更可靠的代码。
第三,Windows 2000包含了新的管理特性可以提高可靠性。在本文中将对这些增强和新特性进行专门介绍:
对操作系统来说,用户的主要需求就是系统的可靠性。我们平常提到的可靠性实际上指的是两个方面的操作系统特性:可靠性和可用性。在提到操作系统的时候,可靠性是指一台服务器如何相容的运行应用程序和服务而尽量少的发生错误,可靠性越高就表示系统发生错误的机会越少;而可用性是指系统可以使用的时间,可用性高就表示系统可用使用的时间多,因为日常维护和意外错误导致的宕机时间就少。可靠性可以通过减少潜在的系统失败的原因来提高,而可用性则可以通过解决宕机的原因来解决。简而言之,一个可靠的和可用的系统很少失败,在关机后也很容易重新启动。
Microsoft? Windows? 2000 操作系统家族在硬件、软件和系统管理方面进行了增强以解决可用性和可靠性的问题。微软利用内部和从客户处搜集的大量数据来分析引起Windows NT 4.0失败的原因。这些信息帮助微软增强了Windows 2000的稳定性和可靠性,并且帮助微软开发了工具,这些工具可以帮助管理员更快得分析问题,以及更快得从不可避免的失败中恢复。
Windows 2000 在三个主要方面提高了可靠性和可用性:对操作系统进行基本的改进,帮助开发人员创建可靠的代码,提供管理员提高系统可用性的新的工具。
首先,通过结构的修改,操作系统的稳定性得到了增强,结构的修改主要集中在保护操作系统的内核和共享内存上面。包括:
?内核模式的写保护,这有助于阻止错误的代码干涉操作系统的工作。
?Windows 文件保护,阻止新的软件安装替代了基本的系统文件。
?Windows 2000 使用Driver Signing (驱动程序数字签名)来识别通过了Wind ows Hardware Quality Labs 测试的驱动程序,并且在用户将要安装没有数字签名的驱动程序时对用户提出警告。
第二,新的工具可以帮助开发人员创建更可靠得驱动程序。例如,一个公共的驱动程序问题的来源是不正确的使用共享内存。Pool Tagging 和 Guard Pages 特性使得跟踪内存使用更加简单,因此可以帮助开发人员对设备驱动程序进行调试。Driver Verifier 和 Device Path Exerciser 工具可以让开发人员检查错误分类,而在以前这些问题在测试环境中很难发现。
第三,Windows 2000 包括了新的管理特性,这些特性和增强改进了可用性。其中最重要的是减少了要求系统重新启动的维护功能的数目。关键的诊断过程运行的更快速,例如进行硬盘检查或者在系统失败时创建一个关于内存使用的详细报告。另外的几个改进减少了关机和重新启动的时间。
本文将对这些改进在技术方面做一个全面的介绍
系统结构和内存使用
可靠性和可用性的改进的核心是对操作系统和内存的保护。许多会引起系统不稳定的问题主要是由于对操作系统内核(在内核中执行着基本的系统服务)的意外的影响,。因为内核控制着整个操作系统,所以影响内核的代码错误对可靠性有极大的影响。影响内存的错误也是不稳定的一个经常的来源。
Windows 2000操作系统提供了一个应用程序运行的环境。它包含了一系列的小软件组件,它们在一起工作来执行任务。每一个组件提供了一系列的功能来作为系统其它部分的接口。这些模块提供了访问CPU和其他硬件资源的方式。操作系统还提供了使程序和组件可以互相通信的机制。
核心模式和用户模式
Windows 2000 将执行代码分为以下两种模式
用户模式
用户模式中的软件在没有特权的状态下运行,对系统资源只有有限的访问权限。例如,软件不能直接访问硬件。Wi ndows 2000基础的应用程序和被保护的子系统运行在用户模式下。被保护的子系统运行在自己的空间内,不会互相干涉。
核心模式
在核心模式中,软件可以访问所有的系统资源,例如计算机硬件和敏感的系统数据。核心模式中的软件构成了操作系统的核心,它们可以分为如下几组:
?Executive(执行体) 包含为环境子系统和其他执行体组件提供系统服务的系统组件。它们执行的系统任务包括输入/输出,文件管理,虚拟内存管理,资源管理,以及进程内部通信等等。
?Device drivers(设备驱动程序) 将组件的调用(例如,请求打印机)翻译为硬件操作。
?Hardware abstraction layer(HAL,硬件抽象层) 将Windows 200 0 Executive 的其它部分与特定的硬件分离开来,使操作系统与多处理器平台相兼容。
?Microkernel(微内核) 管理微处理器。它执行一些重要的功能,例如调度,中断,以及多处理器同步等。
内存模型
Windows 2000 增添了新的特性以解决因为共享内存的不同的处理方式引起得问题。要理解这些改进,就要先理解Windows 2000是如何管理内存的。
Windows 2000 使用虚拟内存管理器来管理虚拟内存和物理内存。
虚拟内存指操作系统如何使内存对应用程序可以使用。Windows 2000 支持4GB的虚拟内存。其中2 GB为核心模式使用,另外2GB为核心模式和用户模式共同使用。物理内存指计算机中安装的内存芯片。虚拟内存管理器( VMM)使用内存映射表来跟踪每一个进程使用的虚拟内存地址以及这些地址引用得实际数据在物理内存中的位置。为了让多个应用程序可以共享内存空间,VMM使用一个叫做PAGING的进程在物理内存和硬盘之间交换内容。这些被交换的内容叫做page files.
可靠性改进
由于提供预先检测,阻止了应用程序、服务或设备驱动程序对内存的不正确使用,Windows 2000提高了可靠性。操作系统可以非常出色的管理应用程序以及系统的错误,使得系统不会宕机。另外,为了保证一个程序的失败不会导致影响操作系统或者其他应用程序的运行,其他的子系统与应用程序被隔离在单独的内存空间中。
在Windows 2000中对可靠性的改进主要在三个领域:结构改进,核心模式代码开发工具,以及用户模式代码开发工具。
结构改进有助于保护操作系统核心模式操作。这些改进包括:
?核心模式写保护
?Windows 文件保护
?驱动程序数字签名
核心模式写保护
为了保护操作系统中的每一部分不会受其它部分的错误的影响,Windows 2000在内核部分和设备驱动程序中添加了写保护和只读部分,正象Windows NT总是有用户模式应用程序和动态连接库一样。
为了提供这种保护,物理内存映射标志出包含代码的内存页面,保证它们不能够被覆盖,即使是操作系统也不能。这样就阻止了核心模式软件破坏了其他核心模式软件。这些特性在缺省情况下是激活的,当然如果用户和开发人员愿意的话,可以关闭这些特性。
Windows 文件保护
在Windows 2000以前的Windows版本中,安装软件可能覆盖共享的系统文件(例如,DLL,和可执行文件)。如果系统文件被覆盖,系统性能就会变得不可靠,程序的行为就会混乱,操作系统可能会失败。
Windows 文件保护在安装前检查原来的系统文件的版本。这样就保证象.sys, .dll, .ocx , .ttf, .fon, .exe等系统文件不会被替代。Windows 文件保护在后台运行,保护所有的由Wi ndows 2000安装程序安装的文件。它检测其他程序要替换或删除一个被保护的系统文件的企图。Windows 文件保护检查文件的数字签名来确定新文件是否为正确的版本。如果这个文件的版本不正确,Windows文件保护就从d llcache目录,网络安装路径或者Windows 2000光盘中替换这个文件。如果Windows文件保护找不到合适的文件,它就会提示用户输入正确的路径。Windows文件保护还会将替换文件的企图写入事件日志。
缺省情况下,Windows文件保护是被激活的,只允许在安装下面的软件时替换被保护的系统文件:
?使用Update.exe安装Windows 2000 Service Packs
?使用Hotfix.exe
?使用Winnt32.exe进行操作系统升级
?Windows Update
?Windows 2000 Device Manager/Class Installer
驱动程序签名
驱动程序签名有助于提高驱动程序的质量,因为它允许Windows 2000和Windows 98通知用户他们安装的驱动程序是否通过了微软的认证程序。驱动程序签名将一个加密的数字签名附加在通过了Windows Har dware Quality Labs (WHQL) 测试的代码文件上。
如果驱动程序运行在Windows 2000和Windows 98操作系统中,那么给驱动程序签名则是WH QL测试的一部分。数字签名与独立的驱动程序包结合在一起,Windows 2000可以识别它。这种认证证明用户使用的驱动程序是经过微软测试的那个驱动程序,如果在该驱动程序被放在HCL中后被修改过,Windows 2000就会通知用户。 驱动程序允许三种反应:Warn,Block,Ignore.
?Warn 在被安装的驱动程序没有数字签名的情况下,让用户了解,并且让用户决定是否安装。Warn还让用户可以选择安装一个被保护的驱动程序文件的没有签名的版本。
?Block 禁止安装所有的没有签名的驱动程序。
?Ignore 允许安装所有文件,不管这些程序是否有数字签名。
缺省情况下,Windows 2000 以Warn方式发布。
核心模式代码开发
如前所述,软件可以被分为两类:用户模式软件和核心模式软件。那些有助于程序员创建可靠的用户模式的应用程序的开发工具对开发核心模式代码的程序员来说就不合适了。因为编写核心模式代码由特定的要求,Windows 2000 Server中的可靠性的改进就包括专为核心模式开