華為的鴻蒙到底能不能大革命?

昨天華為在松山湖的華為開發者大會上正式宣佈了鴻蒙操作系統,該系統其中一個亮點是——微內核。華為聲稱,微內核的啟用,使其速度大大提升,並且在安全性上產生變革性突破,微內核打破了宏內核下root即可獲取用戶所有權限的做法,在安全性上大大提升。

華為的鴻蒙到底能不能大革命?

什麼是微內核呢?

微內核結構由一個非常簡單的硬件抽象層和一組比較關鍵的原語或系統調用組成;這些原語,僅僅包括了建立一個系統必需的幾個部分;如線程管理,地址空間和進程間通信等。

微核的目標是將系統服務的實現和系統的基本操作規則分離開來。例如,進程的輸入/輸出鎖定服務可以由運行在微核之外的一個服務組件來提供。這些非常模塊化的用戶態服務器用於完成操作系統中比較高級的操作,這樣的設計使內核中最內核的部分的設計更簡單。一個服務組件的失效並不會導致整個系統的崩潰,內核需要做的,僅僅是重新啟動這個組件,而不必影響其它的部分

微內核將許多OS服務放入分離的進程,如文件系統,設備驅動程序,而進程通過消息傳遞調用OS服務.微內核結構必然是多線程的,第一代微內核,在內核提供了較多的服務,因此被稱為'胖微內核',它的典型代表是MACH,它既是GNU HURD也是APPLE SERVER OS的內核,可以說,蒸蒸日上.第二代微內核只提供最基本的OS服務,典型的OS是QNX,QNX在理論界很有名,被認為是一種先進的OS.

採用微內核設計的操作系統

微內核並非一個新的概念,它已經存在很長的歷史,下列的操作系統都是基於微內核結構設計的:

AⅨ

BeOS

L4微內核系列

Mach,用於GNU Hurd和Mac OS X

Minix

MorphOS

QNX

RadiOS

VSTa

RT-Thread

知乎上有人對微內核下了一個結論:

Micro-kernel已經失敗。在商業級操作系統中(包括可以用於mission critical的open source操作系統),除了L4還在苦苦留有少量份額,沒有任何micro-kernel的市場。

第一代micro-kernel是以一個錯誤的方式解決了一個錯誤的問題。而第二代micro-kernel不過是以正確的方式解決了錯誤的問題。

(原文可看 https://www.zhihu.com/question/19716757)

Linux究竟是單內核的還是微內核的

Linux是一個單內核結構,同時又吸收了微內核的優點:模塊化設計,支持動態裝載內核模塊。Linux還避免了微內核設計上的缺陷,讓一切都運行在內核態,直接調用函數,無需消息傳遞。

早在1992年,Linux曾經與 Tanenbaum進行一場關於操作系統內核選擇的著名爭論。Tanenbaum 認為,以微內核架構設計的操作系統,在理論上,比宏內核架構更加優越,主張Linux應該以微內核架構來進行重新設計。但是Linus以開發實務上的觀點展開反擊,陳述Linux選擇宏內核架構進行開發的理由,並比較Minix與Linux的性能差異。你可以通過維基百科瞭解此次爭論的完整細節。

Tanenbaum——著名的技術作家、教育家和研究者,IEEE高級會員、ACM高級會員、荷蘭皇家藝術和科學院院士、1994年ACM Karl V. Karlstrom傑出教育獎、1997年ACM計算機科學教育傑出貢獻獎、2002年Texty卓越教材獎、第10屆ACM操作系統原理研討會傑出論文獎、被列入“Who's Who in the World”人物目錄。

下圖是宏內核(左)和微內核(右)兩種結構的簡單架構圖:

華為的鴻蒙到底能不能大革命?

華為的鴻蒙到底能不能大革命?

當然對最終用戶而言,我們並不在意採用何種方案。從現實情況來看,微內核似乎還有很長的路要走。

我們非常期待鴻蒙系統早日能給最終用戶提供服務。


分享到:


相關文章: