發展歷史
Windows NT 的最久遠的歷史是 Microsoft 公司為最初的 IBM PC 設計的MS-DOS或PC-DOS。最早的版本DOS 1.0,在 1981年8月發布。它由 4000行彙編代碼組成,運行於8KB記憶體中,使用Intel 8086 微處理器。隨著Intel 不斷推出功能越來越強大的 CPU 以及 PC 領域各種新技術的問世,Microsoft 不斷推出新的 DOS版本。但DOS並不能充分發揮一些新的CPU的強大功能。
早在20世紀80年代早期,Microsoft就開始研究圖形用戶界面(GUI)以方便使用。到1990年,Microsoft 已經有了GUI的一個版本Windows 3.0。Windows 3.0 界面友好,達到Macintosh機的水平,但仍需要DOS的支持。隨後,Microsoft開發出自己的Windows NT。Windows NT與Windows 3.x建立在完全不同的概念之上,它能充分發揮當前處理器的能力,提供了完全的多任務、單用戶環境。
系統功能
整個Windows NT系統的設計包括一個功能強大的執行模組,它運行於特權(或核心)處理器模式下。系統設計還提供系統服務、內部處理和一套稱為受保護的子系統的非特權伺服器。這些子系統運行於執行模組外的非特權(或用戶)模式下。值得注意的是,執行模組提供進入系統的唯一入口,任何其他損壞安全或破壞系統的可能入口都是不存在的。
一個受保護的子系統可以作為一個常規(本地)進程運行於用戶模式下。與應用程式相比,子系統也可以有一些擴展的權力,但是它不能看成是執行模組的一部分。因此,子系統不能越過系統安全結構或使用其他方式對系統造成破壞。子系統使用高性能的本地過程調用(LocalProcedure Call,LPC)與它們的客戶機進行通信,或互相之間進行通信。
Windows NT執行模組包括一套用於系統服務的組成部分:對象管理器( Object Manager)、系統安全監控器(Security Reference Monitor)和進程管理器(Process Manager)等。這些模組的主要功能是從發出請求的子系統或應用程式中選定一個已經存在的執行緒(thread)。首先它判斷要處理的執行緒是否有效,然後執行這個執行緒並把執行緒的控制權交回發出請求的程式。
特點
Windows NT具有非常強的可維護性和可擴展性。Windows NT的系統設計十分簡潔,整個系統設計中都使用了通用的編程標準,程式編碼就像文檔一樣直截了當,後續的編程開發人員能夠完成系統設計中的任何一塊小的工作。
由於使用子系統來實現系統的主要部分,因此Windows NT能隔離並控制所依賴的系統環境。例如,POSIX 標準的變化只會影響一個系統組成部分,即 POSIX 子系統,進程結構的設計、記憶體管理和同步原語等都不會受到影響。Windows NT 設計適應了需求的改變和增長,如子系統可以在不對基本系統產生影響的情況下增加系統的功能,可以在不修改Windows NT執行模組的情況下,加入新的子系統。
在Windows NT4.0里,許多Win32的圖形用戶界面(GUI)子系統,如視窗管理器(Window Manager)、圖形設備界面(GDI)和相關的圖形驅動程式等,都從運行於csrss.exe子系統進程里的一段代碼移到核心模式設備驅動程式(Win32k.sys),控制台、系統關閉和硬體錯誤處理等部分仍然保留在用戶模式下,這種改變大大提高了系統性能,同時降低了記憶體需要,對應用程式開發人員沒有絲毫影響。
Windows NT 具有非常高的魯棒性。系統的核心模式部分輸出定義精確的 API,通常沒有模式參數或其他標誌。API 實現簡單、測試容易和歸檔方便。系統主要組成部分(如Win32、OS/2和POSIX)都被分割成獨立的子系統,每個子系統設計簡單,要實現的只是其API集合需要的某些特性。
Windows NT中廣泛使用基於幀的異常控制器,使Windows NT和其子系統能以一種可靠有效的方式捕捉編程錯誤,過濾壞的或無法定址的參量。
由於劃分成核心模式系統服務和子系統,所以系統通過參量有效性的判斷能更加有效地防止運行不良的應用程式破壞作業系統。