Android不是微內核,Android屬于宏內核!兩者有著本質區別!
操作系統分為:宏內核與微內核!
20世紀70年代初誕生的UNIX系統可以說是那一時期最好的操作系統,隨著計算機技術的快速發展。在UNIX系統功能變的越發強大的同時,內核代碼量也在快速的膨脹,帶來的弊端也隨之出現,系統的可靠性、代碼的可維護性和穩定性都存在著問題。
為了解決這些問題,業界開始反思UNIX系統設計。從重構UNIX代碼和架構開始,人們嘗試把UNIX內核提供的一些服務和功能放到內核外,把執行在特權級別的內核代碼縮到最小,內核只提供基本的服務,而用戶空間程序承擔盡可能多的原來駐留在內核空間的功能。
這就誕生了第一代微內核Mach。由于第一代微內核性能太差,很快就被業界所遺忘,但是人們并沒有停止對微內核的研究,隨后推出的第二代、第三代微內核都得到了很好的發展。當然,與此同時作為宏內核的代表Linux和Windows系統也在快速的發展。

作為操作系統發展的兩大分支——微內核和宏內核,他們有著截然不同的設計理念。宏內核將所有的系統功能(包括內存管理、文件系統、設備驅動等)都在內核里實現,而微內核則只在內核中保留了必須在內核態運行的功能,而把其他功能都移至用戶態以服務線程的方式來實現。

這種設計方法使得微內核本身的體積大大減小。同時,運行于微內核之上的用戶態的系統服務由于處于各自的地址空間之內,保證了服務之間的強隔離。這種設計思想,給予了基于微內核的操作系統高度的可重構性、穩定性和可靠性。

小結:操作系統按照設計思路,分為宏內核與微內核
宏內核與微內核,孰優孰劣?
關于微內核和宏內核孰優孰劣的討論,業界也一直沒有停息過。1992年Andrew Tanenbaum(Minix系統設計者)和Linus Torvalds(Linux內核創始人)之間進行了一場關于“Microkernel vs Monolithic kernel”的長篇郵件論戰,論戰也吸引了眾多操作系統方面的頂級黑客參加。
因為當時微內核還處在學術研究階段,且有著嚴重的性能缺陷,最終大家得到的一致結論則是微內核不如宏內核。14年后的2006年,兩人再次對這個話題進行了論戰,這時候Andrew Tanenbaum明顯有了底氣,因為在這十幾年中微內核解決了令人詬病的性能問題,并且在嵌入式系統領域(航空航天、汽車電子、無線通訊、醫療設備等)愈發得到市場的認可。所以我們不能簡單的評判微內核和宏內核哪一個更好,作為操作系統設計的兩種思路,兩者各有優缺點,隨著技術的進步,二者也在相互的借鑒。可以確切的說,只要操作系統還在發展,關于二者的討論就不會停止。

宏內核與微內核比對:

IPC性能耗時分析:

從目前的研究熱點來看,更多的人把目光投向了微內核,利用微內核在實時系統及嵌入式虛擬化領域的優勢,來解決現有的嵌入式操作系統的安全性問題。OK Labs提出的Microvisor概念,即具有虛擬化功能的微內核,就是一個很好的案例。L4微內核家族的眾多成員,如Fiasco.OC、NOVA、Codezero以及seL4都有虛擬化方面的應用。
小結:宏內核和微內核的應用場景不同,尺有所短,寸有所長
微內核的發展經歷
微內核的發展大致經歷了三個階段:
- 以Mach為代表的第一代微內核,作為微內核概念早期嘗試,在系統性能上表現很差;
- 以L4為代表的第二代微內核,采用了全新的設計理念,突破了微內核的性能制約,為微內核的實用化奠定了基礎;
- 以OKL4、FOC和seL4為代表的第三代微內核,引入了權能控制,大大提高了微內核系統的安全性,同時seL4還通過了完整的形式化驗證,這將微內核的安全性又提高到了一個新的等級。
OKL4微內核是澳大利亞新南威爾士州立大學操作系統研究小組和澳大利亞國家信息和通信技術部(NICTA)基于他們的第二代微內核Pistachio-embedded所開發的。目前OKL4有兩個版本:開源的OKL4 Microkernel和閉源的OKL4 Microvisor。OKL4 Microvisor是商業化的L4微內核,Microvisor是Microkernel + Hypervisor的縮寫,強調OKL4微內核本身的Hypervisor屬性,所以它既可以作為Hypervisor運行多個操作系統,也能作為Microkernel運行獨立程序。Microvisor擁有包括資源管理以及具有實時功能和低性能開銷的調度功能。

