複製鏈接
請複製以下鏈接發送給好友

Windows NT 3.1

鎖定
Windows NT 3.1是微軟Windows NT的第一代產品,發佈於1993年7月27日。用於服務器和商業桌面操作系統,版本號的選擇是為了匹配Windows 3.1,微軟當時最新版的圖形用户界面,以表明它們擁有非常類似的用户界面方面的視覺效果。有兩個版本的Windows NT 3.1可供選擇:Windows NT 3.1 Workstation和Windows NT Advanced Server。 [1]  它可以運行在Intel x86、DEC Alpha和MIPS R4000的CPU上。
中文名
視窗NT 3.1
外文名
Windows NT 3.1
開發發行
微軟(Microsoft)
發佈日期
1993年7月27日
最新版本
3.10.528(1994年11月10日)
結束支持
2000年12月31日
下一代
Windows NT 3.5

Windows NT 3.1開發歷史

Windows NT的開發工作始於1988年11月,當時微軟僱用了一組開發人員,他們來自DEC公司,由Dave Cutler領導。許多設計元素反映了DEC在VMSRSX-11上的前期經驗。這一操作系統設計以運行於多種指令集結構和每種結構裏的多種硬件平台之上。這種平台無關性通過一個叫做HAL的核心模式模塊最大程度隱藏在系統其餘部分之外。
Windows NT 3.1界面
Windows NT最開始計劃用於OS/23.0,由微軟和IBM聯合開發的操作系統的第三版。但當Windows 3.0於1990年5月發表後,取得了異常的成功,於是微軟決定修改當時尚未發表的NT OS/2(它當時叫這個名字)的主要應用程序接口,由對OS/2 API的擴展改為對Windows API的擴展。這一決定導致了微軟和IBM之間關係的緊張,他們的合作最終破裂。IBM獨自繼續對OS/2的開發,而微軟則繼續在新命名的Windows NT上的開發工作。
Windows NT的首次公開演示,當時它叫作“Windows Advanced Server for LAN Manager”,是在1991年8月的一個開發人員大會上,並於1993年在佐治亞州亞特蘭大市召開的Comdex春季展會上正式宣佈。

Windows NT 3.1體系結構

