整塊性核心

電腦作業系統核心架構
(重定向自單核心

整塊性核心(英語:Monolithic kernel),也譯為集成式核心單體式核心,一種作業系統核心架構,此架構的特性是整個核心程式是一個單一二進位執行檔,在核心空間以監管者模式(Supervisor Mode)來執行。相對於其他類型的作業系統架構,如微核心架構或混核心架構等,這些核心會定義出一個高階的虛擬介面,由該介面來涵蓋描述整個電腦硬體,這些描述會集合成一組硬體描述用詞,有時還會附加一些系統调用,如此可以用一個或多個模組來實現各種作業系統服務,如行程管理、共時(Concurrency)控制、記憶體管理等。

單核心架構的概要示意圖。
分别为宏内核、微内核、混合內核的操作系统结构

概論

整塊性核心被視作為運行在單一位址空間的單一的行程,核心提供的所有服務,都以特權模式,在這個大型的核心位址空間中運作,這個位址空間被稱為核心空間(kernel space)。它通常是以單一靜態二進位檔案的方式被儲存在磁碟,或是快取記憶體上,在開機之後被載入記憶體中的核心空間,開始運作。

它的優點是設計簡單。在核心之中的通訊成本很小,核心可以直接調用核心空間內的函式,跟使用者空間的應用程式呼叫函式一樣,因此它的效能很好。在1980年代之前,所有的作業系統都採用這個方式實作;即使到了現在,主要的作業系統也多採用這個方式。

微核心的支持者認為,整塊性核心的移植性不佳,即使有的整塊性核心將其運作從整體性運作拆分成幾個服務模組,並讓各模組各自運作,其作業系統的程式碼依然是高度緊密的,很難修改成其他類型的作業系統架構。此外,所有的模組也都在同一塊定址空間內執行,倘若某個模組有錯誤、瑕疵(Bug),執行時就會損及整個作業系統運作。反過來,如果整塊性架構的作業系統在開發設計時相當完善,並經測試驗證後具有高度可靠性,則作業系統內的各軟體組件因具有高度緊密性,如此在系統的低階運作上將格外有效率。

可載入性的模組

現在多數採行整塊性架構設計的作業系統,如OpenVMSLinuxFreeBSD、以及Solaris等,都已經能在運作執行階段中,以動態方式來載入(Load)、卸載(Unload)可執行的模組,不過這些模組是屬於二進位程式碼的層次,或稱映像層次,而非核心架構的層次。即使整塊性核心進行模組化轉化,也不會與微核心或混核心架構的核心產生區分上的混淆,因為微核心、混核心的模組是屬於系統架構的層次。

就實務上,動態載入/卸載模組的作法,等於是用一種較簡易的方式來彈性管控執行中的作業系統核心,若沒有動態載入/卸載機制,作業系統的核心想要進行任何的調整、變換,都必須重新開機才能達成。因此模組化是必然且必要的,如此才能讓核心功效輕鬆地擴展、延伸,此外也能適時減輕硬體的執行運作負擔。

另外,有些整塊性作業系統為了讓它的核心空間達到最小化,也會運用動態載入/卸載機制來達成此一目標。

部分整塊性架構的作業系統舉例

相關條目

参考文献

  • 鍾斌賢; 曾煜棋,顏春煌. 作業系統. 國立空中大學. ISBN 957-661-461-9. 
  • 天野 司(Tsukasa Amano). How Windows Work-視窗系統是怎麼運作的. 博碩出版社. ISBN 957-527-867-4.