鴻蒙OS的微內核到底是什麼?

2021-01-08 手機鳳凰網

微內核一直是學界的寵兒,並不是業界的寵兒。

2019年8月9日,華為在其全球開發者大會上,正式發布了全新的自有系統 HarmonyOS 鴻蒙:基於微內核的面向全場景的分布式作業系統。餘承東在現場表示, HarmonyOS 鴻蒙擁有分布架構、內核安全、生態共享、天生流暢四大優勢。

知乎答主@bacon xu 對全球開發者大會提到的微內核做了一個解答,從另一方面認識一個不同的鴻蒙OS:

在經過好幾代發展之後,微內核終於發展到了seL4,它成為了人類歷史上第一個用形式化證明的作業系統。

簡單點說,用數學方法從邏輯的角度可以證明這個作業系統是 Bug Free沒有 Bug的。但Linux就不可以,因為它的內核太複雜,沒有辦法證明,超出了人類人力所及範圍。正所謂成也蕭何,敗也蕭何。微內核的簡單,成就了它的高安全。

但是它的核心只保留了基本的資源管理:處理器的時間、內存、通訊、中斷等。所有其他功能統統都扔給了應用層管理,從而以服務的形式去提供功能。服務之間採用IPC通訊(進程間通訊)。

對比一下seL4的架構圖和Linux的架構圖,不難發現,Linux這種宏內核什麼都有,seL4的東西好像都被排在用戶空間裡。也正因為這個原因,seL4的核心非常小,不到9000行C代碼。

▲L4系統的架構

▲Linux的宏內核架構

對於微內核,由於用MMU(內存管理單元)對進程空間(內存區域)做了隔離保護,沒有授權的進程是無法訪問其他進程的空間。這就阻止了惡意程序對其他進程數據的竊取。

進程是一個作業系統的抽象概念。簡單的說:每個進程運行一段用戶編寫的代碼,從這個代碼看過去,它好像擁有自己的CPU和所有的一切資源(內存、設備等)。當然我們都知道,這是作業系統給它造成的假象。當進程需要額外的資源時,得向作業系統申請。和別的進程通訊時,也得和作業系統申請。

這個邏輯看起來什麼繁瑣,但好處是不言而喻的:

沒權限,什麼都別想幹。

想幹壞事?把你的資源全部收回!這個場景可以腦補一下用Windows Ctrl+Alt+del或者用Linux下的 Kill -9殺掉沒有響應的程序。

微內核連驅動都可以是進程的。也就說,只有內核不可以重啟,其他的組件統統可以重啟。但實際上它是最後防線,實踐中並不會用到。因為系統不可能帶著有重啟Bug的驅動運行,雖然不會造成系統奔潰,但用戶可不願意買帳。但對於寫驅動的程式設計師這是一個好消息,至少不太容易把內核搞死,可以反覆調試找問題。

在微內核的管理下,因為MMU的封鎖過於嚴格,用戶進程要存儲一個東西,必須請求內核,內核把數據丟給文件系統的進程處理。早期的辦法,只得把數據從用戶進程搬到文件系統進程。這個過程非常耗時,而且不幸的是,還沒什麼好辦法突破MMU的保護。

這是導致微內核性能低下的主要原因:CPU不支持微內核特性——微內核承受著性能上的懲罰——微內核不在主流的作業系統框架中——CPU們不會響應來自微內核的需求——CPU 不支持微內核特性。形成了一個惡性循環。

反觀Linux內核,如果驅動不好,搞死內核的事情是常有的事。但因為文件系統都在內核裡,內核可以直接訪問用戶空間的數據。而Linux採用的是系統調用,非IPC的方法,速度較之IPC要快。當然,Linux下也有IPC,但不幸的是,IPC在Linux下,性能也不咋地。不過Linux並不依賴IPC通訊,微內核卻十分依賴。

因為IPC這個腳後跟的原因,微內核一直被Linux這種宏內核吊打。學界想了很多辦法,L4提出了一個Fast IPC的辦法,只要你IPC通訊沒數據,可以借用CPU核心寄存器的辦法傳遞消息,速度大大加快。也有人想到了dIPC, direct IPC。用標籤內存的辦法進行隔離,傳遞數據,無需通過內核空間。大大加快了通訊速度。但標籤內存不符合現在計算機體系的架構,實踐中,採用的可能性較小。

