[OS] 微內核和宏內核的區別

內核按照體系結構分爲兩類 : 微內核(microkernel)與宏內核(macrokernel).html

微內核 是將各類服務功能放到內核以外,自身僅僅是一個消息中轉戰,用於各類功能間的通信.
宏內核 是將全部服務功能集成於一身,使用時直接調用.
ps:服務功能有進程管理,內存管理等.函數

微內核的系統有WindowNT,Minix,Mach,etc.
宏內核的系統有Unix,Linux,etc.設計

下面拿Minix(微內核)和Linux(宏內核)舉例:htm

Minix與Linux建立新進程的過程比較能夠看出兩者之間的區別,Minix是創建在分模塊之上的,模塊之間以信息傳遞聯繫。Linux內部也是分模塊的,但在運行的時候,他是一個獨立的二進制大映像,其模塊間的通信是經過直接調用其餘模塊中的函數實現的。宏內核與微內核的區別也就在這吧,微內核是一個信息中轉站,自身完成不多功能,主要是傳遞一個模塊對另外一個模塊的功能請求,而宏內核則是一個大主管,把內存管理,文件管理等等一股腦所有接管。
從理論上來看,微內核的思想更好些,微內核把系統分爲各個小的功能塊,下降了設計難度,系統的維護與修改也容易,但通訊帶來的效率損失是個問題。宏內核的功能塊之間的耦合度過高形成修改與維護的代價過高,不過在目前的Linux裏面還不算大問題,由於Linux目前還不算太複雜,宏內核由於是直接調用,因此效率是比較高的。進程

參考:
http://zhidao.baidu.com/question/73715555.html
http://www.360doc.com/content/11/1208/19/7891085_170725668.shtml內存

相關文章
相關標籤/搜索