鴻蒙操作系統是個啥,牛不牛?_風聞
风云之声-风云之声官方账号-2019-08-19 09:59
【餘興鎬,軟件從業人員】
按官方説法,鴻蒙是基於微內核的全場景分佈式OS。那個……微內核的全場景分佈式OS又是什麼啊?
自鴻蒙操作系統發佈以來,網上關於鴻蒙OS的討論熱度持續不減,然鵝普通觀眾對於華為面向開發者的發佈會上説的一大堆的技術名詞:低時延、微內核、可信安全、模塊化解耦、可彈性部署、跨生態共享、賦能、萬物互聯……大多數觀眾還是不明覺厲,一臉懵逼,這TM到底在説些啥,所以鴻蒙操作系統到底牛不牛逼?
先説結論:如果華為完全實現了開發者大會上説的那些特徵,鴻蒙將會徹底改變目前的軟硬件生態,遠超當前的任何一個操作系統。為什麼這麼説呢,我們來看看鴻蒙到底能幹啥,以及它是如何做到的。
簡單的説,鴻蒙實現了兩點:
1**、讓從燈泡、門鎖、音箱……到汽車、手錶、電視、手機和電腦都能使用同一個操作系統。**
2**、這還不算完,還能讓這些設備互為外設,自由組合,協同工作。**啥意思呢?你可以把你的單反相機當成你手機的前置攝像頭用來自拍,也可以把你的智能手錶、電視、攝像頭臨時組合起來,跟你的外婆進行視頻通話……
説到這,我彷彿能聽到小白的內心OS:聽起來好像也不是很牛逼嘛,貌似之前xxx也可以做到……
不,完全不一樣!
我們先來説第一點,讓從燈泡、門鎖、音箱……到汽車、手錶、電視、手機和電腦都能使用同一個操作系統。
對於燈泡之類的弱設備,安裝類似於Linux這樣的操作系統幾乎是不可能的,Linux是一種宏內核系統,意思是説,包括最基本的進程、線程管理、內存管理外,文件系統,驅動,網絡協議等等你聽説過沒聽説的所有東西,統統都放在內核裏面,這樣一來,設備本身必須具備完整的硬件和計算能力——而這些能力對於只需要完成開關和調光等基本功能的燈泡來説,是完全不必要的。
鴻蒙是怎麼解決這一問題的呢?
鴻蒙使用微內核架構,內核中只有最基本的調度和內存管理,其它原本在宏內核中完成的功能,都模塊化為相互獨立的服務,以進程方式按需調用,它們被稱之為外核。這裏需要提一嘴的是,微內核因此而增加了進程間通訊(IPC),降低了效率,這一固有缺陷致使微內核系統多年來一直不被看好(參見https://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_debate),而鴻蒙的技術改進,使之對比其它微內核系統如QNX和Fuchsia的進程間通訊(IPC)效率提升3到5倍之多。
你可以理解為宏內核是一台各部件都焊接在一起功能完整的機車,而微內核只保留了發動機,其它組件按需添加從而組裝成不同的車輛。採用宏內核的蘋果當前只能為PC電腦開發MacOS,手機用iOS,手錶的Watch OS,電視的TV OS……如果要將電飯煲、冰箱、掃地機器人、空調都接入網絡實現統一管理呢?
硬件與操作系統綁定,軟件又與操作系統綁定,要為這麼多不同種類的設備開發不同的系統,每個系統還需要開發不同的軟件,這就是一個噩夢。
採用微內核的鴻蒙,則可以按需擴展,實現彈性部署。使用同一個系統,適配從KB到GB內存規模的不同設備。
在為這些不同規模的硬件適配同一個操作系統之後,華為還通過方舟編譯器和麪向多終端開發的IDE,使軟件可以一次開發,多端部署。比如説你為鴻蒙系統開發了一個音樂播放器,通過在開發環境中(IDE)對組件進行調整,它就可以為手錶、手機、電視等不同大小的屏幕自動適配其顯示界面。
通過以上一系列騷操作,鴻蒙最終能夠實現業界多年以來的一個夢想:不同硬件,同一個系統。一次開發,多端部署。
不論是哪個公司哪個系統,能夠實現第一點,就已經牛逼得不要不要的了。然而鴻蒙相對於其它操作系統來説真正核彈級的威力,其實是第二點,讓這些設備互為外設,自由組合,協同工作。
**讓同一賬户下不同硬件的鴻蒙設備——它們的顯示器、攝像頭、揚聲器、麥克風、傳感器、計算能力、通訊能力——實現解耦合,被虛擬成模塊化的硬件能力。**它們在一起構成了一個用户可以以任意組合方式調用的硬件能力資源池。最終實現了全場景下的終端無縫協同體驗。
在此之前從來沒有任何一個操作系統具有這種能力,鴻蒙是第一個可以做到這一點的分佈式操作系統。不論Linux、安卓、iOS還是谷歌尚未發佈的Fuchsia,都不具備這種能力。
操作系統與硬件能力解耦,不同設備在一起構成一個硬件能力虛擬化的資源池。
讓我們回顧一下上文提到的場景:把你的智能手錶、電視、攝像頭臨時組合起來,跟你的外婆進行視頻通話。在鴻蒙出現之前,如果我們需要把不同的設備組合起來完成一件事情,就必須為此研究一套解決方案,開發出一套專門的系統。
對應以上場景的傳統解決方案,就是視頻會議系統,它需要專門為該系統開發的攝像頭、服務器和定製的軟件,還需要在主會場和各分會場分別部署這一系統並進行聯調。這種專用系統通常都極為昂貴,而擴展能力卻極為有限,使用起來特別費勁,安全性和穩定性還十分堪憂(華為十幾年前就開發過這樣的視頻會議系統)。
在鴻蒙出現之前,用户的不同設備本質上是相互孤立的,只能在應用層面上進行網絡通訊。就算是為了特定目的而專門定製的系統解決方案,它們也無法像同一個設備上的硬件之間那樣協同工作,可靠性也很差。更別説是用户想要根據自己的臨時需求,組合不同的設備來進行協同工作了,根本上是不可能完成的。
那麼鴻蒙是如何做到這一點的呢?鴻蒙把每個設備的硬件能力抽象成驅動,同一賬户下的多個設備構成了一個硬件能力虛擬化資源池,在底層上通過網絡通信連接。這就是華為開創性提出的分佈式軟總線技術。
我們知道,這些虛擬化的硬件能力原本屬於不同的物理設備,要使它們任意組合起來像同一個設備那樣工作,是如何可能的呢?這就是華為作為一家通信企業多年的技術沉澱,鴻蒙對於硬件能力的虛擬化,是把計算機內部原本需要通過系統總線(System Bus)的硬件通信,改為通過網絡協議通訊,同時對網絡通訊協議也進行了改寫,把計算機網絡通訊協議七層結構中的網絡層、傳輸層、會話層和表示層,合併為一層,稱之為分佈式軟總線的極簡協議。
通過對協議的優化,鴻蒙的分佈式軟總線可以做到低時延:端到端時延小於20ms,高吞吐:有效吞吐高達1.2Gbps,高可靠:抗丟包率高達25%。通過分佈式軟總線使多個設備的硬件能力可以相互共享,互為外設,實現了終端的無縫協同體驗,開啓了萬物互聯的全場景智慧時代。
用户調用多個設備可以像調用同一個設備那樣工作,這就是全場景分佈式系統的真正魅力所在。上文例子中提到的視頻會議系統,無線投屏之類,對於實現了全場景的分佈式系統來説,就像是原始時代的拙劣的模擬技術。
關於第二點,你可以理解為,鴻蒙從軟件的層面,把設備上的各個硬件能力抽象成像樂高積木那樣的模塊,你可以任意替換重新組合這些積木模塊,完成全新的任務,同時你並不用真正在物理意義上把設備拆解成獨立的硬件。
這種像樂高一樣,把設備的硬件能力模塊化,然後任意重新組合的能力,可以用在任何你現在想象到或者想象不到的場景:
**·**你此時正在看電視,當訪客按門鈴的時候,大門的監控畫面會傳到電視上,你在書房時傳到工作電腦的屏幕上,在卧室時則傳到手機或者手錶畫面上。
**·**你打開了一首喜歡的音樂開始做早餐,當你進入到不同的房間,背景音樂切換到對應的房間而不會中斷,當你結束這一切在開車上班的路上,音樂會自然的切換到車內音箱。
**·**你運營着一家養雞場,這些仔雞在不同的生長階段需要不用的温度濕度組合,甚至你新買了一台可以監控環境是否發生了細菌過度繁殖的設備。如果這些傳感器都支持鴻蒙系統,那麼用户就可以輕鬆把它們組合起來,使用自己的業務邏輯動態調整温度濕度和進行消毒。
鴻蒙系統,結合5G高速網絡,人類將從此進入一個極具想象力的時代。
=====================
最後再來説一説手機。
實現了萬物互聯的全場景分佈式操作系統,與現在的手機操作系統是完全不同的。它面向的是未來,面向的是完全不同數量級的設備。從大的趨勢上來説,必然會取代現在的安卓和iOS這種與硬件深度綁定的類型的操作系統。Google和蘋果顯然也看到了這一趨勢,也正在開發類似的系統以取代它們自己安卓和iOS,但他們的新系統似乎並不具有分佈式軟總線的能力。
從操作的層面上,新的系統將會採取什麼步驟,打破當前安卓和iOS建立的應用生態壁壘呢?鴻蒙採取的路線是先用多內核,加上方舟編譯器的助力,使之完全兼容現有的安卓生態,未來,將會過度到完全的鴻蒙微內核。
鴻蒙並不是什麼備胎,鴻蒙可能是安卓和iOS的掘墓人。