前兩天,華爲發佈了HarmonyOS 2.0,俺也趕個時髦,給你們簡單介紹下HarmonyOS。安全
定義
首先,咱們來看一下官方對HarmonyOS的定義。根據官方的定義,HarmonyOS是一款「面向將來」、面向全場景(移動辦公、運動健康、社交通訊、媒體娛樂等)的分佈式操做系統。在傳統的單設備系統能力的基礎上,HarmonyOS提出了基於同一套系統能力、適配多種終端形態的分佈式理念,可以支持多種終端設備的能力。網絡
- 對消費者而言,HarmonyOS可以將生活場景中的各種終端進行能力整合,造成一個「超級虛擬終端」,能夠實現不一樣的終端設備之間的快速鏈接、能力互助、資源共享,匹配合適的設備、提供流暢的全場景體驗。
- 對應用開發者而言,HarmonyOS採用了多種分佈式技術,使得應用程序的開發實現與不一樣終端設備的形態差別無關,下降了開發難度和成本。這可以讓開發者聚焦上層業務邏輯,更加便捷、高效地開發應用。
- 對設備開發者而言,HarmonyOS採用了組件化的設計方案,能夠根據設備的資源能力和業務特徵進行靈活裁剪,知足不一樣形態的終端設備對於操做系統的要求。
技術特性
硬件互助,資源共享
1,分佈式軟總線
分佈式軟總線是多種終端設備的統一基座,爲設備之間的互聯互通提供了統一的分佈式通訊能力,可以快速發現並鏈接設備,高效地分發任務和傳輸數據,分佈式軟總線示意圖以下圖所示。
架構
2,分佈式設備虛擬化
分佈式設備虛擬化平臺能夠實現不一樣設備的資源融合、設備管理、數據處理,多種設備共同造成一個超級虛擬終端。針對不一樣類型的任務,爲用戶匹配並選擇能力合適的執行硬件,讓業務連續地在不一樣設備間流轉,充分發揮不一樣設備的資源優點,分佈式設備虛擬化示意圖以下圖所示。
框架
3,分佈式數據管理
分佈式數據管理基於分佈式軟總線的能力,實現應用程序數據和用戶數據的分佈式管理。用戶數據再也不與單一物理設備綁定,業務邏輯與數據存儲分離,應用跨設備運行時數據無縫銜接,爲打造一致、流暢的用戶體驗創造了基礎條件。分佈式數據管理示意圖以下圖所示。分佈式
4,分佈式任務調度
分佈式任務調度基於分佈式軟總線、分佈式數據管理、分佈式Profile等技術特性,構建統一的分佈式服務管理(發現、同步、註冊、調用)機制,支持對跨設備的應用進行遠程啓動、遠程調用、遠程鏈接以及遷移等操做,可以根據不一樣設備的能力、位置、業務運行狀態、資源使用狀況,以及用戶的習慣和意圖,選擇合適的設備運行分佈式任務。如下圖的應用遷移爲例,簡要地展現了分佈式任務調度能力。
組件化
一次開發,多端部署
HarmonyOS提供了用戶程序框架、Ability框架以及UI框架,支持應用開發過程當中多終端的業務邏輯和界面邏輯進行復用,可以實現應用的一次開發、多端部署,提高了跨設備應用的開發效率。一次開發、多端部署示意圖以下圖所示。加密
統一OS,彈性部署
HarmonyOS經過組件化和小型化等設計方法,支持多種終端設備按需彈性部署,可以適配不一樣類別的硬件資源和功能需求。支撐經過編譯鏈關係去自動生成組件化的依賴關係,造成組件樹依賴圖,支撐產品系統的便捷開發,下降硬件設備的開發門檻。spa
- 支持各組件的選擇(組件無關緊要):根據硬件的形態和需求,能夠選擇所需的組件。
- 支持組件內功能集的配置(組件可大可小):根據硬件的資源狀況和功能需求,能夠選擇配置組件中的功能集。例如,選擇配置圖形框架組件中的部分控件。
- 支持組件間依賴的關聯(平臺可大可小):根據編譯鏈關係,能夠自動生成組件化的依賴關係。例如,選擇圖形框架組件,將會自動選擇依賴的圖形引擎組件等。
技術架構
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界面,提供後臺運行任務的能力以及統一的數據訪問抽象。基於FA/PA開發的應用,可以實現特定的業務功能,支持跨設備調度與分發,爲用戶提供一致、高效的應用體驗。
系統安全
在搭載HarmonyOS的分佈式終端上,能夠保證「正確的人,經過正確的設備,正確地使用數據」。
- 經過「分佈式多端協同身份認證」來保證「正確的人」。
- 經過「在分佈式終端上構築可信運行環境」來保證「正確的設備」。
- 經過「分佈式數據在跨終端流動的過程當中,對數據進行分類分級管理」來保證「正確地使用數據」。
正確的設備
在分佈式終端場景下,只有保證用戶使用的設備是安全可靠的,才能保證用戶數據在虛擬終端上獲得有效保護,避免用戶隱私泄露。
- 安全啓動確保源頭每一個虛擬設備運行的系統固件和應用程序是完整的、未經篡改的。經過安全啓動,各個設備廠商的鏡像包就不易被非法替換爲惡意程序,從而保護用戶的數據和隱私安全。
- 可信執行環境提供了基於硬件的可信執行環境(TEE,Trusted Execution Environment)來保護用戶的我的敏感數據的存儲和處理,確保數據不泄露。因爲分佈式終端硬件的安全能力不一樣,對於用戶的敏感我的數據,須要使用高安全等級的設備進行存儲和處理。HarmonyOS使用基於數學可證實的形式化開發和驗證的TEE微內核,得到了商用OS內核CC EAL5+的認證評級。
- 設備證書認證支持爲具有可信執行環境的設備預置設備證書,用於向其餘虛擬終端證實本身的安全能力。對於有TEE環境的設備,經過預置PKI(Public Key Infrastructure)設備證書給設備身份提供證實,確保設備是合法製造生產的。設備證書在產線進行預置,設備證書的私鑰寫入並安全保存在設備的TEE環境中,且只在TEE內進行使用。在必須傳輸用戶的敏感數據(例如密鑰、加密的生物特徵等信息)時,會在使用設備證書進行安全環境驗證後,創建從一個設備的TEE到另外一設備的TEE之間的安全通道,實現安全傳輸,以下圖所示。
正確地使用數據
在分佈式終端場景下,須要確保用戶可以正確地使用數據。HarmonyOS圍繞數據的生成、存儲、使用、傳輸以及銷燬過程進行全生命週期的保護,從而保證我的數據與隱私、以及系統的機密數據(如密鑰)不泄漏。
- 數據生成:根據數據所在的國家或組織的法律法規與標準規範,對數據進行分類分級,而且根據分類設置相應的保護等級。每一個保護等級的數據從生成開始,在其存儲、使用、傳輸的整個生命週期都須要根據對應的安全策略提供不一樣強度的安全防禦。虛擬超級終端的訪問控制系統支持依據標籤的訪問控制策略,保證數據只能在能夠提供足夠安全防禦的虛擬終端之間存儲、使用和傳輸。
- 數據存儲:HarmonyOS經過區分數據的安全等級,存儲到不一樣安全防禦能力的分區,對數據進行安全保護,並提供密鑰全生命週期的跨設備無縫流動和跨設備密鑰訪問控制能力,支撐分佈式身份認證協同、分佈式數據共享等業務。
- 數據使用:HarmonyOS經過硬件爲設備提供可信執行環境。用戶的我的敏感數據僅在分佈式虛擬終端的可信執行環境中進行使用,確保用戶數據的安全和隱私不泄露。
- 數據傳輸:爲了保證數據在虛擬超級終端之間安全流轉,須要各設備是正確可信的,創建了信任關係(多個設備經過華爲賬號創建配對關係),並可以在驗證信任關係後,創建安全的鏈接通道,按照數據流動的規則,安全地傳輸數據。當設備之間進行通訊時,須要基於設備的身份憑據對設備進行身份認證,並在此基礎上,創建安全的加密傳輸通道。
數據銷燬:銷燬密鑰即銷燬數據。數據在虛擬終端的存儲,都創建在密鑰的基礎上。當銷燬數據時,只須要銷燬對應的密鑰即完成了數據的銷燬。
參考:鴻蒙學堂