什麼是內核(kernel)?概念、運作方式
內核是作業系統內的核心服務。
術語“內核”最常用於 UNIX 環境中,與術語 shell 形成對比,後者描述了向用戶公開的操作系統的外部部分,並提供用於輸入命令和接收輸出的用戶界面。(在 Microsoft Windows 作業系統中,殼層是桌面。
內核一般透過系統呼叫與作業系統的其他元件進行接口,系統呼叫為核心功能提供了標準介面。在許多作業系統中,內核主要負責調度進程和執行緒以及處理來自裝置的中斷。內核通常還管理輸入/輸出 (I/O) 操作和內存管理。
內核的工作原理
在 Windows 作業系統中,內核 (稱為 ntoskernl.exe,通常稱為微核心) 位於 \Winnt\System32 目錄中,並在不可分頁的記憶體中執行 (這表示它一律位於記憶體中) 。核心負責執行緒調度並將執行程分派到對稱多處理 (SMP) 平台上的處理器。核心程式碼本身不是搶佔式的,也就是說,沒有其他執行程或進程可以搶佔核心的操作。每個執行緒都會指派從 0 到 31 的優先順序層級,如下所示:
層次 0 到 15 表示動態優先順序,並指派給應用程式和使用者執行緒。
層次 16 到 31 表示即時優先順序,且僅指派給關鍵作業系統執行緒。
內核會調整執行緒的優先順序層級,以確保沒有執行緒會耗盡,且每個執行程都會受到適當的注意,且具有較高優先順序層級的執行緒會獲得更大的處理器資源份額。
內核透過管理兩類物件來完成其工作:
控制物件,可控制核心的作業,並包括處理程序、中斷、非同步程序呼叫及設定檔
調度物件,用於管理執行緒分派和同步處理,並包括事件、執行緒、計時器、號誌、變異體和互斥鎖
Windows NT 核心會與硬體抽象層 (HAL) 通訊,以與硬體互動,並與 Windows NT 執行人員及其元件通訊,以取得更高層級的作業系統功能。當啟動過程中屏幕變為藍色時,內核就會加載。
NOTE
在Windows 95和Windows 98中,內核檔案是kernel32.dll的,它位於\Windows\System目錄下。如果核心損壞或遺失,您可以從分發 CD 中展開該檔案並替換硬碟上損壞或遺失的檔案(只要您可以以不涉及此檔案的方式存取該磁碟機,例如透過 MS-DOS)。