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


概論
整塊性內核被視作為運行在單一地址空間的單一的行程,內核提供的所有服務,都以特權模式,在這個大型的內核地址空間中運作,這個地址空間被稱為內核空間(kernel space)。它通常是以單一靜態二進位檔案的方式被儲存在磁碟,或是緩衝記憶體上,在開機之後被載入記憶體中的內核空間,開始運作。
它的優點是設計簡單。在內核之中的通訊成本很小,內核可以直接調用內核空間內的函數,跟使用者空間的應用程式呼叫函數一樣,因此它的效能很好。在1980年代之前,所有的作業系統都採用這個方式實作;即使到了現在,主要的作業系統也多採用這個方式。
微內核的支持者認為,整塊性內核的移植性不佳,即使有的整塊性內核將其運作從整體性運作拆分成幾個服務模組,並讓各模組各自運作,其作業系統的程式碼依然是高度緊密的,很難修改成其他類型的作業系統架構。此外,所有的模組也都在同一塊定址空間內執行,倘若某個模組有錯誤、瑕疵(Bug),執行時就會損及整個作業系統運作。反過來,如果整塊性架構的作業系統在開發設計時相當完善,並經測試驗證後具有高度可靠性,則作業系統內的各軟件組件因具有高度緊密性,如此在系統的低階運作上將格外有效率。
可載入性的模組
現在多數採行整塊性架構設計的作業系統,如OpenVMS、Linux、FreeBSD、以及Solaris等,都已經能在運作執行階段中,以動態方式來載入(Load)、解除安裝(Unload)可執行的模組,不過這些模組是屬於二進位程式碼的層次,或稱映像層次,而非內核架構的層次。即使整塊性內核進行模組化轉化,也不會與微內核或混合內核架構的內核產生區分上的混淆,因為微內核、混合內核的模組是屬於系統架構的層次。
就實務上,動態載入/解除安裝模組的作法,等於是用一種較簡易的方式來彈性管控執行中的作業系統內核,若沒有動態載入/解除安裝機制,作業系統的內核想要進行任何的調整、變換,都必須重新開機才能達成。因此模組化是必然且必要的,如此才能讓內核功效輕鬆地擴展、延伸,此外也能適時減輕硬件的執行運作負擔。
另外,有些整塊性作業系統為了讓它的內核空間達到最小化,也會運用動態載入/解除安裝機制來達成此一目標。
部分整塊性架構的作業系統舉例
相關條目
參考文獻
- 鍾斌賢; 曾煜棋,顏春煌. 作業系統. 國立空中大學. ISBN 957-661-461-9.
- 天野 司(Tsukasa Amano). How Windows Work-視窗系統是怎麼運作的. 博碩出版社. ISBN 957-527-867-4.
Wikiwand - on
Seamless Wikipedia browsing. On steroids.