HarmonyOS是一款面向萬物互聯時代的、全新的分布式操作系統。在傳統的單設備系統能力基礎上,HarmonyOS提出了基于同一套系統能力、適配多種終端形態的分布式理念。
為了實現“基于同一套系統能力、適配多種終端形態”,HarmonyOS采用了“組件化”的設計方案,實現根據設備的資源能力和業務特征靈活裁剪,滿足不同形態終端設備對操作系統的要求。
一、為什么采用“組件化”設計方案?
分層架構是最為流行、應用最為廣泛的軟件架構設計方式,將整個軟件系統自頂而下垂直劃分成若干個層級,對每一層的系統能力、特定行為進行抽象。層級之間單向依賴,上層使用下層的各種服務,而下層對上層不感知。每一層對自己的上層提供接口的同時,隱藏內部實現細節。
對于中小規模系統,基于架構分層可以較好地解決系統架構解耦和跨團隊協作問題,每一層提供一定的業務功能,可以由不同的小團隊負責每一層不同的業務交付。然而,對于操作系統這么龐大的軟件系統,只有架構分層還是遠遠不夠的,因為每一層都很復雜,同一分層內不同模塊之間相互依賴、無序調用。如果沒有進一步的組件化架構,絕對會給軟件工程和項目管理帶來巨大的災難。
基于以上原因,HarmonyOS采用了組件化的設計方案,先對復雜的操作系統進行架構分層,再對每一層進行組件化。
下面我們就來具體看看HarmonyOS的“組件化”設計方案。
二、“組件化”設計方案詳解
1. HarmonyOS架構分層
首先,我們來看看HarmonyOS系統是如何架構分層的。
如圖2所示,HarmonyOS劃分為以下層級:
應用層:由應用開發者交付,向最終消費者提供UI接口,為消費者體驗負責。應用層向下僅依賴于框架層提供的API,應用開發僅依賴于HarmonyOS發布的SDK。
框架層、系統服務層和內核層:這三個層級屬于HarmonyOS基礎平臺,由HarmonyOS平臺開發者交付,面向北向應用生態提供API和SDK,面向南向設備生態提供Driver Interface和DDK(Driver Development Kit,驅動開發包)。
驅動層:由設備開發者交付,向HarmonyOS提供器件驅動實現。驅動層僅依賴于驅動框架提供的Driver Interface,驅動開發僅依賴于HarmonyOS發布的DDK。
我們通過架構分層對HarmonyOS操作系統進行大顆粒系統解構,方便不同的生態參與方。參與方既可以相對獨立,又可以相互協作,共同構建形形色色的智能終端設備和豐富的應用軟件,為消費者帶來全場景智慧服務體驗。
2. HarmonyOS基礎平臺組件化
HarmonyOS基礎平臺涉及框架層、系統服務層和內核層三部分,HarmonyOS對這三個層級進行了進一步的組件化設計。
內核層組件化
如圖3所示,內核層包括LiteOS、Linux和驅動框架三個組件。
LiteOS和Linux組件可以按需部署在不同設備之上。這兩個組件向系統服務層提供POSIX(Portable Operating System Interface,可移植操作系統接口)和CMSIS(Common Microcontroller Software Interface Standard,通用微處理器軟件接口標準)接口,用于屏蔽不同的內核實現差異。
驅動框架組件向驅動層提供了Driver Interface和DDK,向系統服務層提供標準化的硬件操作接口HDI(HarmonyOS Driver Interface)。
框架層/系統服務層組件化
HarmonyOS系統架構分層根據功能定位區分了系統服務層和框架層,系統服務層是所有系統服務的匯總,通過框架層向應用暴露API。單個系統能力實現通常分布在系統服務層和框架層,考慮到系統服務和框架緊密耦合,在HarmonyOS中未統一定義系統服務層和框架層之間的層間接口。如圖4所示,HarmonyOS將同一個功能實現的系統服務和框架組合在一起,形成一個個獨立的“組件”,每個組件提供一個的系統能力和對應的API接口。組件之間基于InnerSDK完成解耦,支持組件獨立代碼下載、獨立編譯、獨立測試和組件拼裝。
三、HarmonyOS如何在多終端部署?
通過“組件化”設計后,HarmonyOS支持根據設備的資源能力和業務特征靈活裁剪,滿足不同形態終端設備對操作系統的要求。也就是說,一套HarmonyOS可以部署到不同的終端設備上。
為了部署在不同形態的終端設備上,HarmonyOS細分為以下四種基本系統規格:
輕量系統(mini system)
面向MCU(Micro Control Unit,微控制單元)類處理器的設備,支持的設備最小內存為128KiB,如智能家居領域的連接類模組、傳感器設備、穿戴類設備等。
可以提供多種輕量級網絡協議,輕量級的圖形框架,以及豐富的IoT總線讀寫組件等。
小型系統(small system)
面向應用處理器的設備,支持的設備最小內存為1MiB,如智能家居領域的IP Camera、電子貓眼、路由器以及行車記錄儀等。
可以提供更高的安全能力,標準的圖形框架,以及視頻編解碼的多媒體能力。
標準系統(standard system)
面向應用處理器的設備,支持的設備最小內存為128MiB,如帶屏IoT設備、智能手機。
可以提供增強的交互能力,3D GPU和硬件合成能力,更多控件和動效更豐富的圖形能力,以及完整的應用框架。
大型系統(large system)
面向應用處理器的設備,支持的設備最小內存為1GiB,如智慧屏、智能手表等。
可以提供支持兼容三方OS系統的應用框架。
HarmonyOS根據不同的系統規格,分別定義了最小系統必選組件集和對應的可選組件集。產品部署HarmonyOS時,根據系統規格類型選擇對應的最小系統必選組件集,同時根據不同產品的差異化功能需要選擇可選組件。基于組件間依賴管理,如果某個可選組件被選擇,相應該組件依賴的其他組件也會自動被打包到HarmonyOS系統。
在開發者資源中心DevEco Marketplace可以進行組件管理,靈活拼裝出不同的產品解決方案。DevEco Marketplace的詳細介紹,請參見往期推文。
DevEco Marketplace鏈接如下:https://repo.harmonyos.com
組件是拼裝HarmonyOS的一個個零部件。每個組件都提供一定的系統能力,一些組件還涉及面向應用暴露API接口。不同組件組合部署到特定設備上,面向應用提供的API能力會存在差異。本文我們就組件的部署原理做了詳細說明,后續我們還將對組件化架構下的組件運行態管理、SDK管理與應用分發原理做進一步的詳細解析,敬請期待!
責任編輯:haq
-
操作系統
+關注
關注
37文章
6825瀏覽量
123332 -
終端
+關注
關注
1文章
1135瀏覽量
29881 -
HarmonyOS
+關注
關注
79文章
1975瀏覽量
30194
原文標題:一文帶你看懂HarmonyOS如何適配多種終端
文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論