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