能否用簡單通俗的話說一說什麼是微內核?

如題所示,什麼是微內核,他和Linux為代表的內核有什麼差異,各自的優劣在什麼地方。

能否簡單說一說內核在整個系統里扮演了一個怎樣的角色,通常它是怎樣配合其他部分進行工作的。

現在的幾個主要移動設備操作系統,android(Linux內核)、WP7(Windows CE)、iOS(Unix?)。請問他們的內核在工作原理和機制上存在怎樣的不同?能否用簡單通俗的話說一說。


簡單的說,微內核就是一個皇帝,所有權利集中在他手上,但是,辦具體的事情要找別人。

宏內核或者其他混合形式的,就是想國務院之類的,組織機構很龐大,有好多人在管事。

這個圖非常清晰明了,來自維基百科,http://en.wikipedia.org/wiki/Microkernel


微內核是這樣一種內核:它只完成內核不得不完成的功能:包括時鐘中斷、進程創建與銷毀、進程調度,進程間通信,而其他的諸如文件系統、內存管理、設備驅動等的內容都被作為系統進程放到了用戶態空間。

說白了微內核是相對於宏內核而言的,像Linux就是典型的宏內核,它除了時鐘中斷、進程創建與銷毀、進程調度、進程間通信外,其他的文件系統、內存管理、輸入輸出、設備驅動管理都需要內核完成;像windows,雖然ms標榜說其是微內核的,但是據說它連GUI都放到了內核空間。

其實內核就是一個運行在ring0(最高)級別的程序片段,它能完成ring3(用戶態)不能完成的一些功能。

微內核通過進程間通信來協調各個系統進程間的合作,這就需要系統調用,而系統調用需要切換堆棧以及保護進程現場,比較耗費時間;而宏內核都是通過簡單的函數調用來完成各個部門之間的合作的,所以理論上宏內核效率要比微內核高,不過沉澱到現在來說,微內核和宏內核的爭論已經停止了,而且微內核也勝利了,並沒有真正的實驗數據說明微內核比宏內核慢。

移動設備操作系統我不太懂,但是iOS應該不是Unix內核吧?應該只是類Unix系統,Linux本身也是類Unix系統。


簡單一句話,現在沒有嚴格的微內核系統大範圍使用在實際的商業應用上,so。。。


操作系統是大腦

微內核就是腦幹

貌似不夠通俗哦?

百度百科上有一則比喻不錯:

http://baike.baidu.com/view/928365.htm

可以用商業對比來解釋微內核的模塊概念。考慮一個過度忙碌的商務經理。通過將工作分給其他人,這位經理可以將他的能力更有效地用於重要的商務工作中去,並集中於其他一些任務,例如開闢新的商務分支等。可以僱傭一些新人來支持增長的商務活動。經理協調這些工作,但由其他的人做好僱傭他們時說好要做的事。與此類似,微內核操作系統支持執行少量核心任務,並管理可安裝模塊的活動。用這種方式,微內核對於它能做的工作是非常有效的,並是可移植的,這是指它可以被設計成在不同的處理器上運行。


Windows的Kernel(與Hal,Executive相對)就是微內核。32位Windows的高2G虛擬內存是內核。當然內核與微內核的概念很混亂,有許多種不同看法


推薦閱讀:

手機廠商做安全,手機安全軟體要另謀他路了?
谷歌野心膨脹,想做下一個iPhone,可惜最多只能成為Surface
蘋果iPhone7(Plus)正式發布,廣角+長焦雙鏡頭設計引人矚目
在殘酷的市場競爭中,VIVO作為一個國產品牌,不僅能生存下來 ,還生存得很好,這是為什麼?
iPhone 10 周年維修調查報告

TAG:iOS | 互聯網 | 手機 | 智能手機 | 操作系統 | WindowsPhone7 | Linux | Unix | Android | 微內核 | 操作系統內核 |