上交的陳海波教授團隊,19年想了兩個辦法進行IPC的加速。一個是XPC,一個是Skybridge。其中XPC是硬體,增加了一點點CPU硬體修改,使得IPC通訊無需內核的參與,也無需數據拷貝;Skybridge,採用的是雙內核,一個RootKernel,類似type-1的虛化,專門負責IPC數據通訊,上層的Kernel為微內核。這樣IPC繞過了MMU 機制,也不會對微內核之上的MMU保護機制產生破壞。在IPC通訊的時候,無內核參與,無需拷貝。

再來看看Android的架構。Android因為採用了非常多的服務,不同於普通的應用,非常依賴於IPC通訊。為了提高速度,開發出了 IPC Binder Drivers 來加速 Linux下的IPC通訊。但效果不是太理想。XPC對Binder IPC的加速只有50多倍。

▲17年的dIPC也是吊打Linux的 IPC

SkyBridge和dIPC處於同一性能級別,XPC則更高。從論文上看,SkyBridge更實用一些,未來XPC還需要繼續依賴於硬體的革新。

目前市場上依然是宏內核的天下,如Linux、Unix、Windows等,微內核商業上較為有名氣的可算是QNX。好在巨頭們都看到了微內核的進步,Google搞了Fuchsia OS (內核 Zircon),華為有了鴻蒙,蘋果MAC和IOS也號稱微內核,微軟搞混合內核。一時間好不熱鬧。

個人堅信微內核是未來的方向。微內核不到1萬行的C代碼,只要處理器支持MMU,就可以跑出微內核的全特性。服務也是可擴展的,依據不同的應用使用不同的服務就好,類似於USB熱拔插。如同現在電腦沒有光碟機、硬碟、印表機,就用USB擴展。這也決定著微內核可以在各種場景下見到它的身影。手機上面可以弄一個Android Binder,堆上相關的庫就可以運行Android;伺服器上面弄一個Type-2的虛化或者容器,就可以運行各種各樣的服務。嵌入式的體積不成問題,應用更不是問題。尤其是華為手握CPU的設計和作業系統的設計,想做一個帶硬體優化的高性能系統並非難事。此舉將會引領學界和產業界對微內核的一個小高潮。

華為這次的發力,真正的用一種作業系統內核統一了大多數應用場景。配上他們自家的開發工具,相信應該是很好用的。對於華為的開源,還有鴻蒙的未來發展、生態都只是時間問題。

而推動的微內核發展,則更是一個開啟新紀元的事。

本文作者:知乎答主@bacon xu丨作業系統行業從業者

