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中的可靠性的改進就包括專為核心模式開