OpenHarmony HarmonyOS-面向全場景的分布式操作系統
軟件簡介
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開發的應用,能夠實現特定的業務功能,支持跨設備調度與分發,為用戶提供一致、高效的應用體驗。
特點
硬件互助,資源共享
主要通過下列模塊達成
分布式軟總線
分布式軟總線是多設備終端的統一基座,為多設備間無縫互聯提供了統一的分布式通信能力,能夠快速發現并連接設備,高效地傳輸任務和數據。
分布式數據管理
分布式數據管理位于基于分布式軟總線之上的能力,實現了應用程序數據和用戶數據的分布式管理。用戶數據不再與單一物理設備綁定,業務邏輯與數據存儲分離,應用跨設備運行時數據無縫銜接,為打造一致、流暢的用戶體驗創造了基礎條件
分布式任務調度
分布式任務調度基于分布式軟總線、分布式數據管理、分布式Profile等技術特性,構建統一的分布式服務管理(發現、同步、注冊、調用)機制,支持對跨設備的應用進行遠程啟動、遠程調用、綁定/解綁、以及遷移等操作,能夠根據不同設備的能力、位置、業務運行狀態、資源使用情況并結合用戶的習慣和意圖,選擇最合適的設備運行分布式任務
設備虛擬化
分布式設備虛擬化平臺可以實現不同設備的資源融合、設備管理、數據處理,將周邊設備作為手機能力的延伸,共同形成一個超級虛擬終端。
一次開發,多端部署
OpenHarmony提供用戶程序框架、Ability框架以及UI框架,能夠保證開發的應用在多終端運行時保證一致性。一次開發、多端部署。
多終端軟件平臺API具備一致性,確保用戶程序的運行兼容性。
支持在開發過程中預覽終端的能力適配情況(CPU/內存/外設/軟件資源等)。
支持根據用戶程序與軟件平臺的兼容性來調度用戶呈現。
統一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,提供完整的兼容應用框架。典型的產品有智慧屏、智能手表等。
詳細特征
入口:https://gitee.com/openharmony/docs/tree/master/zh-cn/readme
*本次開源部分主要支持百K級,百M級設備,以下內容主要介紹涉及到的相關子系統內容。
系 統簡 介鏈 接
JS應用開發框架作為JS應用開發框架的輕量實現,提供一套跨平臺的類web應用開發框架,通過Toolkit將開發者編寫的HTML、CSS和JS 文件編譯打包成JS Bundle,然后再將JS Bundle解析運行成C++ UIKit的View 組件進行渲染。通過支持三方開發者使用聲明式的API進行應用開發,以數據驅動視圖變化,避免了大量的視圖操作,大幅降低應用開發難度,提升開發者開發體驗。README
DFX針對不同硬件架構和資源提供組件化且可定制的DFX框架。根據RISC-V、Cortex-M、Cortex-A不同硬件平臺,提供兩種不同的輕量級DFX框架。README
XTS認證XTS是OpenHarmony生態認證測試套件的集合,當前包括acts(application compatibility test suite)應用兼容性測試套,后續會拓展dcts(device compatibility test suite)設備兼容性測試套等。README
全球化全球化資源管理子系統主要提供語言資源回溯和多偏好語言支持的能力,包括多語言資源回溯和多偏好語言支持。README
公共基礎公共基礎庫存放OpenHarmony通用的基礎組件。這些基礎組件可被OpenHarmony各業務子系統及上層應用所使用。README
內核OpenHarmony內核是面向IoT領域的實時操作系統內核,它具備類似RTOS般輕快和Linux般易用的特點。包括功能組件部分:進程和線程調度、內存管理、IPC機制、timer管理等操作系統基礎組件。README
分布式任務調度分布式任務調度模塊負責跨設備組件管理,提供訪問和控制遠程組件的能力,支持分布式場景下的應用協同。README
分布式軟總線實現近場設備間統一的分布式通信能力管理,提供不區分鏈路的設備發現和傳輸接口。包含服務發布、數據傳輸、安全等功能。README
啟動恢復啟動恢復負責在內核啟動之后,應用啟動之前的操作系統中間層的啟動。支持使用LiteOS-A內核的平臺,當前包括:Hi3516DV300平臺和Hi3518EV300平臺。README
圖形主要包括UI組件、布局、動畫、字體、輸入事件、窗口管理、渲染繪制等模塊,構建基于輕量OS的應用框架,滿足硬件資源較小的物聯網設備的OpenHarmony系統應用開發。README
媒體為多媒體應用開發者提供統一的開發接口,使得開發者可以專注于應用業務的開發,輕松使用多媒體的資源。README
安全主要提供樣例給開發者展示如何去使用已有的安全機制來提升系統的安全能力,包括安全啟動、應用權限管理、IPC通信鑒權、HUKS、HiChain、應用簽名驗簽。README
測試開發過程采用測試驅動開發模式,開發者基于系統新增特性可以通過開發者自己開發用例保證,對于系統已有特性的修改,也可通過修改項目中原有自測試用例保證,旨在幫助開發者在開發階段就能開發出高質量代碼。README
用戶程序框架包含兩個模塊:Ability子系統和包管理子系統。Ability子系統,是OpenHarmony為開發者提供的一套開發OpenHarmony應用的開發框架。包管理子系統,是OpenHarmony為開發者提供的安裝包管理框架。README
AI子系統AI業務子系統是提供原生的分布式AI能力的子系統,提供了統一的AI引擎框架,實現算法能力快速插件化集成。框架中主要包含插件管理、模塊管理和通信管理等模塊,對AI算法能力進行生命周期管理和按需部署。后續,會逐步定義統一的AI能力接口,便于AI能力的分布式調用。同時,提供適配不同推理框架層級的統一推理接口。README
泛Sensor泛Sensor中包含傳感器和小器件,傳感器用于偵測環境中所發生事件或變化,并將此消息發送至其他電子設備,小器件用于向外傳遞信號的設備,包括馬達和LED燈,對開發者提供控制馬達振動和LED燈開關的能力。README
電源管理電源管理子系統主要提供了電池、充放電狀態查詢能力和系統電源管理服務能力,目前主要包括電量查詢和亮滅屏控制鎖的能力。README
升級服務升級服務是提供設備遠程升級的能力,可以讓你的設備輕松支持OTA升級能力。目前僅支持全量包升級方式,全量包是將新系統全部內容做成升級包,進行升級。README
編譯構建編譯構建提供了一個在GN與ninja基礎上的編譯構建框架。支持以下功能:1.構建不同芯片平臺的產品。如:Hi3518EV300平臺的ipcamera產品,Hi3516DV300平臺的ipcamera產品,Hi3861平臺的WLAN模組產品。2.構建HPM包管理配置生成的自定義產品。README
驅動OpenHarmony驅動子系統采用C面向對象編程模型構建,通過平臺解耦、內核解耦,兼容不同內核,提供了歸一化的驅動平臺底座,旨在為開發者提供更精準、更高效的開發環境,力求做到一次開發,多系統部署。README
快速入門
入口:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/Readme-CN.md
開發板類型簡述鏈 接
Hi3861開發板Hi3861 WLAN模組是一片大約2cm*5cm大小的開發板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基帶和RF(Radio Frequency)電路。支持OpenHarmony/Huawei LiteOS和第三方組件。快速入門
Hi3516開發板Hi3516DV300作為新一代行業專用Smart HD IP攝像機SOC,集成新一代ISP、業界最新的H.265視頻壓縮編碼器,同時集成高性能NNIE引擎。快速入門
Hi3518開發板Hi3518EV300作為新一代智慧視覺處理SOC,集成新一代ISP(Image Signal Processor)以及業界最新的H.265視頻壓縮編碼器。快速入門
代碼倉地址
OpenHarmony主庫組織地址:https://gitee.com/openharmony
OpenHarmony歸檔組織地址:https://gitee.com/openharmony-retired
開發者文檔
簡體中文:OpenHarmony開發者文檔
English Version:OpenHarmony Documentation
源碼下載
獲取OpenHarmony源碼:下載說明
如何參與
參與社區:社區介紹鏈接
參與貢獻:如何貢獻鏈接
參與API治理:OpenHarmony API治理章程
許可協議
OpenHarmony主要遵循Apache License V2.0協議,詳情請參考各代碼倉LICENSE聲明。
OpenHarmony引用三方開源軟件及許可證說明,參考第三方開源軟件說明。
-
OpenHarmony
+關注
關注
33文章
3955瀏覽量
21129
發布評論請先 登錄
從內核到生態:一次看懂HarmonyOS 6如何重寫操作系統的“基礎代碼”
零碳園區自主供能模式的分布式光伏系統
技術融合,生態共建——MTSTAR滿天星信息發布系統擁抱OpenHarmony
【節能學院】Acrel-1000DP分布式光伏監控系統在奉賢平高食品 4.4MW 分布式光伏中應用
首次亮相!華為發布鴻蒙6操作系統,全場景能力再升級
KaihongOS筆記本電腦開發實戰第九節:全功能TypeC驅動框架適配
KaihongOS操作系統FA模型與Stage模型介紹
兆芯+圖云創智—可信分布式存儲系統解決方案
KaihongOS操作系統:ArkTS語言基礎
分布式光伏發運維系統實際應用案例分享
淺談分布式光伏系統在工業企業的設計及應用
分布式dtu和分散式dtu說明介紹
OpenHarmony HarmonyOS-面向全場景的分布式操作系統
評論