相關焦點

  • 鴻蒙微內核,你知道什麼是微內核麼?
    導讀:8月9日,華為消費者業務今天在其全球開發者大會上正式向全球發布其全新地基於微內核的面向全場景的分布作業系統——鴻蒙OS。首次發布的鴻蒙系統將作為華為迎接全場景體驗時代到來的產物,發揮其輕量化、小巧、功能強大的優勢,率先應用在智能手錶、智慧屏、車載設備、智能音箱等智能終端上,著力構建一個跨終端的融合共享生態,重塑安全可靠的運行環境,為消費者大噪全場景智慧生活新體驗。值得注意的是鴻蒙系統採用的是不同於安卓系統單內核的微內核,那麼微內核到底是什麼?為什麼能獲得華為開發者的認可呢?
  • 鴻蒙發布新系統,微內核是什麼?
    華為的開發大會在8月9日已經開啟,除了發布自有作業系統鴻蒙,華為的安卓作業系統EMUI 10之外,還在微博發出了8月10日智慧屏的預告,這場HDC 2019實在是驚喜頻頻。在大會上,餘承東發表了宣講,闡述了鴻蒙OS的應用場景和技術特性,暢享了鴻蒙OS生態共享的能力,為我們預告了基於鴻蒙OS的萬物互聯的時代。據餘承東介紹,鴻蒙OS是基於微內核的面向全場景的分布式作業系統,隨著華為全場景智慧生活的來臨,鴻蒙OS將會應用在智能手錶、智慧屏、車載設備、智能音箱等智能設備上,而且,它還可以用在手機上,能比安卓更流暢,用起來更安心,也更加面向未來。
  • 華為鴻蒙刷屏,到底什麼是微內核作業系統呢?
    昨天華為在松山湖的華為開發者大會上正式宣布了鴻蒙作業系統,該系統其中一個亮點是 —— 微內核。華為聲稱,微內核的啟用,使其速度大大提升,並且在安全性上產生變革性突破,微內核打破了宏內核下root即可獲取用戶所有權限的做法,在安全性上大大提升。什麼是微內核呢?
  • 華為公布鴻蒙系統:基於微內核的全場景分布式OS
    [PConline資訊]消息:華為在今天下午舉行的2019華為開發者大會上,正式推出了Harmony(鴻蒙)OS。餘承東表示:鴻蒙是一款基於微內核的全場景分布式OS。華為發布鴻蒙系統:基於微內核的全場景分布式OS餘承東表示,鴻蒙OS是基於微內核的全場景分布式OS,這是分布式架構首次用於終端OS,可以實現跨終端無縫協同體驗。
  • 華為鴻蒙系統刷屏,到底什麼是微內核作業系統呢?
    昨天華為在松山湖的華為開發者大會上正式宣布了鴻蒙作業系統,該系統其中一個亮點是 —— 微內核。
  • 華為發布鴻蒙OS系統 採用微內核架構
    餘承東還宣布,未來作業系統是微內核架構,公司的「鴻蒙OS作業系統是全世界一個基於微內核的全場景OS」,採用是分布式架構,連結不同終端,不同設備,運行速度更快。今年6月,華為曾表示,「最快今年秋天,最晚明年春天,華為自研作業系統即將面世」。內核在作業系統中是一個基本的單元,負責管理系統資源。
  • 華為鴻蒙os支持哪些機型?華為支持升級鴻蒙os的機型
    大家都知道,華為鴻蒙os手機版是一款華為全新推出的作業系統,那麼華為鴻蒙os手機版支持哪些機型適配呢?
  • 華為鴻蒙作業系統正式發布!基於微內核的全場景分布式 OS
    IT之家8月9日消息 在今天下午舉行的2019華為開發者大會上,華為餘承東宣布推出Harmony OS鴻蒙。這是一款基於微內核的全場景分布式OS。根據餘承東的說法,安卓有超過1億行代碼,內核就超過2000萬行,但一般用戶用到的代碼不到8%,整體比較冗餘,在IoT時代這既沒必要也不需要。由此他提出了「微內核」的概念,也是鴻蒙OS的特點之一。
  • 鴻蒙OS比安卓和Mac OS還要流暢,任正非曝出鴻蒙一個重大「缺陷」
    餘承東公布了鴻蒙OS主要的三大技術特徵,第一是採用分布式設計,這種設計能讓鴻蒙系統用於絕大部分的智能終端設備,比如電腦,電腦,手錶,手環,平板,手機,音響等等,目前已經用於華為和榮耀的智慧屏上。所以說有了鴻蒙,不僅不擔心谷歌斷供安卓,也不擔心微軟斷供windows。
  • 華為鴻蒙作業系統正式發布!基於微內核的全場景分布式OS
    【每日科技網】  8月9日消息 在今天下午舉行的2019華為開發者大會上,華為餘承東宣布推出Harmony OS鴻蒙。這是一款基於微內核的全場景分布式OS。  華為開發者大會於8月9日-8月11日舉行,華為消費者業務CEO、華為技術有限公司常務董事餘承東以《全場景時代新體驗與新生態》為題發表演講,正式發布自有作業系統:鴻蒙。  鴻蒙OS能夠帶來終端之間實現能力互相共享,帶來的協同體驗。鴻蒙OS基於分布架構,天生流暢,內核安全,生態共享。
  • 華為鴻蒙OS發布,全球第一個基於微內核的全場景分布式作業系統
    8月9日下午,全球首個微內核全場景分布式OS鴻蒙系統(英文名:HarmonyOS)正式推出!據介紹,鴻蒙是基於微內核的全場景分布式OS,可支撐各種不同的設備,包括大屏、手機、PC、音響等,對應不同的設備可彈性部署。鴻蒙系統的登場對華為、消費者甚至中國科技圈,都有著堪稱「重大」的意義。
  • 華為鴻蒙OS是微內核作業系統,它有什麼優勢和特點?
    不管是宏內核還是微內核,都是Operation system作業系統的一種形式,目的主要是構築硬體設備的底層邏輯框架,指揮硬體設備工作,同時滿足外部軟體的調用需要。所有作業系統的宏觀功能是相同的,但是實現這些宏觀功能的方法不同,這就有了宏內核和微內核的區別。》微內核的邏輯特點是,子程序之間的通信是在內核中的一個公共數據交換區完成的。
  • 鴻蒙2.0生版上線!全球首個全景「微內核」分布式OS
    華為正式發布鴻蒙的2.0版據報導,華為計劃在今年9月11日正式發布自己的作業系統:鴻蒙2.0版。聽到這個消息,谷歌、微軟、高通、英特爾和川普估計都傻了。日前,華為也表示,鴻蒙已經為物聯網做好了準備。它可能首先在華為電視機上使用。
  • 2020.9.11華為發布鴻蒙2.0,來看看鴻蒙牛逼的地方
    2.0最根本改變是將1.0的基於linux內核去除掉,使用自己研發的鴻蒙微內核。那麼,鴻蒙就可以自豪地稱之為國產os。鴻蒙1.0什麼是微內核呢?微內核就是把不同的系統放到不同的進程裡面去(onx)(類似微服務)。微內核的優點是:需要高性能ipc,耦合性低,更靈活。據我了解,微內核目前就是SAOS,TINY CORE, MINIX 3個系統。微內核一般不適合正常的計算機使用,不過搭載在路由器,驅動,交換機等場景。鴻蒙會不會上手機?
  • 鴻蒙os2.0系統和安卓系統有什麼不同?鴻蒙os2.0系統是安卓嗎?
    鴻蒙os2.0系統將會在12月16日正式發布,那麼鴻蒙os2.0系統和安卓系統有什麼不同?不同之處在哪裡?小編為大家帶來最新的手機資訊,快來看看吧。鴻蒙os2.0系統和安卓系統有什麼不同?根據最新的消息表明1、鴻蒙os2.0系統的界面和現在的EMUI11很像,在手機的功能方面沒有什麼差別2、主要的區別在於手機的內核不同3、鴻蒙os2.0系統之處兩種,包括安卓應用和鴻蒙應用兩種模式
  • 鴻蒙作業系統用的微內核到底是什麼?
    但是隨著 UNIX 內核功能的拓展(文件系統、TCP/IP網絡協議棧、進程管理、內存管理、驅動程序等),UNIX 內核代碼也相應增加了很多,進而在可維護性、穩定性、安全性方面面臨一些挑戰。為了試圖解決這些挑戰,人們開始嘗試使用微內核的思想來設計系統內核。 什麼是微內核?
  • 餘承東:華為已進入微內核時代,鴻蒙微內核已經投入商用
    但是,今天進入微內核時代,如何保證進程間通訊性能,我們很重要的是,為什麼採用微內核,就是內核級安全。鴻蒙微內核已經投入商用,在Andro手機、平板已經投入商用,包括2.0之後,很多華為終端都採用了鴻蒙的微內核,用在可信可執行環境中,用來做人臉支付,高安全級別使用,首次通過了形式化驗證。
  • 華為「鴻蒙」出世:全球首個微內核全場景分布式OS,可取代安卓
    例如,今天以 Linux 為核心的宏內核系統,正逐漸轉變為谷歌 Fuchsia 這樣的微內核系統。然而,即使 Fuchsia 也不是分布式的,在性能上仍不能達到最極致的高效。餘承東在大會上表示:「我們要提供全場景的未來 OS,我們希望系統和硬體解耦,能夠彈性部署,我們希望應用能夠一次開發多次部署。」因此,採用微內核的鴻蒙 OS 橫空出世。
  • 刷屏朋友圈的鴻蒙OS究竟是什麼?
    鴻蒙,來了!8月9日下午,在廣東東莞舉行的華為2019年開發者大會上,華為正式發布全新分布式作業系統:鴻蒙!一時間朋友圈被「鴻蒙」刷屏如果下面這些問題你還不知道答案那就真的OUT了!什麼是「鴻蒙」?鴻蒙OS是華為公司開發的一款全新的、基於微內核的、面向全場景的、分布式作業系統。「鴻蒙」是怎麼誕生的?2012年,華為開始規劃自主研發一款系統,將其命名為「鴻蒙」。國家知識產權局商標局網站顯示,華為已申請「華為鴻蒙」商標,專用權限期從2019年5月14日到2029年5月13日。鴻蒙OS具有哪些技術特性?
  • 業內人士評價華為做鴻蒙OS
    近日,華為在開發者大會上發布了首款自研的作業系統鴻蒙OS,鴻蒙OS是基於微內核的全場景分布式OS,這是分布式架構首次用於終端OS,可以實現跨終端無縫協同體驗。鴻蒙OS也可隨時用於手機,從安卓系統遷移到鴻蒙OS非常便捷,只需要1到2天的時間。      鴻蒙OS一經發布,就在業內引發廣泛關注,不少業內人士都發表了自己的看法。