電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 724|回復(fù): 1
收起左側(cè)

鴻蒙OS與Fuchsia OS的異同

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-9-23 11:57:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
鴻蒙OS與Fuchsia OS的異同, 最近行業(yè)內(nèi)最熱門的,可能就是這個華為鴻蒙OS的第一次正式亮相了。

作為知乎上Fuchsia OS的答主,自然也收到了大量的關(guān)于比較兩個操作系統(tǒng),或是評價鴻蒙OS的邀請。

在此之前,我一直沒有回應(yīng)這類邀請。主要原因還是在于現(xiàn)階段華為公布出來的信息量實在太少,雖然官方聲稱將會全面開源,但終究還沒有開源,甚至連大家能買到的設(shè)備或是下載的系統(tǒng)鏡像都還沒有。(就算這樣,GitHub上還是出現(xiàn)了好幾個非官方的騙Star repo,也是心累)

不過好在發(fā)布會上,華為的PPT里面放了一張當(dāng)前的1.0版本和接下來的2.0版本的架構(gòu)圖,雖然非常粗略,但是還是可以管中窺豹,聊上一聊。當(dāng)然,最主要的原因是,我做好了被打臉的準(zhǔn)備 ^.^




由于本人并不在發(fā)布會現(xiàn)場,且暫時還沒有取得對應(yīng)的照片的版權(quán),所以麻煩讀者參照《32張圖看懂華為鴻蒙系統(tǒng)》一文的照片來理解本文的內(nèi)容。




應(yīng)用場景



在這個專欄的第一篇文章:

為什么Google需要Fuchsia操作系統(tǒng)



中,我就道明了Google做Fuchsia操作系統(tǒng)的野心是非常大的。Google通過完全模塊化的設(shè)計,希望讓Fuchsia成為第一個AI原生(內(nèi)建深度學(xué)習(xí)、語音語義、人臉識別、圖像分類等人工智能算法),云原生(與各種云服務(wù)無縫集成),適用于手機(jī)、平板、筆記本電腦,以及路由器、智能音箱、機(jī)器人,甚至是Google的無人駕駛汽車的超級操作系統(tǒng)。

這段話里,其實從三個維度講解了Google的野心:



  • 功能特性上:具備AI原生能力,內(nèi)建了邊緣和云端無縫化的人工智能能力;
  • 生態(tài)上:具備云原生能力,與Google以及第三方提供的各種云服務(wù)無縫集成;
  • 應(yīng)用場景上:適用于個人移動設(shè)備、IoT設(shè)備甚至是無人駕駛汽車等不同運算能力和需求的場景。
      
而實現(xiàn)上述野心的手段是,將整個操作系統(tǒng)完全模塊化,變得可伸縮,可定制。

我們再回看華為在發(fā)布會上的PPT:


靈活適配全場景豐富終端形態(tài)

這是文章中的第四張PPT,從配圖中,我們可以看到它的適配范圍包括了



  • GB級內(nèi)存的:桌面PC、筆記本電腦、手機(jī)
  • MB級內(nèi)存的:智能手表、車機(jī)
  • KB級內(nèi)存的:只能攝像頭、智能燈泡、智能門鎖
      
這個覆蓋的跨度與Fuchsia OS是非常相似的。在Fuchsia的內(nèi)核Zircon(之前被稱為Magenta)剛剛出來的時候,福布斯的報道就包括了這些內(nèi)容[1]。




分布式軟總線

華為在發(fā)布會上,花了非常大的篇幅介紹這個功能。從PPT中的內(nèi)容,大體推斷它包括了2個部分:



  • 底層的“極簡協(xié)議”。華為本身就是搞通訊出身的,搞個新的協(xié)議自然不在話下。而這個協(xié)議是直接構(gòu)建在網(wǎng)絡(luò)層之上的3層協(xié)議。雖然ppt上這個協(xié)議直接代替了原本協(xié)議棧中的4層。然而,實際上,大量現(xiàn)代的應(yīng)用層協(xié)議(如HTTP協(xié)議)都是直接基于4層的TCP協(xié)議的,并不存在表示層和會話層協(xié)議。這個所謂的極簡協(xié)議其實也就是替代了TCP/IP或者UDP/IP這2層協(xié)議而已。設(shè)計上應(yīng)當(dāng)是盡量壓縮了協(xié)議包頭的尺寸,并設(shè)計成了無狀態(tài)非連接的形式。其根本目的在于降低通信的延遲,提高帶寬的利用率。面向的場景應(yīng)該是包長非常小,但對實時性要求高的場合。
  • 上層的應(yīng)用框架。顧名思義,就是提供了一套SDK給到開發(fā)者,方便使用上述的極簡協(xié)議實現(xiàn)局域網(wǎng)內(nèi)的自發(fā)現(xiàn)、消息的單播、多播、廣播。
      
上文中,我特地強調(diào)了“局域網(wǎng)”是有原因的。因為現(xiàn)在大家使用的路由器的路由功能是基于3層的(IP層)。所以如果華為做的這個協(xié)議是一個非IP兼容的協(xié)議的話,那么它就無法被你的路由器正確路由,自然也就無法擴(kuò)展到廣域網(wǎng)了。

所以,我猜測華為設(shè)計這個的目的,主要還是在于類似iOS Handoff或者AirDrop的功能。但提供了更好的實時性、可靠性和帶寬。