從目前的研究熱點來看,更多的人把目光投向了微內核,利用微內核在實時系統及嵌入式虛擬化領域的優勢,來解決現有的嵌入式操作系統的安全性問題。OK Labs提出的Microvisor概念,即具有虛擬化功能的微內核,就是一個很好的案例。L4微內核家族的眾多成員,如Fiasco.OC、NOVA、Codezero以及seL4都有虛擬化方面的應用。

小結:微內核的短板是性能,但是隨著硬件平臺性能的提升,瓶頸不在
智能終端給予微內核發展的新機
美國在微內核領域的研究也是處于世界領先的地位,從早期的Mach項目開始,到后來的DTMach(Distributed Trusted Mach)項目,再到DTOS(Distributed Trusted Operating System)項目,這些項目都是利用微內核打造一款安全操作系統,參與者包括美國國家安全局(NSA)和美國安全計算公司(SCC)。還有一家美國公司,綠山軟件(Green Hills SoftWare),作為全球最大的獨立嵌入式系統開發解決方案提供商在微內核領域也頗具實力,他們利用微內核研制的Integrity-178B Real-time Operatiing System已經達到CC標準(信息技術安全評估標準)的EAL6+安全等級(最高為7級),其主要應用于軍用航空電子設備中。
移動終端的使用是操作系統發展的里程碑式推動事件,全球超過百億的終端類設備,使得智能化操作系統有了極大的發展。主流的智能手機操作系統有Symbian OS、Android OS、Windows Phone、iOS、Blackberry等。按照源代碼、內核和等的劃分,智能手機操作系統可分為開放型平臺(基于Linux內核)和封閉型平臺(基于UNIX 和Windows 內核)兩大類。但是隨著產品的發展,現在市面上,主要以Android和IOS的市場占有率最大。

隨之智能設備的興起,智能終端的廣泛部署,移動終端市場是嵌入式領域最為活躍而且規模最大的市場之一,嵌入式領域對小型化、微結構的操作系統的迫切需要,推動了微內核技術的迅猛發展。微內核逐漸被智能終端廠商接受——蘋果IOS使用微內核架構!華為鴻蒙采用微內核架構!Google的下一代操作系統Fuchsia也采用微內核架構。

隨著5G商用的快速推進,物聯網發展進一步提速,智能穿戴、智能家居和車聯網等產品都離不開終端的參與,為了實現物聯網統一發展、統一平臺,實現全場景、全能型操作系統。Google、蘋果和華為,均在操作系統層面推出了各自的產品,可以說微內核是決戰未來、面向5G的“未來操作系統”。

小結:移動終端和5G將是微內核的主戰場
與Android系統的關系
Android是一種基于Linux的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電,由Google公司和開放手機聯盟領導及開發,該平臺由操作系統、中間件、用戶界面和應用軟件組成。

Android的操作系統代碼在1億行以上,僅內核部分代碼就多達2000萬行。微內核的基本特點是,內核態和用戶臺分離,基礎服務與系統基本操作分離,各個服務客體運行隔離的進程,使用消息機制進行通信。
Android本質是宏內核,雖然使用的是經過裁剪后的Linux,但是本質是未變的,但架構上參考了微內核的設計,所有的程序都運行在虛擬機中的,每個虛擬機之間是相互隔離的,僅此而已。
總結
微內核架構上是在系統上構建及簡的系統功能,僅提供進程之間的基礎通訊,其余復雜的功能散落在不同的服務里,所以在微內核架構里面融入安卓系統在技術層面是一個可以容易實現的事,所以華為的鴻蒙系統可以兼容Android。Android操作系統也在發展,Google面向下一代操作系統的Fuchsia是Android的替代品,可以看出未來操作系統的發展方向是微內核,面向未來多場景,全適配是操作系統廠商的夢想,這個夢想要依靠微內核來實現。