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
ocx
f
fon
exe等系統文件不會被替代
Windows 文件保護在後台運行
保護所有的由Windows
安裝程序安裝的文件
它檢測其他程序要替換或刪除一個被保護的系統文件的企圖
Windows 文件保護檢查文件的數字簽名來確定新文件是否為正確的版本
如果這個文件的版本不正確
Windows文件保護就從dllcache目錄
網絡安裝路徑或者Windows
光盤中替換這個文件
如果Windows文件保護找不到合適的文件
它就會提示用戶輸入正確的路徑
Windows文件保護還會將替換文件的企圖寫入事件日志
缺省情況下
Windows文件保護是被激活的
只允許在安裝下面的軟件時替換被保護的系統文件
使用Update
exe安裝Windows
Service Packs
使用Hotfix
exe
使用Winnt
exe進行操作系統升級
Windows Update
Windows
Device Manager/Class Installer
驅動程序簽名
驅動程序簽名有助於提高驅動程序的質量
因為它允許Windows
和Windows
通知用戶他們安裝的驅動程序是否通過了微軟的認證程序
驅動程序簽名將一個加密的數字簽名附加在通過了Windows Hardware Quality Labs (WHQL) 測試的代碼文件上
如果驅動程序運行在Windows
和Windows
操作系統中
那麼給驅動程序簽名則是WHQL測試的一部分
數字簽名與獨立的驅動程序包結合在一起
Windows
可以識別它
這種認證證明用戶使用的驅動程序是經過微軟測試的那個驅動程序
如果在該驅動程序被放在HCL中後被修改過
Windows
就會通知用戶
驅動程序允許三種反應
Warn
Block
Ignore
Warn 在被安裝的驅動程序沒有數字簽名的情況下
讓用戶了解
並且讓用戶決定是否安裝
Warn還讓用戶可以選擇安裝一個被保護的驅動程序文件的沒有簽名的版本
Block 禁止安裝所有的沒有簽名的驅動程序
Ignore 允許安裝所有文件
不管這些程序是否有數字簽名
缺省情況下
Windows
以Warn方式發布
核心模式代碼開發
如前所述
軟件
From:http://tw.wingwit.com/Article/os/xtgl/201311/5213.html