操作系統

Micro-Kernel, Embedded System;  Maro-Kernel, Monolithic Kernel

傳統意義的操作系統,內核應有多方面的功能:
管理屬於應用層的“進程”- 進程管理
爲進程提供各種服務 - 進程間通訊,設備驅動,文件系統

內核中提供這種服務的成分與使用這些服務的進程之間實際上就形成一種典型的“Client/Server”的關係。
這些服務提供者並不一定非得都留在內核中不可,它們本身也可以被設計並實現某些“服務進程”;
其中必須留在內核中的成分其實只有進程間通訊。
如果把這些服務提供者從內核轉移到進程的層次上,那麼內核本身的結構就可以大大減小和簡化;
而各個服務進程,可以單獨地設計,實現,調試,並按實際需要來配置和啓動。

微內核應運而生:
這些系統不帶磁盤,整個系統都必須放在EPROM中;
受到存儲空間的限制,服務簡單且單一;
幾乎所有的嵌入式和實時系統都採用微內核;
將服務的提供都放在進程的層次上,再通過進程間通信(通常是報文傳遞);
增加系統的運行開銷,降低了效率。

一體化內核:
通用式的系統需要的服務面廣而大,一體化內核更適合;
傳統Unix內核全封閉(如果需要往內核中增加一個設備及服務,先編寫設備驅動程序,並變動內核源程序的某些數據結構及設備表,再重新編譯整個內核,並重新引導整個系統)
優點是系統的安全性更能得到保證,缺點也很明顯-僵化;
Linux允許把設備驅動程序在編譯時靜態地連接在內核中;
也允許在運行狀態下當需要用到某一模塊時由系統自動安裝;
這些模塊仍然在內核中運行,不像微內核那樣作爲單獨的進程運行,所以效率得到了保證

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章