華為在松山湖的華為開發者大會上正式宣布了鴻蒙操作系統,該系統其中一個亮點是 —— 微內核。華為聲稱,微內核的啟用,使其速度大大提升,并且在安全性上產生變革性突破,微內核打破了宏內核下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 不過是以正確的方式解決了錯誤的問題。
Linux 究竟是單內核的還是微內核的
Linux 是一個單內核結構,同時又吸收了微內核的優點:模塊化設計,支持動態裝載內核模塊。Linux 還避免了微內核設計上的缺陷,讓一切都運行在內核態,直接調用函數,無需消息傳遞。
早在 1992 年,Linus 曾經與 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”人物目錄。
下圖是宏內核(左)和微內核(右)兩種結構的簡單架構圖:
當然對最終用戶而言,我們并不在意采用何種方案。從現實情況來看,微內核似乎還有很長的路要走。
我們非常期待鴻蒙系統早日能給最終用戶提供服務。
編輯:hfy
-
Linux
+關注
關注
87文章
11342瀏覽量
210152 -
微內核
+關注
關注
0文章
58瀏覽量
13436
發布評論請先 登錄
相關推薦
評論