微軟 (Microsoft) 的 Windows 10 支援 x86、x64、ARM 和 ARM64 的架構,而且能在桌機、手機、Server 都可以執行,它的架構是如何設計,讓所有作業系統的模組能夠最大化的重複利用呢?
Windows Kernel 團隊在官方部落格有將作法公開,有興趣可以參考看看~
好文:Windows Kernel 的結構設計說明
微軟 Windows Kernel 的文章是原文版,在 Solidot 的此篇文章有簡單整理重點:
-
Windows Kernel 的結構,下述整理自此篇:
- Windows 重構的 Kernel 是用 API sets 的機制,將 DLL 與實際的環境分隔開來
- Windows NT 像是一個 MicroKernel(微內核),裡面的 Core Kenrel (KE) 幾乎什麼事情都不做,只有使用 Executive layer (Ex) 來執行管理所有高階的決策(Policy)
- EX 仍然是 Kernel Mode,所以並不算是真正的 MicroKernel
- Windows Kernel 負責系統的部份
- thread dispatching
- multiprocessor synchronization
- hardware exception handling
- the implementation of low-level machine dependent functions
- EX 層控制各種不同的子系統 包含
- Memory Manager (記憶體管理):此程式的程式碼最多,超過 50萬行
- Registry (註冊表)
- Power (電源)
- Executive (執行 Ex)
- Security (安全)
- Kernel (內核)
- Process Subsystem (程序的子系統)
- IO
- Object Manager
- 建議可以讀此書:Windows Internals Book
- Windows 的調度器主要是根據優先級別來決定執行哪些 Threading
- Windows 7 引入 Completely Fair Scheduler (動態公平分享調度器)
- Windows 10 引入 CPU Sets