鴻蒙系統(OpenHarmony HarmonyOS):面向全場景的分散式作業系統

佚名發表於2021-12-09

  OpenHarmony是開放原子開源基金會(OpenAtom Foundation)旗下開源專案,定位是一款面向全場景的開源分散式操作系統

  OpenHarmony在傳統的單裝置系統能力的基礎上,創造性地提出了基於同一套系統能力、適配多種終端形態的理念,支援多種終端裝置上執行,第一個版本支援128K~128M裝置上執行,歡迎參加開源社群一起持續演進。針對裝置開發者,OpenHarmony採用了元件化的設計方案,可以根據裝置的資源能力和業務特徵進行靈活裁剪,滿足不同形態的終端裝置對於作業系統的要求。可執行在百K級別的資源受限裝置和穿戴類裝置,也可執行在百M級別的智慧家用攝像頭/行車記錄儀等相對資源豐富的裝置。技術架構

  OpenHarmony整體遵從分層設計,從下向上依次為:核心層、系統服務層、框架層和應用層。系統功能按照“系統 > 子系統 > 功能/模組”逐級展開,在多裝置部署場景下,支援根據實際需求裁剪某些非必要的子系統或功能/模組。OpenHarmony技術架構如下所示。

核心層

  • 核心子系統:採用多核心(Linux核心或者LiteOS)設計,支援針對不同資源受限裝置選用適合的OS核心。核心抽象層(KAL,Kernel Abstract Layer)透過遮蔽多核心差異,對上層提供基礎的核心能力,包括程序/執行緒管理、記憶體管理、檔案系統、網路管理和外設管理等。
  • 驅動子系統:驅動框架(HDF)是系統硬體生態開放的基礎,提供統一外設訪問能力和驅動開發、管理框架。

系統服務層

  系統服務層是OpenHarmony的核心能力集合,透過框架層對應用程式提供服務。該層包含以下幾個部分:

  • 系統基本能力子系統集:為分散式應用在多裝置上的執行、排程、遷移等操作提供了基礎能力,由分散式軟匯流排、分散式資料管理、分散式任務排程、公共基礎庫、多模輸入、圖形、安全、AI等子系統組成。
  • 基礎軟體服務子系統集:提供公共的、通用的軟體服務,由事件通知、電話、多媒體、DFX(Design For X) 等子系統組成。
  • 增強軟體服務子系統集:提供針對不同裝置的、差異化的能力增強型軟體服務,由智慧屏專有業務、穿戴專有業務、IoT專有業務等子系統組成。
  • 硬體服務子系統集:提供硬體服務,由位置服務、生物特徵識別、穿戴專有硬體服務、IoT專有硬體服務等子系統組成。

  根據不同裝置形態的部署環境,基礎軟體服務子系統集、增強軟體服務子系統集、硬體服務子系統集內部可以按子系統粒度裁剪,每個子系統內部又可以按功能粒度裁剪。

框架層

  框架層為應用開發提供了Java/C/C++/JS等多語言的使用者程式框架和Ability框架,兩種UI框架(包括適用於Java語言的Java UI框架、適用於JS語言的JS UI框架),以及各種軟硬體服務對外開放的多語言框架API。根據系統的元件化裁剪程度,裝置支援的API也會有所不同。

應用層

  應用層包括系統應用和第三方非系統應用。應用由一個或多個FA(Feature Ability)或PA(Particle Ability)組成。其中,FA有UI介面,提供與使用者互動的能力;而PA無UI介面,提供後臺執行任務的能力以及統一的資料訪問抽象。基於FA/PA開發的應用,能夠實現特定的業務功能,支援跨裝置排程與分發,為使用者提供一致、高效的應用體驗。

特點

1、硬體互助,資源共享

  主要透過下列模組達成

分散式軟匯流排

  分散式軟匯流排是多裝置終端的統一基座,為多裝置間無縫互聯提供了統一的分散式通訊能力,能夠快速發現並連線裝置,高效地傳輸任務和資料。

分散式資料管理

  分散式資料管理位於基於分散式軟匯流排之上的能力,實現了應用程式資料和使用者資料的分散式管理。使用者資料不再與單一物理裝置繫結,業務邏輯與資料儲存分離,應用跨裝置執行時資料無縫銜接,為打造一致、流暢的使用者體驗創造了基礎條件

分散式任務排程

  分散式任務排程基於分散式軟匯流排、分散式資料管理、分散式Profile等技術特性,構建統一的分散式服務管理(發現、同步、註冊、呼叫)機制,支援對跨裝置的應用進行遠端啟動、遠端呼叫、繫結/解綁、以及遷移等操作,能夠根據不同裝置的能力、位置、業務執行狀態、資源使用情況並結合使用者的習慣和意圖,選擇最合適的裝置執行分散式任務

  裝置虛擬化 分散式裝置虛擬化平臺可以實現不同裝置的資源融合、裝置管理、資料處理,將周邊裝置作為手機能力的延伸,共同形成一個超級虛擬終端。

2、一次開發,多端部署

  OpenHarmony提供使用者程式框架、Ability框架以及UI框架,能夠保證開發的應用在多終端執行時保證一致性。一次開發、多端部署。

  • 多終端軟體平臺API具備一致性,確保使用者程式的執行相容性。 支援在開發過程中預覽終端的能力適配情況(CPU/記憶體/外設/軟體資源等)。
  • 支援根據使用者程式與軟體平臺的相容性來排程使用者呈現。

3、統一OS,彈性部署

  OpenHarmony透過元件化和元件彈性化等設計方法,做到硬體資源的可大可小,在多種終端裝置間,按需彈性部署,全面覆蓋了ARM、RISC-V、x86等各種CPU,從百KB到GB級別的RAM。 裝置型別

OpenHarmony支援如下幾種裝置型別:

輕量系統類裝置(參考記憶體≥128KB)

  面向MCU類處理器,例如Arm Cortex-M、RISC-V 32位的裝置,資源極其有限,參考記憶體≥128KB,提供豐富的近距連線能力以及豐富的外設匯流排訪問能力。典型產品有智慧家居領域的聯接類模組、感測器裝置等。聯接類模組通常應用在智慧物聯網裝置中,負責實現聯接部分的硬體模組,在智慧家居領域由廠家整合到其裝置中。例如:聯接類模組提供WLAN/Bluetooth的接入和資料的聯接,模組與廠家家居的晶片通常透過UART或GPIO等匯流排介面進行通訊。

小型系統類裝置(參考記憶體≥1MB)

  面向應用處理器,例如Arm Cortex-A的裝置,參考記憶體≥1MB,提供更高的安全能力,提供標準的圖形框架,提供影片編解碼的多媒體能力。典型產品有智慧家居領域的IPCamera、電子貓眼、路由器以及智慧出行域的行車記錄儀等。

標準系統類裝置(參考記憶體≥128MB)

  面向應用處理器,例如Arm Cortex-A的裝置,參考記憶體≥128MB,提供增強的互動能力,提供3D GPU以及硬體合成能力,提供更多控制元件以及動效更豐富的圖形能力,提供完整的應用框架。典型產品有高階的冰箱螢幕等。

大型系統類裝置(參考記憶體≥1GB)

  面向應用處理器,例如Arm Cortex-A的裝置,參考記憶體≥1GB,提供完整的相容應用框架。典型的產品有智慧屏、智慧手錶等。

相關文章