一. 鴻蒙OS整體介紹
華為發布了HarmonyOS 2.0,俺也趕個時髦,給大家簡單介紹下HarmonyOS。
定義
首先,我們來看一下官方對HarmonyOS的定義。根據官方的定義,HarmonyOS是一款“面向未來”、面向全場景(移動辦公、運動健康、社交通信、媒體娛樂等)的分布式操作系統。在傳統的單設備系統能力的基礎上,HarmonyOS提出了基于同一套系統能力、適配多種終端形態的分布式理念,能夠支持多種終端設備的能力。
對消費者而言,HarmonyOS能夠將生活場景中的各類終端進行能力整合,形成一個“超級虛擬終端”,可以實現不同的終端設備之間的快速連接、能力互助、資源共享,匹配合適的設備、提供流暢的全場景體驗。
對應用開發者而言,HarmonyOS采用了多種分布式技術,使得應用程序的開發實現與不同終端設備的形態差異無關,降低了開發難度和成本。這能夠讓開發者聚焦上層業務邏輯,更加便捷、高效地開發應用。
對設備開發者而言,HarmonyOS采用了組件化的設計方案,可以根據設備的資源能力和業務特征進行靈活裁剪,滿足不同形態的終端設備對于操作系統的要求。
技術特性
硬件互助,資源共享
1,分布式軟總線
分布式軟總線是多種終端設備的統一基座,為設備之間的互聯互通提供了統一的分布式通信能力,能夠快速發現并連接設備,高效地分發任務和傳輸數據,分布式軟總線示意圖如下圖所示。
2,分布式設備虛擬化
分布式設備虛擬化平臺可以實現不同設備的資源融合、設備管理、數據處理,多種設備共同形成一個超級虛擬終端。針對不同類型的任務,為用戶匹配并選擇能力合適的執行硬件,讓業務連續地在不同設備間流轉,充分發揮不同設備的資源優勢,分布式設備虛擬化示意圖如下圖所示。
3,分布式數據管理
分布式數據管理基于分布式軟總線的能力,實現應用程序數據和用戶數據的分布式管理。用戶數據不再與單一物理設備綁定,業務邏輯與數據存儲分離,應用跨設備運行時數據無縫銜接,為打造一致、流暢的用戶體驗創造了基礎條件。分布式數據管理示意圖如下圖所示。
4,分布式任務調度
分布式任務調度基于分布式軟總線、分布式數據管理、分布式Profile等技術特性,構建統一的分布式服務管理(發現、同步、注冊、調用)機制,支持對跨設備的應用進行遠程啟動、遠程調用、遠程連接以及遷移等操作,能夠根據不同設備的能力、位置、業務運行狀態、資源使用情況,以及用戶的習慣和意圖,選擇合適的設備運行分布式任務。以下圖的應用遷移為例,簡要地展示了分布式任務調度能力。
一次開發,多端部署
HarmonyOS提供了用戶程序框架、Ability框架以及UI框架,支持應用開發過程中多終端的業務邏輯和界面邏輯進行復用,能夠實現應用的一次開發、多端部署,提升了跨設備應用的開發效率。一次開發、多端部署示意圖如下圖所示。
統一OS,彈性部署
HarmonyOS通過組件化和小型化等設計方法,支持多種終端設備按需彈性部署,能夠適配不同類別的硬件資源和功能需求。支撐通過編譯鏈關系去自動生成組件化的依賴關系,形成組件樹依賴圖,支撐產品系統的便捷開發,降低硬件設備的開發門檻。
支持各組件的選擇(組件可有可無):根據硬件的形態和需求,可以選擇所需的組件。
支持組件內功能集的配置(組件可大可?。焊鶕布馁Y源情況和功能需求,可以選擇配置組件中的功能集。例如,選擇配置圖形框架組件中的部分控件。
支持組件間依賴的關聯(平臺可大可?。焊鶕幾g鏈關系,可以自動生成組件化的依賴關系。例如,選擇圖形框架組件,將會自動選擇依賴的圖形引擎組件等。
技術架構
HarmonyOS整體遵從分層設計,從下向上依次為:內核層、系統服務層、框架層和應用層。系統功能按照“系統 > 子系統 > 功能/模塊”逐級展開,在多設備部署場景下,支持根據實際需求裁剪某些非必要的子系統或功能/模塊。HarmonyOS技術架構如下圖所示。
內核層
HarmonyOS系統分為內核子系統和驅動子系統。
內核子系統: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界面,提供后臺運行任務的能力以及統一的數據訪問抽象?;贔A/PA開發的應用,能夠實現特定的業務功能,支持跨設備調度與分發,為用戶提供一致、高效的應用體驗。
系統安全
在搭載HarmonyOS的分布式終端上,可以保證“正確的人,通過正確的設備,正確地使用數據”。
通過“分布式多端協同身份認證”來保證“正確的人”。
通過“在分布式終端上構筑可信運行環境”來保證“正確的設備”。
通過“分布式數據在跨終端流動的過程中,對數據進行分類分級管理”來保證“正確地使用數據”。
正確的設備
在分布式終端場景下,只有保證用戶使用的設備是安全可靠的,才能保證用戶數據在虛擬終端上得到有效保護,避免用戶隱私泄露。
安全啟動確保源頭每個虛擬設備運行的系統固件和應用程序是完整的、未經篡改的。通過安全啟動,各個設備廠商的鏡像包就不易被非法替換為惡意程序,從而保護用戶的數據和隱私安全。
可信執行環境提供了基于硬件的可信執行環境(TEE,Trusted Execution Environment)來保護用戶的個人敏感數據的存儲和處理,確保數據不泄露。由于分布式終端硬件的安全能力不同,對于用戶的敏感個人數據,需要使用高安全等級的設備進行存儲和處理。HarmonyOS使用基于數學可證明的形式化開發和驗證的TEE微內核,獲得了商用OS內核CC EAL5+的認證評級。
設備證書認證支持為具備可信執行環境的設備預置設備證書,用于向其他虛擬終端證明自己的安全能力。對于有TEE環境的設備,通過預置PKI(Public Key Infrastructure)設備證書給設備身份提供證明,確保設備是合法制造生產的。設備證書在產線進行預置,設備證書的私鑰寫入并安全保存在設備的TEE環境中,且只在TEE內進行使用。在必須傳輸用戶的敏感數據(例如密鑰、加密的生物特征等信息)時,會在使用設備證書進行安全環境驗證后,建立從一個設備的TEE到另一設備的TEE之間的安全通道,實現安全傳輸,如下圖所示。
正確地使用數據
在分布式終端場景下,需要確保用戶能夠正確地使用數據。HarmonyOS圍繞數據的生成、存儲、使用、傳輸以及銷毀過程進行全生命周期的保護,從而保證個人數據與隱私、以及系統的機密數據(如密鑰)不泄漏。
數據生成:根據數據所在的國家或組織的法律法規與標準規范,對數據進行分類分級,并且根據分類設置相應的保護等級。每個保護等級的數據從生成開始,在其存儲、使用、傳輸的整個生命周期都需要根據對應的安全策略提供不同強度的安全防護。虛擬超級終端的訪問控制系統支持依據標簽的訪問控制策略,保證數據只能在可以提供足夠安全防護的虛擬終端之間存儲、使用和傳輸。
數據存儲:HarmonyOS通過區分數據的安全等級,存儲到不同安全防護能力的分區,對數據進行安全保護,并提供密鑰全生命周期的跨設備無縫流動和跨設備密鑰訪問控制能力,支撐分布式身份認證協同、分布式數據共享等業務。
數據使用:HarmonyOS通過硬件為設備提供可信執行環境。用戶的個人敏感數據僅在分布式虛擬終端的可信執行環境中進行使用,確保用戶數據的安全和隱私不泄露。
數據傳輸:為了保證數據在虛擬超級終端之間安全流轉,需要各設備是正確可信的,建立了信任關系(多個設備通過華為帳號建立配對關系),并能夠在驗證信任關系后,建立安全的連接通道,按照數據流動的規則,安全地傳輸數據。當設備之間進行通信時,需要基于設備的身份憑據對設備進行身份認證,并在此基礎上,建立安全的加密傳輸通道。
數據銷毀:銷毀密鑰即銷毀數據。數據在虛擬終端的存儲,都建立在密鑰的基礎上。當銷毀數據時,只需要銷毀對應的密鑰即完成了數據的銷毀。
二. 子系統架構
三. 關鍵技術
華為鴻蒙OS的四大技術特性
鴻蒙OS的設計初衷是為滿足全場景智慧體驗的高標準的連接要求,為此華為提出了4大特性的系統解決方案。
分布式架構首次用于終端OS,實現跨終端無縫協同體驗
鴻蒙OS的“分布式OS架構”和“分布式軟總線技術”通過公共通信平臺,分布式數據管理,分布式能力調度和虛擬外設四大能力,將相應分布式應用的底層技術實現難度對應用開發者屏蔽,使開發者能夠聚焦自身業務邏輯,像開發同一終端一樣開發跨終端分布式應用,也使最終消費者享受到強大的跨終端業務協同能力為各使用場景帶來的無縫體驗。
確定時延引擎和高性能IPC技術實現系統天生流暢
鴻蒙 OS通過使用確定時延引擎和高性能IPC兩大技術解決現有系統性能不足的問題。確定時延引擎可在任務執行前分配系統中任務執行優先級及時限進行調度處理,優先級高的任務資源將優先保障調度,應用響應時延降低25.7%。鴻蒙微內核結構小巧的特性使IPC(進程間通信)性能大大提高,進程通信效率較現有系統提升5倍。
基于微內核架構重塑終端設備可信安全
鴻蒙OS采用全新的微內核設計,擁有更強的安全特性和低時延等特點。微內核設計的基本思想是簡化內核功能,在內核之外的用戶態盡可能多地實現系統服務,同時加入相互之間的安全保護。微內核只提供最基礎的服務,比如多進程調度和多進程通信等。
鴻蒙OS將微內核技術應用于可信執行環境(TEE),通過形式化方法,重塑可信安全。形式化方法是利用數學方法,從源頭驗證系統正確,無漏洞的有效手段。傳統驗證方法如功能驗證,模擬攻擊等只能在選擇的有限場景進行驗證,而形式化方法可通過數據模型驗證所有軟件運行路徑。 鴻蒙OS首次將形式化方法用于終端TEE,顯著提升安全等級。同時由于鴻蒙OS微內核的代碼量只有Linux宏內核的千分之一,其受攻擊幾率也大幅降低。
通過統一IDE支撐一次開發,多端部署,實現跨終端生態共享
鴻蒙OS憑借多終端開發IDE,多語言統一編譯,分布式架構Kit提供屏幕布局控件以及交互的自動適配,支持控件拖拽,面向預覽的可視化編程,從而使開發者可以基于同一工程高效構建多端自動運行App,實現真正的一次開發,多端部署,在跨設備之間實現共享生態。華為方舟編譯器是首個取代Android虛擬機模式的靜態編譯器,可供開發者在開發環境中一次性將高級語言編譯為機器碼。此外,方舟編譯器未來將支持多語言統一編譯,可大幅提高開發效率。
四. 參考資料
通過以下材料可進一步了解:
1)微內核和宏內核的差異,為什么鴻蒙選擇微內核;
2)方舟編譯器的原理和作用,已經它所解決的核心技術問題。
HarmonyOS鴻蒙操作系統的研發歷程:微內核、方舟編譯器、IOT生態等
編輯:hfy
-
IPC
+關注
關注
3文章
349瀏覽量
51954 -
鴻蒙系統
+關注
關注
183文章
2636瀏覽量
66430
發布評論請先 登錄
相關推薦
評論