Windows NT體系結構是分為用户態與核心態兩層的搶先式,可重入的操作系統。可工作在單處理器或對稱多處理器(SMP)上。輸入輸出基於I/O請求包(I/O Request Packet, IRP)與異步I/O.
用户態下的程序與子系統僅能訪問有訪問權限的資源,核心態程序可以訪問所有資源與外設。Windows NT的內核是一種混合內核。其體系結構包括簡單內核, 硬件抽象層(HAL)驅動程序,一些服務(總稱為執行體),這些均屬於核心態,
Windows NT的用户態包括能夠傳遞I/O請求給適當內核態下的的軟件驅動程序的子系統。Windows NT的用户態包括了兩個子系統:環境子系統(在不同操作系統類型下執行應用程序);集成子系統(Integral subsystem)執行一些系統相關的函數。
執行體提供了大部分的系統服務功能。位於硬件抽象層與執行體之間的Windows NT的核心態部分提供了多處理器同步,線程與中斷調度與分派,自陷(trap)處理,異常分派。核心態還負責在啓動時初始化驅動程序。核心態驅動程序分為三層:高層驅動程序,中層驅動程序,低層驅動程序。Windows驅動程序模型(WDM)存在於中層驅動程序,主要用於二進制與源代碼兼容於Windows 98Windows 2000的驅動程序。低層驅動程序或者是Windows NT的老的設備驅動程序,或者是PnP硬件總線。
用户態
Windows NT操作系統的用户態部分包括兩個子系統:環境子系統與集成子系統.
環境子系統運行依據不同操作系統API而寫的程序。有3個環境子系統:Win32子系統,OS/2子系統,POSIX子系統,
Win32環境子系統運行32位Windows應用程序。還支持其他環境子系統的控制枱或文本窗口,以及Virtual DOS Machine(VDMs)上執行MS-DOS與16位Windows程序。這通過模擬在Intel 80486上運行MS-DOS 5.0實現. Win32環境子系統進程(csrss.exe)還包含了窗口管理器以處理輸入的鍵盤鼠標事件,應用程序根據Windows消息來繪製或刷新其窗口。
OS/2環境子系統模擬了OS/2 1.x,支持16位基於字符的OS/2應用程序。但不支持32位字符或圖形的OS/2應用程序。運行OS/2 1.x的圖形程序,需要安裝Windows NT Add-On Subsystem for Presentation Manager。最後一個具有OS/2子系統的是Windows 2000;Windows XP不再有OS/2子系統,
POSIX環境子系統支持嚴格遵照POSIX.1標準及相關ISO/IEC標準寫的程序,這一子系統已經被Interix替代,它是Windows Services for UNIX的一部分
集成子系統包括了安全子系統, 工作站服務與服務器服務. 安全子系統處理安全令牌,基於資源許可授予或拒絕用户帳户訪問,處理登錄請求與初始化登錄鑑別,以及管理Active Directory工作站服務子系統提供了計算機訪問網絡的功能。服務器子系統提供了網絡服務功能。
核心態
Windows NT的核心態能訪問所有硬件資源,在保護內存區上執行代碼控制了調度、線程優先級、內存管理、硬件交互;禁止了用户態的程序與服務訪問關鍵資源,用户態進程必須請求核心態執行這類操作。
x86硬件體系結構支持四種CPU優先級:0到3。僅有0與3這兩種優先級被Windows操作系統使用。用户態程序運行在優先級3,核心態運行在優先級0(特權級別)也分別稱作"ring 3"與"ring 0"。這使得具有了只有2個優先級的RISC平台的可移植性。但是打破了OS/2應用程序包含的I/O特權段的兼容性
核心態的操作系統包含了由許多功能模塊組成的執行體服務, 內核驅動程序, 一個(微)內核,一個硬件抽象層HAL,
執行體
Windows執行體服務建立於低層核心態程序之上,包含在文件NTOSKRNL.EXE中[3]負責處理I/O,對象管理, 安全,進程管理. 劃分為幾個子系統,包括緩存管理,配置管理,I/O管理, 本地過程調用(LPC),內存管理,對象管理,進程結構與安全引用監視(SRM).這些子系統一起構成了執行體服務.系統服務,即系統調用也是在這一級別上實現,除了極少特例為了高性能而直接調用了內核層。
上下文中的術語"service"是指可調用的例程,或一整套可調用的例程。這不同於"服務進程(service process)"。服務進程是用户態下的程序,類似於類Unix系統的守護進程。
Object Manager
Object Manager
對象管理器是一個執行體的子系統,所有其他的執行體子系統,特別是系統調用必須通過它來獲得對Windows NT資源的訪問,這使得對象管理器成為資源管理的基礎設施。對象管理器用來避免在其他子系統中管理資源帶來的冗餘與不安全。在對象管理器視角,每個資源都是一個對象,不論是物理資源(如文件系統或外設),還是邏輯資源(如一個互斥鎖)。
緩存控制器
Windows Cache Manager與內存控制器、I/O控制器、I/O驅動一起為正常的文件I/O提供緩存,這種文件緩存是針對文件塊,對本地文件與遠程文件提供了一致的服務。實際上這是特殊的文件內存映射。
配置管理器
實現了Windows註冊表
i/o(輸入/輸出)管理器
允許用户態程序與設備的通信。I/O管理器把用户態程序的讀寫請求翻譯給硬件。例如,I/O管理器接收文件系統I/O請求,翻譯為對相關設備的調用,與低層設備驅動程序合作執行硬件讀寫操作。還包括了I/O操作的cache管理。
本地過程調用(lpc)
提供了一種進程間通信端口機制。是Microsoft RPC的基礎.
內存管理
管理虛擬內存,控制內存保護,以及物理內存與二級存儲之間的分頁調度,以及物理內存的分配.還能分析PE格式可執行程序,以便映射入或卸載這些程序。
進程結構
處理進程與線程的創建與終止,實現了作業概念(從Windows 2000開始).
即插即用管理器
處理即插即用,支持在啓動時的設備檢測與安裝,按需停止或啓動一個設備。它的大部分實際上是在用户態的Plug and Play Service中實現。
處理電源事件(關機,睡眠stand-by,休眠等),通知受影響的驅動程序。
安全引用監視(srm)
強制實行安全規則的子系統[8]通過訪問控制表(ACLs)確定一個對象或資源可以被訪問。訪問控制表由訪問控制條目(ACEs)組成.ACE包含了安全標識符(SID)與授予的操作列表,使得用户帳户、用户組賬號、登錄會話具有對資源的允許、不允許、審核(audit)等權限
gdi
圖形設備接口是負責畫線、字體繪製、處理調色板等。在Windows NT 3.x系列操作系統,GDI屬於用户態。從Windows NT 4.0,GDI移入了核心態,以提高圖形性能。
kernel(內核)
內核(kernel)在HAL與執行體之間,實際上是“微內核”的理念下設計實現出來的。負責多處理器同步,線程與中斷的調度與分派,自陷處理,異常分派,在啓動時初始化設備驅動程序等。
核心態驅動
Windows NT使用核心態的設備驅動程序與硬件交互。用户態下的程序看到的設備都是I/O管理器下的文件對象;而I/O管理器自身看到的設備是設備對象。核心態驅動程序分為3個層次:最高層驅動程序,中層驅動程序,低層驅動程序。最高層驅動程序,如FAT或NTFS的文件系統驅動程序,依賴於中層驅動程序。中層驅動程序由功能驅動(function driver)組成。功能驅動依賴於總線驅動,即服務於總線控制器、適配器(adapter)、橋(bridge)的驅動。Windows Driver Model(WDM)存在於中層。低層驅動直接控制硬件,不依賴於任何其他驅動程序。
硬件抽象是一套軟件子程序(routine),模擬了特定平台有關細節,使得程序不必直接訪問硬件資源。因而可以寫獨立於設備的、高性能代碼,通過操作系統訪問硬件。例如,編譯器屏蔽了CPU指令集的細節,應用程序作者無需考慮與CPU相關的指令。操作系統的硬件抽象使得程序只需調用操作系統級的操作,而屏蔽了硬件具體細節,使得程序具有了可移植性。
操作系統的硬件抽象層位於硬件與軟件之間。對操作系統內核隱藏了硬件的大部分差異,使得核心態代碼基本不需要改變即可運行於不同硬件配置的計算機上。硬件抽象大都是硬件驅動程序。被屏蔽的硬件信息包括I/O界面、中斷設置、多處理器通信機制等。

Windows NT 3.1得名由來

為了提高可移植性,避免製造一個以x86為中心的設計方案,起初這一操作系統的定位是Intel i860CPU,代號為N10(英文讀作“N-Ten”),NT操作系統家族便由此得名。但i860“嚴重落後於計劃”,於是NT小組在i860原型硬件(代號為Dazzle)交付之前使用了一個模擬器,對其它平台的支持將隨後提供。

Windows NT 3.1類似性

Windows NT 3.1的用户界面與Windows 3.1的非常相似,以至於人們有時候會把它與Windows 3.1相混淆,這也使那些以前在Windows 3.x上有使用經驗的人們用起該操作系統來非常容易。
參考資料