Windows NT
| NT內核 | |
|---|---|
| 中文名 | NT內核 |
| 英文名 | NT Kernel / Windows NT Kernel |
| 開發者 | 微軟(Microsoft) |
| 首次發布 | 1993年7月(Windows NT 3.1) |
| 操作系統 | Windows NT系列 |
| 內核類型 | 混合內核(Hybrid Kernel) |
| 核心文件 | ntoskrnl.exe |
NT內核(全稱:Windows NT內核,英語:Windows NT Kernel)是微軟公司Windows NT系列操作系統的核心組件,採用混合內核(Hybrid Kernel)架構設計。該內核最初於1989年啟動開發,旨在構建一個真正的32位、搶占式、可重入、支持虛擬內存且具備跨硬件平台能力的操作系統核心[1]。NT內核負責線程調度、中斷與異常分派、多處理器同步等底層機制,並與硬件抽象層(HAL)及執行體(Executive)共同構成Windows NT的核心態基礎[2]。
概述
架構定位
NT內核是Windows NT操作系統家族的基礎層,其設計目標包括可移植性、可靠性、向後兼容性與可擴展性[1]。內核代碼主要以C語言編寫,關鍵部分使用匯編語言實現,以便直接操作處理器寄存器與專用指令[3]。作為混合內核,NT內核兼具微內核與宏內核的特點:核心層僅提供最基本的調度與同步機制,而大量系統服務(如內存管理、I/O管理)運行於核心態的執行體中,從而兼顧了模塊化與性能[2]。
核心功能
NT內核的核心功能包括線程調度與分派、陷阱(Trap)處理、異常分派、中斷處理與分派,以及多處理器同步[1]。此外,內核還負責在系統啟動時初始化必要的設備驅動程序,以確保操作系統能夠正常加載[2]。內核提供兩類基礎對象:控制對象(Control Objects,如APC對象、DPC對象、中斷對象)與調度對象(Dispatcher Objects,如線程、互斥體、事件、信號量、定時器),供執行體構建更高層對象使用<[1]。
體系結構
用戶態與核心態
Windows NT體系結構分為用戶態(User Mode)與核心態(Kernel Mode)兩層。用戶態程序僅能訪問受限制的系統資源,而核心態組件擁有對系統內存與外部設備的完全訪問權限<[2]。用戶態包含環境子系統(Environment Subsystem,負責運行各類應用程序)與集成子系統(Integral Subsystem,執行系統相關函數);核心態則由內核、執行體、硬件抽象層及核心態驅動程序組成<[4]。
內核層
內核層位於硬件抽象層與執行體之間,是NT內核中最底層的組件,實現了傳統微內核理念下的核心機制<[4]。它提供多處理器同步、線程與中斷調度、自陷處理、異常分派等功能,並始終運行於核心態,其代碼不會被分頁換出內存,執行也不會被其他線程搶占<[1]。
執行體
執行體(Executive)位於內核之上,是NTOSKRNL.EXE的上層部分,提供內存管理、進程與線程管理、安全引用監視、I/O系統、緩存管理等基礎操作系統服務[1]。執行體通過對象管理器創建和管理Windows NT執行對象,並通過本地過程調用(LPC)機制實現同一計算機上客戶端進程與服務器進程之間的通信[1]。
硬件抽象層
硬件抽象層(Hardware Abstraction Layer,HAL)是隔離內核、設備驅動程序與執行體免受平台特定硬件差異影響的代碼層<[1]。HAL使得同一套操作系統代碼能夠在不同硬件架構(如x86、MIPS、DEC Alpha、PowerPC、x86-64及ARM)上運行,從而實現了Windows NT的可移植性目標[4]。
技術特性
搶占式多任務
NT內核採用完全搶占式多任務機制,能夠中斷正在運行的任務以調度其他任務,無需依賴用戶程序自願放棄CPU控制權[4]。這一特性保證了系統對高優先級線程的及時響應,提升了整體系統的穩定性與實時性。
多處理器支持
NT內核自設計之初即支持對稱多處理(SMP)架構,能夠高效調度線程運行於多個處理器之上[1]。隨着Windows版本演進,NT內核對處理器數量的支持不斷增加,從Windows 2000 Datacenter Server支持32路SMP,到後續版本支持更多核心與更複雜的NUMA架構[4]。
可移植性
NT內核通過硬件抽象層與內核接口的抽象設計,實現了跨硬件平台的可移植性。系統僅需為不同平台提供對應的HAL,即可將同一套核心代碼部署到多種處理器架構上[1]。此外,NT內核原生支持Unicode,便於適應全球不同語言市場[1]。
版本演進
NT內核隨Windows NT系列操作系統不斷演進。Windows NT 3.1至3.51採用NT 3.x內核架構;Windows NT 4.0將圖形設備接口(GDI)移入核心態以提升性能;Windows 2000(NT 5.0)引入即插即用管理器與電源管理器;Windows XP及後續版本持續擴展內核功能,支持64位運算與新一代硬件架構[4]。從Windows 10開始,系統內核版本由NT 6.4升級為NT 10.0,標誌着內核架構進入新的發展階段[4]。