
華為鴻蒙OS2.0系統定義
HarmonyOS是一款“面向未來”、面向全場景(移動辦公、運動健康、社交通信、媒體娛樂等)的分布式作業系統。在傳統的單裝置系統能力的基礎上,HarmonyOS提出了基于同一套系統能力、适配多種終端形态的分布式理念,能夠支援多種終端裝置。
鴻蒙1.0
從鴻蒙1.0到鴻蒙2.0:分布式能力
對消費者而言,HarmonyOS能夠将生活場景中的各類終端進行能力整合,可以實作不同的終端裝置之間的快速連接配接、能力互助、資源共享,比對合适的裝置、提供流暢的全場景體驗。
對應用開發者而言,HarmonyOS采用了多種分布式技術,使得應用程式的開發實作與不同終端裝置的形态差異無關。這能夠讓開發者聚焦上層業務邏輯,更加便捷、高效地開發應用。
對裝置開發者而言,HarmonyOS采用了元件化的設計方案,可以根據裝置的資源能力和業務特征進行靈活裁剪,滿足不同形态的終端裝置對于作業系統的要求。
在這樣的特殊的曆史時期,鴻蒙邁出了第一步。我們未來的繁榮可期,未來已來。
技術特性
硬體互助,資源共享
分布式軟總線是多種終端裝置的統一基座,為裝置之間的互聯互通提供了統一的分布式通信能力,能夠快速發現并連接配接裝置,高效地分發任務和傳輸資料。分布式軟總線示意圖見圖1。
圖1 分布式軟總線示意圖
分布式裝置虛拟化
分布式裝置虛拟化平台可以實作不同裝置的資源融合、裝置管理、資料處理,多種裝置共同形成一個超級虛拟終端。針對不同類型的任務,為使用者比對并選擇能力合适的執行硬體,讓業務連續地在不同裝置間流轉,充分發揮不同裝置的資源優勢。分布式裝置虛拟化示意圖見圖2。
圖2 分布式裝置虛拟化示意圖
分布式資料管理
分布式資料管理基于分布式軟總線的能力,實作應用程式資料和使用者資料的分布式管理。使用者資料不再與單一實體裝置綁定,業務邏輯與資料存儲分離,應用跨裝置運作時資料無縫銜接,為打造一緻、流暢的使用者體驗創造了基礎條件。分布式資料管理示意圖見圖3。
圖3 分布式資料管理示意圖
分布式任務排程
分布式任務排程基于分布式軟總線、分布式資料管理、分布式Profile等技術特性,建構統一的分布式服務管理(發現、同步、注冊、調用)機制,支援對跨裝置的應用進行遠端啟動、遠端調用、遠端連接配接以及遷移等操作,能夠根據不同裝置的能力、位置、業務運作狀态、資源使用情況,以及使用者的習慣和意圖,選擇合适的裝置運作分布式任務。
圖4以應用遷移為例,簡要地展示了分布式任務排程能力。
圖4 分布式任務排程示意圖
一次開發,多端部署
HarmonyOS提供了使用者程式架構、Ability架構以及UI架構,支援應用開發過程中多終端的業務邏輯和界面邏輯進行複用,能夠實作應用的一次開發、多端部署,提升了跨裝置應用的開發效率。一次開發、多端部署示意圖見圖5。
圖5 一次開發、多端部署示意圖
統一OS,彈性部署
HarmonyOS通過元件化和小型化等設計方法,支援多種終端裝置按需彈性部署,能夠适配不同類别的硬體資源和功能需求。支撐通過編譯鍊關系去自動生成元件化的依賴關系,形成元件樹依賴圖,支撐産品系統的便捷開發,降低硬體裝置的開發門檻。
支援各元件的選擇(元件可有可無):根據硬體的形态和需求,可以選擇所需的元件。
支援元件内功能集的配置(元件可大可小):根據硬體的資源情況和功能需求,可以選擇配置元件中的功能集。例如,選擇配置圖形架構元件中的部分控件。
支援元件間依賴的關聯(平台可大可小):根據編譯鍊關系,可以自動生成元件化的依賴關系。例如,選擇圖形架構元件,将會自動選擇依賴的圖形引擎元件等。
技術架構
HarmonyOS整體遵從分層設計,從下向上依次為:核心層、系統服務層、架構層和應用層。系統功能按照“系統 > 子系統 > 功能/子產品”逐級展開,在多裝置部署場景下,支援根據實際需求裁剪某些非必要的子系統或功能/子產品。HarmonyOS技術架構如圖1所示。
圖1 技術架構
核心層
核心子系統:HarmonyOS采用多核心設計,支援針對不同資源受限裝置選用适合的OS核心。核心抽象層(KAL,KernelAbstract Layer)通過屏蔽多核心差異,對上層提供基礎的核心能力,包括程序/線程管理、記憶體管理、檔案系統、網絡管理和外設管理等。
驅動子系統:HarmonyOS驅動架構(HDF)是HarmonyOS硬體生态開放的基礎,提供統一外設通路能力和驅動開發、管理架構。
系統服務層
系統服務層是HarmonyOS的核心能力集合,通過架構層對應用程式提供服務。該層包含以下幾個部分:
系統基本能力子系統集:為分布式應用在HarmonyOS多裝置上的運作、排程、遷移等操作提供了基礎能力,由分布式軟總線、分布式資料管理、分布式任務排程、方舟多語言運作時、公共基礎庫、多模輸入、圖形、安全、AI等子系統組成。其中,方舟運作時提供了C/C++/JS多語言運作時和基礎的系統類庫,也為使用方舟編譯器靜态化的Java程式(即應用程式或架構層中使用Java語言開發的部分)提供運作時。
基礎軟體服務子系統集:為HarmonyOS提供公共的、通用的軟體服務,由事件通知、電話、多媒體、DFX、MSDP&DV等子系統組成。
增強軟體服務子系統集:為HarmonyOS提供針對不同裝置的、差異化的能力增強型軟體服務,由智慧屏專有業務、穿戴專有業務、IoT專有業務等子系統組成。
硬體服務子系統集:為HarmonyOS提供硬體服務,由位置服務、生物特征識别、穿戴專有硬體服務、IoT專有硬體服務等子系統組成。
根據不同裝置形态的部署環境,基礎軟體服務子系統集、增強軟體服務子系統集、硬體服務子系統集内部可以按子系統粒度裁剪,每個子系統内部又可以按功能粒度裁剪。
架構層
架構層為HarmonyOS的應用程式提供了Java/C/C++/JS等多語言的使用者程式架構和Ability架構,以及各種軟硬體服務對外開放的多語言架構API;同時為采用HarmonyOS的裝置提供了C/C++/JS等多語言的架構API,不同裝置支援的API與系統的元件化裁剪程度相關。
應用層
應用層包括系統應用和第三方非系統應用。HarmonyOS的應用由一個或多個FA(Feature Ability)或PA(Particle Ability)組成。其中,FA有UI界面,提供與使用者互動的能力;而PA無UI界面,提供背景運作任務的能力以及統一的資料通路抽象。基于FA/PA開發的應用,能夠實作特定的業務功能,支援跨裝置排程與分發,為使用者提供一緻、高效的應用體驗。
系統安全
在搭載HarmonyOS的分布式終端上,可以保證“正确的人,通過正确的裝置,正确地使用資料”。
正确的人
在分布式終端場景下,“正确的人”指通過身份認證的資料通路者和業務操作者。“正确的人”是確定使用者資料不被非法通路、使用者隐私不洩露的前提條件。HarmonyOS通過以下三個方面來實作協同身份認證:
零信任模型:HarmonyOS基于零信任模型,實作對使用者的認證和對資料的通路控制。當使用者需要跨裝置通路資料資源或者發起高安全等級的業務操作(例如,對安防裝置的操作)時,HarmonyOS會對使用者進行身份認證,確定其身份的可靠性。
多因素融合認證:HarmonyOS通過使用者身份管理,将不同裝置上辨別同一使用者的認證憑據關聯起來,用于辨別一個使用者,來提高認證的準确度。
協同互助認證:HarmonyOS通過将硬體和認證能力解耦(即資訊采集和認證可以在不同的裝置上完成),來實作不同裝置的資源池化以及能力的互助與共享,讓高安全等級的裝置協助低安全等級的裝置完成使用者身份認證。
通過“分布式多端協同身份認證”來保證“正确的人”。
正确的裝置
通過“在分布式終端上構築可信運作環境”來保證“正确的裝置”。
通過“分布式資料在跨終端流動的過程中,對資料進行分類分級管理”來保證“正确地使用資料”。
在分布式終端場景下,隻有保證使用者使用的裝置是安全可靠的,才能保證使用者資料在虛拟終端上得到有效保護,避免使用者隐私洩露。
安全啟動
確定源頭每個虛拟裝置運作的系統固件和應用程式是完整的、未經篡改的。通過安全啟動,各個裝置廠商的鏡像包就不易被非法替換為惡意程式,進而保護使用者的資料和隐私安全。
可信執行環境
提供了基于硬體的可信執行環境(TEE,Trusted Execution Environment)來保護使用者的個人敏感資料的存儲和處理,確定資料不洩露。由于分布式終端硬體的安全能力不同,對于使用者的敏感個人資料,需要使用高安全等級的裝置進行存儲和處理。HarmonyOS使用基于數學可證明的形式化開發和驗證的TEE微核心,獲得了商用OS核心CC EAL5+的認證評級。
裝置證書認證
支援為具備可信執行環境的裝置預置裝置證書,用于向其他虛拟終端證明自己的安全能力。對于有TEE環境的裝置,通過預置PKI(Public Key Infrastructure)裝置證書給裝置身份提供證明,確定裝置是合法制造生産的。裝置證書在産線進行預置,裝置證書的私鑰寫入并安全儲存在裝置的TEE環境中,且隻在TEE内進行使用。在必須傳輸使用者的敏感資料(例如密鑰、加密的生物特征等資訊)時,會在使用裝置證書進行安全環境驗證後,建立從一個裝置的TEE到另一裝置的TEE之間的安全通道,實作安全傳輸。如圖1所示。
圖1 裝置證書使用示意圖
正确地使用資料
在分布式終端場景下,需要確定使用者能夠正确地使用資料。HarmonyOS圍繞資料的生成、存儲、使用、傳輸以及銷毀過程進行全生命周期的保護,進而保證個人資料與隐私、以及系統的機密資料(如密鑰)不洩漏。
資料生成:根據資料所在的國家或組織的法律法規與标準規範,對資料進行分類分級,并且根據分類設定相應的保護等級。每個保護等級的資料從生成開始,在其存儲、使用、傳輸的整個生命周期都需要根據對應的安全政策提供不同強度的安全防護。虛拟超級終端的通路控制系統支援依據标簽的通路控制政策,保證資料隻能在可以提供足夠安全防護的虛拟終端之間存儲、使用和傳輸。
資料存儲:HarmonyOS通過區分資料的安全等級,存儲到不同安全防護能力的分區,對資料進行安全保護,并提供密鑰全生命周期的跨裝置無縫流動和跨裝置密鑰通路控制能力,支撐分布式身份認證協同、分布式資料共享等業務。
資料使用:HarmonyOS通過硬體為裝置提供可信執行環境。使用者的個人敏感資料僅在分布式虛拟終端的可信執行環境中進行使用,確定使用者資料的安全和隐私不洩露。
資料傳輸:為了保證資料在虛拟超級終端之間安全流轉,需要各裝置是正确可信的,建立了信任關系(多個裝置通過華為帳号建立配對關系),并能夠在驗證信任關系後,建立安全的連接配接通道,按照資料流動的規則,安全地傳輸資料。當裝置之間進行通信時,需要基于裝置的身份憑據對裝置進行身份認證,并在此基礎上,建立安全的加密傳輸通道。
資料銷毀:銷毀密鑰即銷毀資料。資料在虛拟終端的存儲,都建立在密鑰的基礎上。當銷毀資料時,隻需要銷毀對應的密鑰即完成了資料的銷毀。
兩大重點:分布式技術提升、生态開放
演講中,華為消費者業務軟體部總裁王成錄表示鴻蒙 2.0 相比 1.0 有一個非常大的提升,同時這是一個非常重要的裡程碑。一方面得益于分布式技術的提升,EMUI 的能力過去一年也已經全部重用在了鴻蒙 2.0 系統中;另一方面,鴻蒙 2.0 邁出了賦能第三方生态的第一步:華為已經将其開放給應用廠家做創新。
鴻蒙不是手機系統的簡單替代,是全場景的底座,其三大分布式能力分别是分布式軟總線、分布式資料管理和分布式安全的解決方案。
分布式軟總線
如下圖,分布式軟總線是整個鴻蒙系統的底座,其性能無限逼近硬總線的能力,讓多裝置可以融為一體,讓系統極速流暢。
在全融合自适應部分,鴻蒙系統實作了異構網絡融合,不同裝置可以互聯互通;自發現自連接配接,幾乎每次更換網絡都需要做很繁瑣的配置,基于鴻蒙系統的裝置配置一次就可以自發現自連接配接;三是動态時延校準,以音畫同步為例,如果把視訊流給大屏,音頻流給音箱,可以實作二者同步。
分布式資料管理
分布式的資料管理讓跨裝置資料處理如同本地一樣友善便捷。在分布式檔案系統層面,遠端檔案跨裝置之間的讀寫如果速度上不來将會很糟糕,華為比業界做的最好的 Samba 系統最低速度快四倍;分布式資料庫層面,跨裝置之間的讀取對比 ContentProvide(同裝置之間的讀取)速度提升了 1.3 倍;分布式檢索的速度比 iOS Core Spotlight 快 1.2 倍。
分布式安全
實際上,在分布式系統裡有非常好的機會可以突破單裝置上的單次元身份認證,在多裝置上可以通過多因子進行更強的身份認證,這樣不僅讓代碼可以一次編寫、多端運作,還可以讓裝置更加安全。
王成錄表示,華為可以将微核心彈性部署到任何裝置上,并會将該能力開放。在資料層面,華為設定了一系列規則,比如最進階别的資料一定要存在單體能力更強的裝置上,資料的流動一定要有規則,進階别可以通路低級别,反之不行。
開發工具平台:HUAWEI DevEco Studio
https://developer.harmonyos.com/cn/home/
DevEco Studio支援包括智慧屏、智能穿戴和輕量級智能穿戴的HarmonyOS應用開發,可以根據工程向導輕松建立适應于各類裝置的工程,并自動生成對應的代碼和資源模闆。同時,DevEco Studio還提供了多種程式設計語言供開發者進行HarmonyOS應用開發,包括Java、JS和C/C++三種程式設計語言,并支援多種語言的混合開發場景。是以,在建立對應裝置的工程時,工具會預置多種Ability的模闆,并推薦您使用适合的開發語言。
參考:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/software_install-0000001053582415
方舟編譯器
對計算機知識(領域)有一個宏觀的認識:https://www.zhihu.com/question/265434988
計算機科學領域,從底層向上依次是:
編譯器是連接配接人類世界與機器世界之間的一座橋梁,任何在手機上的程式都需要經曆軟體開發的過程,軟體開發使用的語言是易于程式員了解的進階語言,程式在手機上運作需要轉換成可以高效執行的機器碼,這樣的轉換過程就是由編譯器完成的。可以說編譯器是用來生成軟體的軟體,是連接配接軟體與晶片的橋梁,其性能,效率直接影響到最基礎的消費者體驗。
面向多裝置、支援多語言的統一程式設計平台。
OpenArkCompiler是來自華為方舟編譯器的開源項目。華為方舟編譯器(HuaWei Ark Compiler),靜态編譯,運作平台:HarmonyOS,EMUI,MagicUI等。
OpenArkCompiler 四個技術特點
能夠将不同語言代碼編譯成一套可執行檔案,在運作環境中高效執行:
支援多語言聯合優化、消除跨語言調用開銷;
更輕量的語言運作時;
軟硬協同充分發揮硬體能效;
支援多樣化的終端裝置平台。
源代碼:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/home
官網:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/readme
方舟編譯器改變了系統及應用的編譯和運作機制,直接将進階語言編譯成機器碼,讓手機能直接聽懂“進階語言”,消除了虛拟機動态編譯的額外開銷,提升了手機運作效率。
同時,方舟編譯器還能夠了解程式特征、使用适合的指令來執行程式,是以能夠極大程度地發揮出晶片的能力。
目前,方舟編譯器聚焦在 Java 代碼性能上,未來,方舟編譯器将覆寫多種程式設計語言(包括 C/C++、JS 等),多種晶片架構(包括CPU、GPU、IPU等),覆寫更廣的業務場景。
物聯網時代的創新
https://www.openatom.org/#/indexPage
注冊成為華為開發者
https://developer.huawei.com/consumer/cn/
“開放原子”開源基金會
“開放原子”開源基金會:https://www.openatom.org/#/indexPage
OpenHarmony 的目标是支援可在多種終端裝置上運作。既可運作在百 KB 級别的資源受限裝置和穿戴類裝置上,也可運作在百 MB 級别的智能家用攝像頭、行車記錄儀等相對資源豐富的裝置上,以及 GB 級别的智能電視等裝置上。第一個版本支援 128KB-128MB 的記憶體裝置。
技術價值:OpenHarmony 采用了元件化的設計方案,可以根據裝置的資源能力和業務特征進行靈活裁剪,滿足不同形态的終端裝置對于作業系統的要求。
業務價值:将廣泛應用在智能家居物聯網終端、智能穿戴、智慧大屏、汽車智能座艙、音箱等智能終端,提供全場景跨裝置的極緻體驗。
生态價值:對裝置開發者而言,OpenHarmony 采用了元件化的設計方案,可以根據裝置的資源能力和業務特征進行靈活裁剪,滿足不同形态的終端裝置對于作業系統的要求。對應用開發者而言,OpenHarmony 統一軟體架構打通了多種終端,使得應用程式的開發實作與不同終端裝置的形态差異無關,降低了開發難度和成本。這能夠讓開發者聚焦上層業務邏輯、便捷開發應用程式。