據華爲官方消息,本月中,鴻蒙操做系統將正式發佈 2.0 版本,屆時還將把源碼公開託管至代碼平臺。近一年多的猶抱琵琶半遮面,此次彷佛是要「 Show us code」了,在一睹鴻蒙芳容以前,不妨讓咱們先來了解一下鴻蒙的核心要素之一 —— 微內核。 html
官方介紹,鴻蒙從設計之初就爲多終端(如邊緣計算 IoT、服務器等)而生,微內核就是鴻蒙操做系統的核心要素之一。安全
什麼是微內核
微內核設計的基本思想是簡化內核功能,在內核以外的用戶態儘量多地實現系統服務,同時加入相互之間的安全保護。內核只提供最基礎的服務,好比多進程調度、多進程通訊(IPC)等。其中進程通訊是做爲鏈接應用與用戶態系統服務的橋樑。 服務器
宏內核系統相關的服務基本都是放於內核態內核中,例如文件系統、設備驅動、虛擬內存管理、網絡協議棧等;而微內核則把更多的系統服務(例如文件系統、POSIX服務、網絡協議棧甚至外設驅動)放到用戶態應用,造成一個個服務,等待其餘應用的請求。然後來,爲了在宏內核與微內核之間揚長避短,也發展出了中間的混合內核的形態,部分服務也會放置於內核中。網絡
微內核的優缺點
技術沒有銀彈,微內核也有優缺點。框架
優勢分佈式
- 系統服務模塊化,可移植性高;
- 內核安全性提升(模塊內部的bug不影響內核穩定,將黑客利用軟件漏洞形成的破壞限制在單個模塊內部);
- 能夠多套系統服務共存,至關於同時運行多種操做系統;
- 穩定統一的接口(能夠獨立維護私有驅動以及服務,不須要跟內核源碼綁定);
- 在商業上,微內核能夠避免代碼受到一些開源協議的影響,好比GPL協議;
- 內核精簡,能夠進行形式化驗證,利用數學證實內核的安全性;
- 數學可證實的實時性;
- 很是適合多處理器系統設計,在多處理器核心計算機上,互相依賴的系統服務能夠同時運行
缺點模塊化
- 經過進程通訊的方式交換數據或者調用系統服務,而不是使用系統調用,形成額外的操做系統開銷;
- 使用一些頻繁使用的系統服務時,好比網絡收發數據,形成的進程上下文切換對操做系統來講也是一個負擔;
- 因爲系統服務高度模塊化,系統服務之間存在大量的內存複製;
- 對互相之間存在複雜調用關係的系統服務,難以設計通訊接口;
- 系統服務與內核在地址空間上分離,形成代碼局部性差,下降了cache命中率;
微內核項目:Minix 與 Fuchsia 的 zircon
在鴻蒙以前,已經存在一些使用微內核技術的項目。經常被人們拿來與鴻蒙對比的 Fuchsia 一樣採用微內核設計。Fuchsia 是 Google 開發的一款全新操做系統,設計目標是覆蓋手機、平板甚至筆記本等一系列終端。Google 爲該系統準備了豐富的配套生態,包括 Vulkan 圖形接口、3D 桌面渲染 Scenic、Flutter 應用開發框架,還有一個稱爲 zircon 的微內核。 優化
zircon 內核是從高通平臺的一個 Bootloader 項目:Little Kernel 發展而來。zircon 內核屬於微內核設計,只提供 IPC,進程管理,地址空間管理功能。zircon 區別於以進程或者以文件爲核心的設計,zircon 是之內存爲核心來設計的,內存在 zircon 中是以對象的方式存在,能夠經過channel 通訊機制傳遞虛擬內存對象(Virtual memory object)的句柄,進程拿到句柄後能夠把這塊內存映射到本身的空間。spa
此外,CPU 製造商 Intel 近年來也在推動微內核技術,在管理引擎中加入了 Minix 微內核系統。Minix 系統由荷蘭阿姆斯特丹 Vrije 大學的 Andrew S.Tanenbaum 教授開發,該系統最大的特色是能夠故障隔離,自動重啓失敗的服務。操作系統
Minix 使用分層設計,最底層的微內核提供中斷處理、進程管理、進程通訊等服務,這一層運行在內核態;中間層提供輪迴服務(Reincarnation Server)、文件服務、進程管理、X 圖形服務以及驅動等,這一層運行在用戶態;最上層爲用戶進程。其中輪迴服務負責在中間層的服務出現崩潰時重啓這些服務,從而保證服務的自我修復。正是因爲 Minix 具備自我修復的特性,才被 Intel 管理引擎(ME)所選用,該管理引擎主要負責管理 Intel 芯片的內部模塊。
鴻蒙微內核
根據官方資料顯示,鴻蒙微內核從底層即爲物聯網設計。微內核僅在操做系統的內核中保留最基本功能,下降了內核的開發難度;分佈式思惟,將非核心的程序和模塊隔離在內核以外,所以當單一程序出現錯誤時不會影響系統總體功能;同時,微內核相比宏內核更易於移植,開發、更新週期也得以縮短。
上述可知,微內核的最大特性是僅在內核中保留最核心功能,是鴻蒙實現跨端操做系統的不二之選。微內核鏈接實時性更好,同時結合 5G 低時延場景,尤爲適用於工業控制、智能交通等物聯網領域。而在這些場景下,微內核更容易實現故障隔離,最大程度保證系統的可用性與安全性。
鴻蒙微內核具備分佈式的特色。目前已有操做系統基本只對應於某一種硬件,如 Windows 對應 x86 PC、iOS 對應蘋果移動設備等。但 IoT 時代終端種類數量極大拓展,難以針對每種硬件分別開發操做系統或應用程序,不一樣硬件終端的生態沒法共享協同,開發效率低。基於微內核的鴻蒙一旦實現硬件解耦,就能夠針對不一樣設備進行彈性部署(例如手機、電腦、穿戴設備、車載設備、音箱、電視、智能家居等)。
微內核是 IoT 操做系統演進方向,也是鴻蒙系統的核心要素之一。據官方透露,鴻蒙微內核對進程間通訊進行了高度優化,使得鴻蒙相比 Fuchisia 效率提高 3 至 5 倍。此外,因爲微內核的代碼數量遠遠少於宏內核,所以鴻蒙可以以對每行代碼進行充分的「形式化」的安全驗證,顯著提高內核安全性。
固然,鴻蒙的微內核到底是否如其宣傳的那樣,一切還要等到此次的華爲開發者大會後才能揭曉答案。但願此次鴻蒙可以真正的「 Show us code」。
參考連接:
http://www.itpub.net/2019/07/19/2461/