鸿蒙OS速览
請(qǐng)保留 -> 【作者:張佩】
鴻蒙在HDC 2019上作為最重要的產(chǎn)品被隆重推出,現(xiàn)在已經(jīng)為世人所知。它的三個(gè)重要特點(diǎn)是:
第一,它基于微內(nèi)核的實(shí)現(xiàn),可以很好地運(yùn)行于IoT及安全相關(guān)的嵌入式場(chǎng)景中;
 第二,它是分布式架構(gòu),使得它可以很好地運(yùn)行于多端協(xié)作的場(chǎng)景;
 第三,它面向的是全場(chǎng)景的應(yīng)用,囊括了像智能穿戴這樣的IoT設(shè)備、智慧大屏、智能終端以及PC機(jī)等。其中榮耀大屏(電視)是它第一個(gè)產(chǎn)品。
鴻蒙OS主要特性速覽和解析
全場(chǎng)景應(yīng)用:微內(nèi)核和鴻蒙OS要分開(kāi)看
讓一個(gè)OS實(shí)現(xiàn)全場(chǎng)景是很困難的,Windows系統(tǒng)嘗試過(guò)失敗了,基于Linux內(nèi)核的眾多OS應(yīng)該在各種場(chǎng)景中都存在著,但它們是不同公司的不同OS產(chǎn)品組成的。某種意義上,蘋(píng)果的OS有點(diǎn)全場(chǎng)景的意思,翻蓋了可穿戴、智能終端到PC。但從資料看,蘋(píng)果的多端OS的系統(tǒng)架構(gòu)并未統(tǒng)一,雖然有信息認(rèn)為它們?cè)诔y(tǒng)一的方向做。
那么,可想而知,華為要讓HarmonyOS做到全場(chǎng)景應(yīng)用支持,這件事情本身會(huì)有多困難了。從它現(xiàn)在公布的資料可知,鴻蒙OS現(xiàn)在支持多種內(nèi)核。我認(rèn)為這其實(shí)是它自研的微內(nèi)核的能力尚淺,在智能終端和桌面這樣的傳統(tǒng)功能很重的應(yīng)用中,微內(nèi)核還無(wú)法勝任,而需要借力Linux內(nèi)核甚至安卓系統(tǒng)的一些能力。
內(nèi)核是可替換的,是鴻蒙OS的一個(gè)重大特征。視角切換到安卓OS,它其實(shí)也不綁定Linux內(nèi)核,而是通過(guò)HAL來(lái)抽象底層的內(nèi)核實(shí)現(xiàn),但其十余年的發(fā)展至今,實(shí)際產(chǎn)品都只綁定Linux這個(gè)內(nèi)核的。因?yàn)楫吘挂獙?shí)現(xiàn)內(nèi)核可替換,是一件很費(fèi)事的系統(tǒng)工程,難度很大的。鴻蒙OS能做到3個(gè)內(nèi)核兼容可替,技術(shù)上是很牛叉的事情。
具體是怎么做到的?業(yè)界的一種標(biāo)準(zhǔn)做法是POSIX兼容。如果鴻蒙微內(nèi)核是POSIX兼容的話(huà),就相對(duì)容易。但從它已經(jīng)開(kāi)源的LiteOS來(lái)看,其并沒(méi)有實(shí)現(xiàn)POSIX接口。所以具體的實(shí)現(xiàn)細(xì)節(jié),尚要等到鴻蒙的微內(nèi)核開(kāi)源了再看。
OS其實(shí)是一種操作環(huán)境,內(nèi)核是用戶(hù)看不到的部分。在討論鴻蒙OS的時(shí)候,它更多表示的的是它的上層的軟件框架和運(yùn)行環(huán)境。鴻蒙微內(nèi)核只是它兼容的內(nèi)核之一。華為當(dāng)前宣稱(chēng)的一些基于鴻蒙OS的場(chǎng)景能力如智能終端,是基于Linux內(nèi)核的。
[外鏈圖片轉(zhuǎn)存失敗(img-BFAihVrS-1567068282710)(https://github.com/Awesome-HarmonyOS/HarmonyOS/raw/master/assets/img/harmony/features.png)]
現(xiàn)在猜測(cè)是,鴻蒙OS的三種內(nèi)核,分別用來(lái)適配不同的應(yīng)用場(chǎng)景:LiteOS內(nèi)核用于可穿戴和IoT場(chǎng)景、Linux內(nèi)核用于智能終端應(yīng)用場(chǎng)景、鴻蒙微內(nèi)核使用于安全相關(guān)場(chǎng)景如TEE。華為希望今后Harmony微內(nèi)核能力會(huì)逐漸增強(qiáng),并最終替代LiteOS和Linux內(nèi)核的能力。
分布式架構(gòu)
分布式這種OS架構(gòu)在傳統(tǒng)意義上,是運(yùn)行于服務(wù)器和數(shù)據(jù)中心上的,比如分布式文件服務(wù)器、分布式網(wǎng)絡(luò)服務(wù)器。在終端上使用分布式架構(gòu),它的出發(fā)點(diǎn)其實(shí)是對(duì)于IoT時(shí)代萬(wàn)物互聯(lián)的思考。當(dāng)終端的IoT設(shè)備越來(lái)越多,不得不考慮它們之間更便捷、有效的互聯(lián)通訊的時(shí)候,一個(gè)存在于端上的分布式OS,就有了其存在的價(jià)值了。
端上的分布式OS場(chǎng)景現(xiàn)在可以舉兩個(gè)例子:
第一是智能汽車(chē)場(chǎng)景。華為要以鴻蒙OS來(lái)控制汽車(chē),不僅是車(chē)機(jī),還能觸達(dá)終端傳感器。因?yàn)樗炎约旱能?chē)業(yè)務(wù)定位為汽車(chē)Tier 1方案商,硬件方案恰是它的分內(nèi)業(yè)務(wù),所以華為有能力在汽車(chē)的各種大大小小的芯片上,應(yīng)用其鴻蒙OS。在傳感器MCU上,它運(yùn)行IoT版本的鴻蒙系統(tǒng);在車(chē)機(jī)芯片上,它運(yùn)行Linux版本的鴻蒙系統(tǒng);在駕駛控制域芯片上,它運(yùn)行微內(nèi)核版本的鴻蒙系統(tǒng)。幾十個(gè)不同版本的鴻蒙OS在車(chē)?yán)锩孢\(yùn)行,聯(lián)合在一起就是一個(gè)很具規(guī)模的分布式場(chǎng)景。
第二是各種智能終端在實(shí)際生活中的應(yīng)用場(chǎng)景,典型的如智能家居、移動(dòng)辦公等場(chǎng)景。HDC上華為做了一個(gè)移動(dòng)辦公的生動(dòng)演示,雖然并非基于鴻蒙OS來(lái)實(shí)現(xiàn)的,但它是分布式智能辦公的一種運(yùn)用。演示時(shí),女主角將華為手機(jī)映射到PC上,可以在PC看到手機(jī)的整個(gè)屏幕,操作方法也完全和手機(jī)上一樣的。這種模式給她的辦公帶來(lái)了兩種便利:第一,可以用PC的鼠鍵來(lái)操作和打字;第二,手機(jī)和PC間的數(shù)據(jù)共享十分直接,操作手機(jī)上的數(shù)據(jù),就像在PC本地上操作文件管理器一樣。
[外鏈圖片轉(zhuǎn)存失敗(img-6wkHZt75-1567068282710)(https://github.com/Awesome-HarmonyOS/HarmonyOS/raw/master/assets/img/harmony/harmonyos1.jpg)]
它的分布式框架實(shí)現(xiàn)了四種能力:公共通信平臺(tái),分布式數(shù)據(jù)管理,分布式能力調(diào)度和虛擬外設(shè)。
分布式是一種比較高層次的架構(gòu),基于任何系統(tǒng)都可以搭建出不同的分布式架構(gòu)。但華為想通過(guò)統(tǒng)一的鴻蒙系統(tǒng)來(lái)考慮和實(shí)施端上的分布式架構(gòu),其最大的好處是開(kāi)發(fā)環(huán)境和應(yīng)用生態(tài)的統(tǒng)一,能把蛋糕做得更精更大。
它可以提供統(tǒng)一的應(yīng)用接口,而將分布式相關(guān)的底層技術(shù)隱藏起來(lái),對(duì)應(yīng)用開(kāi)發(fā)者透明,使開(kāi)發(fā)者能夠聚焦自身業(yè)務(wù)邏輯,像開(kāi)發(fā)同一終端一樣開(kāi)發(fā)跨終端分布式應(yīng)用,也使最終消費(fèi)者享受到強(qiáng)大的跨終端業(yè)務(wù)協(xié)同能力為各使用場(chǎng)景帶來(lái)的無(wú)縫體驗(yàn)。
確定性和高性能
這是華為的一個(gè)純粹的技術(shù)表述。它包含了兩個(gè)很不容易實(shí)現(xiàn)的技術(shù)點(diǎn):軟件操作的延時(shí)確定性,IPC的高效性。任何一個(gè)系統(tǒng)如果能在這兩點(diǎn)上做好了,其系統(tǒng)一定是非常安全和高效的。但現(xiàn)在華為在這兩個(gè)點(diǎn)上只透露了籠統(tǒng)的結(jié)論,沒(méi)有具體的過(guò)程數(shù)據(jù)和實(shí)現(xiàn)方法。
[外鏈圖片轉(zhuǎn)存失敗(img-Am3fWvAU-1567068282711)(https://github.com/Awesome-HarmonyOS/HarmonyOS/raw/master/assets/img/harmony/harmonyos2.jpg)]
從它簡(jiǎn)單的論述中,我大概的推論是:它有一個(gè)確定時(shí)延引擎,可以確定一個(gè)任務(wù)的執(zhí)行時(shí)間,根據(jù)它提供的信息,調(diào)度器可以相對(duì)確定地安排多個(gè)任務(wù)的優(yōu)先級(jí)和執(zhí)行時(shí)間片。和通用的調(diào)度器算法相比,這種實(shí)現(xiàn)的一個(gè)非常重要的不同處是,調(diào)度器知道更多的任務(wù)的執(zhí)行細(xì)節(jié)。一般的調(diào)度器都是完全通用的,不需要對(duì)具體的任務(wù)有任何知識(shí)的;在鴻蒙這里,調(diào)度器卻能夠知道任務(wù)的一個(gè)大概的執(zhí)行時(shí)間。這種情況下,調(diào)度器可以安排出更緊密的調(diào)度秩序,從而提高調(diào)度效率。華為宣稱(chēng)它們將任務(wù)的響應(yīng)時(shí)延降低了25.7%。
另外,華為宣稱(chēng)對(duì)IPC進(jìn)行了很好的優(yōu)化,使得進(jìn)程間通信效率提升了5倍。可能是和原生的安卓系統(tǒng)進(jìn)行比較。
安全可信
安全性首先來(lái)自于微內(nèi)核的“微”。在HDC上終端總裁余承東對(duì)此有過(guò)專(zhuān)業(yè)的表述,就是他們首次通過(guò)形式化驗(yàn)證的方法,驗(yàn)證了鴻蒙微內(nèi)核的安全性。形式化驗(yàn)證是很夸張的一個(gè)東西,HDC上還提供了一個(gè)數(shù)據(jù)應(yīng)該是可供參考的:一行代碼如果要完成形式化驗(yàn)證,需要為它寫(xiě)100行驗(yàn)證代碼。
這是非常夸張的比例,基于這個(gè)數(shù)據(jù),傳統(tǒng)內(nèi)核就不可能完成形式化驗(yàn)證,比如Linux內(nèi)核現(xiàn)在即便精簡(jiǎn)之后也超過(guò)千萬(wàn)行的代碼量,形式化驗(yàn)證就需要編寫(xiě)10億行代碼,這在現(xiàn)實(shí)工程中幾乎是無(wú)法實(shí)現(xiàn)的。
一個(gè)典型的微內(nèi)核代碼量是1w行左右。這只是一個(gè)大概的量級(jí),具體不同的實(shí)現(xiàn)有高有低。如用于教學(xué)的Minix系統(tǒng)的內(nèi)核大概4K行,工業(yè)上應(yīng)用廣泛的OKL4內(nèi)核約8K行。但也有代碼量多的,比如開(kāi)源的面向智能終端應(yīng)用的Fuchsia系統(tǒng)的內(nèi)核,它現(xiàn)在有約6w行代碼,這是目前所知的最為復(fù)雜的微內(nèi)核實(shí)現(xiàn)。華為稱(chēng)鴻蒙微內(nèi)核是Linux的千分之一,那么大概是4w行左右的樣子。
[外鏈圖片轉(zhuǎn)存失敗(img-IHPuUplw-1567068282711)(https://github.com/Awesome-HarmonyOS/HarmonyOS/raw/master/assets/img/harmony/harmonyos3.jpg)]
從公開(kāi)的信息看,鴻蒙的微內(nèi)核的某個(gè)版本應(yīng)該是已經(jīng)完成了形式化驗(yàn)證的。這非常了不起,在此之前公開(kāi)資料的信息,只有OKL4是通過(guò)了形式化驗(yàn)證的。從上面的代碼量看,OKL4的代碼量要遠(yuǎn)遠(yuǎn)小于鴻蒙的。這個(gè)版本的微內(nèi)核當(dāng)前作為T(mén)EE系統(tǒng)在使用。
高效統(tǒng)一的開(kāi)發(fā)框架
對(duì)開(kāi)發(fā)者友好,就是對(duì)自己友好。開(kāi)發(fā)者多了,生態(tài)才會(huì)安順,生意才會(huì)做大。
前面說(shuō)了,他們要面向全場(chǎng)景應(yīng)用來(lái)設(shè)計(jì)系統(tǒng),并且實(shí)現(xiàn)了基于端的分布式架構(gòu)。就像古時(shí)候的大家族一樣,里面有好多個(gè)小家庭,如果沒(méi)有強(qiáng)力的家族管理制度,各個(gè)小家庭就會(huì)各自為政,最后甚至?xí)袃?nèi)訌。那么多的應(yīng)用場(chǎng)景,也需要有統(tǒng)一的開(kāi)發(fā)和應(yīng)用的框架來(lái)幫助開(kāi)發(fā)者和使用者。華為將提供支持多終端的統(tǒng)一的開(kāi)發(fā)IDE,內(nèi)置實(shí)現(xiàn)多語(yǔ)言編譯的方舟編譯器,提供可視化編程等。可以做到一次開(kāi)發(fā),多端部署。
官方數(shù)據(jù):方舟編譯器可以提高安卓系統(tǒng)操作的流暢性24%,響應(yīng)速度44%,第三方應(yīng)用的流暢性高達(dá)60%。
結(jié)論
華為這一次圍繞著鴻蒙OS這個(gè)名字,其實(shí)是打出了一套組合拳。鴻蒙只是這套組合拳的總名稱(chēng),里面的招式卻有好多種,豐富得很。
總結(jié)
 
                            
                        - 上一篇: 元宇宙地产:概念、价值与未来
- 下一篇: 计算机领域项目经费预算,教学项目经费预算