至于這一點,在Fuchsia中,恰恰選擇了一條完全不同的路徑。在Fuchsia中,全面擁抱了開放和標(biāo)準(zhǔn)的協(xié)議,擁抱了一些網(wǎng)絡(luò)方面的新技術(shù)。比如在做Fuchsia開發(fā)的時候,利用了IPv6的自組網(wǎng)特性,mDNS的自發(fā)現(xiàn)特性和HTTP/2.0作為通訊協(xié)議,實現(xiàn)遠(yuǎn)程對客戶機(jī)的操控和管理。(題外話,在這一點上,Apple做了非常好的表率,在每一個OS大版本發(fā)布的時候,都會非常有意識、有節(jié)奏的將最新的技術(shù)整合進(jìn)來,并且發(fā)揮出最大的功用)




調(diào)度引擎

再接下來,華為又花了很大的筆墨來講內(nèi)核的調(diào)度引擎。

關(guān)鍵內(nèi)容是在吐槽Android中用的Linux內(nèi)核采用的完全公平調(diào)度器[2](CFS)。坦白的說,我非常認(rèn)同華為的吐槽,因為這個調(diào)度器是更加偏向于系統(tǒng)吞吐量,而非實時響應(yīng)能力。所以,當(dāng)系統(tǒng)負(fù)載較高,或是面臨突發(fā)負(fù)載時,非常容易導(dǎo)致UI卡頓。

而鴻蒙的內(nèi)核很可能是一個實時內(nèi)核,可以針對某些任務(wù)設(shè)定調(diào)度的deadline,保證在deadline前一定得到調(diào)度。這個做法通常應(yīng)用在嵌入式領(lǐng)域比較多(比如ECU在控制你的發(fā)動機(jī)的時候,某些點火計算的任務(wù)是一定要在點火時間到來之前完成的)。




IPC性能

由于鴻蒙和Fuchsia都是微內(nèi)核的操作系統(tǒng),所以IPC(Inter-process Call)性能是內(nèi)核最最關(guān)鍵的指標(biāo)之一。它直接決定了整個操作系統(tǒng)的性能水平,甚至可以直接將一個微內(nèi)核操作系統(tǒng)排除在實用性之外。在華為的PPT中,華為聲稱鴻蒙內(nèi)核的IPC性能是Fuchsia的
5倍。這是相當(dāng)夸張的一個性能優(yōu)勢。至于華為是如何做到的,我是非常非常好奇的,期待華為開源鴻蒙OS(星星眼)。




架構(gòu)圖

最后,說一下華為放出來的架構(gòu)圖。其實除了內(nèi)核層之外的部分我一點都不關(guān)心。我們重點關(guān)注內(nèi)核層,會有很驚喜的發(fā)現(xiàn):

架構(gòu)圖中,內(nèi)核層一共有3個內(nèi)核,分別是Linux內(nèi)核、鴻蒙微內(nèi)核、LiteOS內(nèi)核。我們知道,如果沒有虛擬化技術(shù),這3個內(nèi)核是無法共存的,那么華為到底是怎么做到的呢?秘密藏在SoC的Block Diagram中:



讓我們一起看一下官宣的麒麟970的PPT(980的PPT為了放別的組件,把Sensor Processor隱藏了,但硬件上肯定是有的):



v2-f272f043d9e6b0301d75bace8f47e28e_720w.jpg (53.89 KB, 下載次數(shù): 0)

下載附件  保存到相冊  

14 分鐘前 上傳



注意圖中的3個地方:



  • 左上角的8-Core CPU
  • 左下角的i7 Sensor Processor
  • 右下角的Security Engine (inSE & TEE
      
我們再看華為發(fā)布會中第14張圖片,標(biāo)題是“微內(nèi)核技術(shù)用于可信執(zhí)行環(huán)境(TEE)”。再注意右側(cè)的那個框圖,可以看到鴻蒙的微內(nèi)核現(xiàn)在是跑在TEE內(nèi)的,而普通執(zhí)行環(huán)境跑的是Linux內(nèi)核。

提到的第三個內(nèi)核LiteOS是華為針對IoT領(lǐng)域推出的嵌入式操作系統(tǒng)[3]。

所以我認(rèn)為,這次在鴻蒙1.0上,主CPU里面跑的還是Linux,鴻蒙微內(nèi)核只是運行在Security Engine的TEE環(huán)境中,而LiteOS則是跑在Sensor Processor(實際上就是一顆內(nèi)置的MCU核心)上,負(fù)責(zé)處理傳感器數(shù)據(jù)的嵌入式內(nèi)核。




結(jié)論


本文的結(jié)論僅限我根據(jù)華為當(dāng)前公布出來的PPT猜測的個人觀點,很可能存在錯誤,等華為開源后,我會另外行文修正。





  • 鴻蒙1.0中,鴻蒙微內(nèi)核僅運行在TEE中,并非整個操作系統(tǒng)的主要內(nèi)核;
  • 操作系統(tǒng)的主要內(nèi)核仍然是Linux(應(yīng)該就是Android魔改過的Linux內(nèi)核,但加上了華為的魔改,比如EROFS、“極簡協(xié)議”);
  • LiteOS內(nèi)核本身就是幾乎所有華為手機(jī)上的Sensor Processor(客官可曾記得蘋果在A系列處理器中增加的M系列核心?)的嵌入式OS;
  • 鴻蒙OS 1.0主體就是AOSP加上了華為自己的修改(比如EMUI的殼、方舟編譯器的運行時,GPU Turbo等);
  • 你可以認(rèn)為EMUI 10.0就是鴻蒙OS 1.0;
  • 鴻蒙OS 2.0開始的發(fā)展方向應(yīng)當(dāng)是完全按照Fuchsia的軌跡來設(shè)計和執(zhí)行的,目測節(jié)奏上也會緊跟Fuchsia的步伐。
      
回復(fù)

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表