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