2019年8月9日華為 餘承東 發佈HarmonyOS 1.0,HarmonyOS的發佈將一個計算機領域內非常專業的詞帶到瞭廣大公眾的視線內,這就是微內核
。
事實上,微內核
並不是一個新概念。早在1969年,UNIX系統開始設計的時候,類似微內核架構的操作系統就已經出現。1969年,丹麥計算機科學傢Per Brinch Hansen
開發的RC 4000 Multiprogramming System
操作系統,是歷史上第一次將操作系統組件分離為各個相互交互的組件,將內核
簡化為僅用於通信和支持系統,並使用管道共享內存
作為其進程間通信的基礎。如今回看RC 4000 Multiprogramming System
雖然其本身並不是很成功,但激發瞭微內核概念。
繼續HarmonyOS的話題,看瞭HarmonyOS 1.0發佈會回放後,我有一個疑問:什麼是宏內核,什麼又是微內核,微內核相比於宏內核真的有如此大的優勢嗎?
華為HarmonyOS 1.0發佈會直播回放:http://www.bilibili.com/video/av62950256/
瞭解微內核
與宏內核
之前,首先瞭解一下操作系統
?
操作系統(Operating System)
是現代計算平臺的基礎與核心支撐系統,負責管理硬件資源
(包括輸入輸出設備的初始化、分配與回收)、控制程序運行
、改善人機交互
以及為上層應用軟件提供運行環境
等。操作系統作為計算機之“魂”,是釋放硬件能力、構建應用生態的基礎
。
從應用的角度看,操作系統的作用:一是服務於應用,二是管理應用
。
從硬件的角度看,操作系統主要包含兩類功能:
操作系統簡要結構
通常而言,狹義
的操作系統指的是操作系統內核加上一個Shell
(即UNIX/Linux等操作系統中的命令行頁面)。隨著硬件種類和應用需求越來越豐富,大量共性功能沉淀到操作系統中,操作系統的內涵和外延不斷擴大,因此,廣義
的操作系統又可以進一步分為操作系統內核與操作系統框架
。操作系統內核負責對硬件資源的管理與抽象,為操作系統框架提供基礎的系統服務(操作系統內核又分為宏內核、微內核等);操作系統框架則基於操作系統內核提供的服務為不同的應用提供API接口與運行環境。
現在操作系統大多采用宏內核架構
(如UNIX、Linux等),操作系統將一些基本的、公共的、與硬件緊密相關的 (如中斷處理、內存管理、文件系統、設備驅動等)、運行頻率較高的功能(如進程調度、時鐘管理等)以及關鍵性的數據結構獨立出來,使之常駐內存,並對其進行保護。內核中采用模塊化設計組織各個功能,所有模塊運行於內核空間,模塊間通信直接調用模塊間提供的接口函數實現。
ea570133f50f0c9762e3a93a56f485a7宏內核基本架構
宏內核
可以理解為是個很大的進程,其內部又能夠被分為若幹功能模塊(或者是若幹層)。宏內核在運行的時,為一個單獨的二進制大映象,模塊間的通訊是通過直接調用其他模塊中的函數實現的,而非消息傳遞。
宏內核中許多的功能模塊都在同一個內核空間上運行,伴隨著操作系統的發展,內核模塊的復雜度越來越高,操作系統在可靠性
與安全性
方面慢慢出現瞭一些問題,一個很小的bug都會使整個系統崩潰。為解決宏內核存在的問題,許多研發人員嘗試對宏內核架構進行解耦,將部分非核心功能(如文件系統、設備驅動等)從內核中拆分出來,作為一個獨立的服務運行於單獨的進程中,並為其提供進程間通信的能力(IPC Inter Process Communication),內核中隻保留最核心的功能(如內存管理、進程調度等),這種架構被稱為微內核架構。在微內核下服務與服務互相隔離,單個服務即使出現故障或受到安全攻擊,也不會導致整個操作系統的崩潰或被攻破,從而有效提供瞭操作系統的可靠性與安全性。
微內核基本架構
有興趣詳細研究微內核
實現與原理的同學,可以研究一下Minix
。Minix
第一個版本於1987年發佈,是荷蘭計算機科學傢Andrew S. Tanenbaum
為瞭教學而創作,如今為Andrew S. Tanenbaum
教授所著《操作系統:設計與實現》
的示例代碼。Minix
啟發瞭Linux內核
的創作。1990年,還在上大學的Linus Torvalds
從Minix
得到靈感,出於對操作系統的興趣,於1991年發佈瞭Linux。
Minix目前有三個主要的版本:
自宏內核與微內核這兩種架構出現伊始,人們就兩者的優劣與特點展開瞭深入的討論。當前隨著物聯網時代的到來,使微內核架構的操作系統架構再次受到廣泛關註。
當前智能終端呈現多樣化的發展趨勢,面對物聯網時代的到來,微內核天生具備的模塊化解耦、彈性部署的能力以及安全穩定的特性,非常符合物聯網的發展
,但進程間通信(IPC Inter Process Communication)的性能
無疑成為微內核的軟肋
。
微內核雖然存在IPC性能軟肋,但IPC性能並非不可提升。德國計算機科學傢Jochen Liedtke(L3微內核與L4微內核系列的創造者)曾表示,高性能IPC的設計與實現必然是與體系結構相關的,過度的抽象將極大影響IPC的性能,而利用體系結構相關的狀態進行優化則可將IPC性能提升到極致
。2019年華為HarmonyOS發佈會中,餘承東透露華為在微內核IPC優化方面的成果,采用微內核架構的HarmonyOS在IPC方面性能可以達到同樣采用微內核的Fuchsia操作系統的5倍
。相信未來廣大技術研發人員不斷對IPC性能進行優化,微內核IPC的性能會有大的提升。
維基百科 Regnecentralen:http://en.wikipedia.org/wiki/Regnecentralen
維基百科 RC_4000_multiprogramming_system:http://en.wikipedia.org/wiki/RC_4000_multiprogramming_system
維基百科 微內核:http://zh.wikipedia.org/wiki/%E5%BE%AE%E5%85%A7%E6%A0%B8
維基百科 Mach:http://zh.wikipedia.org/wiki/Mach
現代操作系統:原理與實現http://item.jd.com/12731379.html
操作系統的發展:http://www.feng.com/post/6209622
有關微內核:http://mp.weixin.qq.com/s/MLCR7qqGFWyyP0KcZqW3Kw
文章首發於公眾號”CODING技術小館“,如果文章對您有幫助,歡迎關註我的公眾號。
约翰·哈特费尔德(John Heartfield),本名Helmut Herzfeld,1891年生于德国柏林。8岁时被父母遗弃(同时遭遗弃的还有他的三 ...
鎳基高溫合金哈氏合金系列材料生產供應商廠傢-上海閩鋼實業Inconel 718 沉淀強化鎳基高溫合金管材 Inconel 718價格,Inconel ...