OpenHarmony HarmonyOS-面向全場景的分布式操作系統(tǒng)
軟件簡介
OpenHarmony是開放原子開源基金會(OpenAtom Foundation)旗下開源項目,定位是一款面向全場景的開源分布式操作系統(tǒng)。
OpenHarmony在傳統(tǒng)的單設備系統(tǒng)能力的基礎上,創(chuàng)造性地提出了基于同一套系統(tǒng)能力、適配多種終端形態(tài)的理念,支持多種終端設備上運行,第一個版本支持128K~128M設備上運行,歡迎參加開源社區(qū)一起持續(xù)演進。針對設備開發(fā)者,OpenHarmony采用了組件化的設計方案,可以根據(jù)設備的資源能力和業(yè)務特征進行靈活裁剪,滿足不同形態(tài)的終端設備對于操作系統(tǒng)的要求。可運行在百K級別的資源受限設備和穿戴類設備,也可運行在百M級別的智能家用攝像頭/行車記錄儀等相對資源豐富的設備。
技術架構(gòu)
OpenHarmony整體遵從分層設計,從下向上依次為:內(nèi)核層、系統(tǒng)服務層、框架層和應用層。系統(tǒng)功能按照“系統(tǒng) > 子系統(tǒng) > 功能/模塊”逐級展開,在多設備部署場景下,支持根據(jù)實際需求裁剪某些非必要的子系統(tǒng)或功能/模塊。OpenHarmony技術架構(gòu)如下所示。
內(nèi)核層
內(nèi)核子系統(tǒng):采用多內(nèi)核(Linux內(nèi)核或者LiteOS)設計,支持針對不同資源受限設備選用適合的OS內(nèi)核。內(nèi)核抽象層(KAL,Kernel Abstract Layer)通過屏蔽多內(nèi)核差異,對上層提供基礎的內(nèi)核能力,包括進程/線程管理、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡管理和外設管理等。
驅(qū)動子系統(tǒng):驅(qū)動框架(HDF)是系統(tǒng)硬件生態(tài)開放的基礎,提供統(tǒng)一外設訪問能力和驅(qū)動開發(fā)、管理框架。
系統(tǒng)服務層
系統(tǒng)服務層是OpenHarmony的核心能力集合,通過框架層對應用程序提供服務。該層包含以下幾個部分:
系統(tǒng)基本能力子系統(tǒng)集:為分布式應用在多設備上的運行、調(diào)度、遷移等操作提供了基礎能力,由分布式軟總線、分布式數(shù)據(jù)管理、分布式任務調(diào)度、公共基礎庫、多模輸入、圖形、安全、AI等子系統(tǒng)組成。
基礎軟件服務子系統(tǒng)集:提供公共的、通用的軟件服務,由事件通知、電話、多媒體、DFX(Design For X) 等子系統(tǒng)組成。
增強軟件服務子系統(tǒng)集:提供針對不同設備的、差異化的能力增強型軟件服務,由智慧屏專有業(yè)務、穿戴專有業(yè)務、IoT專有業(yè)務等子系統(tǒng)組成。
硬件服務子系統(tǒng)集:提供硬件服務,由位置服務、生物特征識別、穿戴專有硬件服務、IoT專有硬件服務等子系統(tǒng)組成。
根據(jù)不同設備形態(tài)的部署環(huán)境,基礎軟件服務子系統(tǒng)集、增強軟件服務子系統(tǒng)集、硬件服務子系統(tǒng)集內(nèi)部可以按子系統(tǒng)粒度裁剪,每個子系統(tǒng)內(nèi)部又可以按功能粒度裁剪。
框架層
框架層為應用開發(fā)提供了Java/C/C++/JS等多語言的用戶程序框架和Ability框架,兩種UI框架(包括適用于Java語言的Java UI框架、適用于JS語言的JS UI框架),以及各種軟硬件服務對外開放的多語言框架API。根據(jù)系統(tǒng)的組件化裁剪程度,設備支持的API也會有所不同。
應用層
應用層包括系統(tǒng)應用和第三方非系統(tǒng)應用。應用由一個或多個FA(Feature Ability)或PA(Particle Ability)組成。其中,F(xiàn)A有UI界面,提供與用戶交互的能力;而PA無UI界面,提供后臺運行任務的能力以及統(tǒng)一的數(shù)據(jù)訪問抽象。基于FA/PA開發(fā)的應用,能夠?qū)崿F(xiàn)特定的業(yè)務功能,支持跨設備調(diào)度與分發(fā),為用戶提供一致、高效的應用體驗。
特點
硬件互助,資源共享
主要通過下列模塊達成
分布式軟總線
分布式軟總線是多設備終端的統(tǒng)一基座,為多設備間無縫互聯(lián)提供了統(tǒng)一的分布式通信能力,能夠快速發(fā)現(xiàn)并連接設備,高效地傳輸任務和數(shù)據(jù)。
分布式數(shù)據(jù)管理
分布式數(shù)據(jù)管理位于基于分布式軟總線之上的能力,實現(xiàn)了應用程序數(shù)據(jù)和用戶數(shù)據(jù)的分布式管理。用戶數(shù)據(jù)不再與單一物理設備綁定,業(yè)務邏輯與數(shù)據(jù)存儲分離,應用跨設備運行時數(shù)據(jù)無縫銜接,為打造一致、流暢的用戶體驗創(chuàng)造了基礎條件
分布式任務調(diào)度
分布式任務調(diào)度基于分布式軟總線、分布式數(shù)據(jù)管理、分布式Profile等技術特性,構(gòu)建統(tǒng)一的分布式服務管理(發(fā)現(xiàn)、同步、注冊、調(diào)用)機制,支持對跨設備的應用進行遠程啟動、遠程調(diào)用、綁定/解綁、以及遷移等操作,能夠根據(jù)不同設備的能力、位置、業(yè)務運行狀態(tài)、資源使用情況并結(jié)合用戶的習慣和意圖,選擇最合適的設備運行分布式任務
設備虛擬化
分布式設備虛擬化平臺可以實現(xiàn)不同設備的資源融合、設備管理、數(shù)據(jù)處理,將周邊設備作為手機能力的延伸,共同形成一個超級虛擬終端。
一次開發(fā),多端部署
OpenHarmony提供用戶程序框架、Ability框架以及UI框架,能夠保證開發(fā)的應用在多終端運行時保證一致性。一次開發(fā)、多端部署。
多終端軟件平臺API具備一致性,確保用戶程序的運行兼容性。
支持在開發(fā)過程中預覽終端的能力適配情況(CPU/內(nèi)存/外設/軟件資源等)。
支持根據(jù)用戶程序與軟件平臺的兼容性來調(diào)度用戶呈現(xiàn)。
統(tǒng)一OS,彈性部署
OpenHarmony通過組件化和組件彈性化等設計方法,做到硬件資源的可大可小,在多種終端設備間,按需彈性部署,全面覆蓋了ARM、RISC-V、x86等各種CPU,從百KB到GB級別的RAM。
設備類型
OpenHarmony支持如下幾種設備類型:
輕量系統(tǒng)類設備(參考內(nèi)存≥128KB)
面向MCU類處理器,例如Arm Cortex-M、RISC-V 32位的設備,資源極其有限,參考內(nèi)存≥128KB,提供豐富的近距連接能力以及豐富的外設總線訪問能力。典型產(chǎn)品有智能家居領域的聯(lián)接類模組、傳感器設備等。聯(lián)接類模組通常應用在智能物聯(lián)網(wǎng)設備中,負責實現(xiàn)聯(lián)接部分的硬件模塊,在智能家居領域由廠家集成到其設備中。例如:聯(lián)接類模組提供WLAN/Bluetooth的接入和數(shù)據(jù)的聯(lián)接,模組與廠家家居的芯片通常通過UART或GPIO等總線接口進行通信。
小型系統(tǒng)類設備(參考內(nèi)存≥1MB)
面向應用處理器,例如Arm Cortex-A的設備,參考內(nèi)存≥1MB,提供更高的安全能力,提供標準的圖形框架,提供視頻編解碼的多媒體能力。典型產(chǎn)品有智能家居領域的IPCamera、電子貓眼、路由器以及智慧出行域的行車記錄儀等。
標準系統(tǒng)類設備(參考內(nèi)存≥128MB)
面向應用處理器,例如Arm Cortex-A的設備,參考內(nèi)存≥128MB,提供增強的交互能力,提供3D GPU以及硬件合成能力,提供更多控件以及動效更豐富的圖形能力,提供完整的應用框架。典型產(chǎn)品有高端的冰箱顯示屏等。
大型系統(tǒng)類設備(參考內(nèi)存≥1GB)
面向應用處理器,例如Arm Cortex-A的設備,參考內(nèi)存≥1GB,提供完整的兼容應用框架。典型的產(chǎn)品有智慧屏、智能手表等。
詳細特征
入口:https://gitee.com/openharmony/docs/tree/master/zh-cn/readme
*本次開源部分主要支持百K級,百M級設備,以下內(nèi)容主要介紹涉及到的相關子系統(tǒng)內(nèi)容。
系 統(tǒng)簡 介鏈 接
JS應用開發(fā)框架作為JS應用開發(fā)框架的輕量實現(xiàn),提供一套跨平臺的類web應用開發(fā)框架,通過Toolkit將開發(fā)者編寫的HTML、CSS和JS 文件編譯打包成JS Bundle,然后再將JS Bundle解析運行成C++ UIKit的View 組件進行渲染。通過支持三方開發(fā)者使用聲明式的API進行應用開發(fā),以數(shù)據(jù)驅(qū)動視圖變化,避免了大量的視圖操作,大幅降低應用開發(fā)難度,提升開發(fā)者開發(fā)體驗。README
DFX針對不同硬件架構(gòu)和資源提供組件化且可定制的DFX框架。根據(jù)RISC-V、Cortex-M、Cortex-A不同硬件平臺,提供兩種不同的輕量級DFX框架。README
XTS認證XTS是OpenHarmony生態(tài)認證測試套件的集合,當前包括acts(application compatibility test suite)應用兼容性測試套,后續(xù)會拓展dcts(device compatibility test suite)設備兼容性測試套等。README
全球化全球化資源管理子系統(tǒng)主要提供語言資源回溯和多偏好語言支持的能力,包括多語言資源回溯和多偏好語言支持。README
公共基礎公共基礎庫存放OpenHarmony通用的基礎組件。這些基礎組件可被OpenHarmony各業(yè)務子系統(tǒng)及上層應用所使用。README
內(nèi)核OpenHarmony內(nèi)核是面向IoT領域的實時操作系統(tǒng)內(nèi)核,它具備類似RTOS般輕快和Linux般易用的特點。包括功能組件部分:進程和線程調(diào)度、內(nèi)存管理、IPC機制、timer管理等操作系統(tǒng)基礎組件。README
分布式任務調(diào)度分布式任務調(diào)度模塊負責跨設備組件管理,提供訪問和控制遠程組件的能力,支持分布式場景下的應用協(xié)同。README
分布式軟總線實現(xiàn)近場設備間統(tǒng)一的分布式通信能力管理,提供不區(qū)分鏈路的設備發(fā)現(xiàn)和傳輸接口。包含服務發(fā)布、數(shù)據(jù)傳輸、安全等功能。README
啟動恢復啟動恢復負責在內(nèi)核啟動之后,應用啟動之前的操作系統(tǒng)中間層的啟動。支持使用LiteOS-A內(nèi)核的平臺,當前包括:Hi3516DV300平臺和Hi3518EV300平臺。README
圖形主要包括UI組件、布局、動畫、字體、輸入事件、窗口管理、渲染繪制等模塊,構(gòu)建基于輕量OS的應用框架,滿足硬件資源較小的物聯(lián)網(wǎng)設備的OpenHarmony系統(tǒng)應用開發(fā)。README
媒體為多媒體應用開發(fā)者提供統(tǒng)一的開發(fā)接口,使得開發(fā)者可以專注于應用業(yè)務的開發(fā),輕松使用多媒體的資源。README
安全主要提供樣例給開發(fā)者展示如何去使用已有的安全機制來提升系統(tǒng)的安全能力,包括安全啟動、應用權限管理、IPC通信鑒權、HUKS、HiChain、應用簽名驗簽。README
測試開發(fā)過程采用測試驅(qū)動開發(fā)模式,開發(fā)者基于系統(tǒng)新增特性可以通過開發(fā)者自己開發(fā)用例保證,對于系統(tǒng)已有特性的修改,也可通過修改項目中原有自測試用例保證,旨在幫助開發(fā)者在開發(fā)階段就能開發(fā)出高質(zhì)量代碼。README
用戶程序框架包含兩個模塊:Ability子系統(tǒng)和包管理子系統(tǒng)。Ability子系統(tǒng),是OpenHarmony為開發(fā)者提供的一套開發(fā)OpenHarmony應用的開發(fā)框架。包管理子系統(tǒng),是OpenHarmony為開發(fā)者提供的安裝包管理框架。README
AI子系統(tǒng)AI業(yè)務子系統(tǒng)是提供原生的分布式AI能力的子系統(tǒng),提供了統(tǒng)一的AI引擎框架,實現(xiàn)算法能力快速插件化集成。框架中主要包含插件管理、模塊管理和通信管理等模塊,對AI算法能力進行生命周期管理和按需部署。后續(xù),會逐步定義統(tǒng)一的AI能力接口,便于AI能力的分布式調(diào)用。同時,提供適配不同推理框架層級的統(tǒng)一推理接口。README
泛Sensor泛Sensor中包含傳感器和小器件,傳感器用于偵測環(huán)境中所發(fā)生事件或變化,并將此消息發(fā)送至其他電子設備,小器件用于向外傳遞信號的設備,包括馬達和LED燈,對開發(fā)者提供控制馬達振動和LED燈開關的能力。README
電源管理電源管理子系統(tǒng)主要提供了電池、充放電狀態(tài)查詢能力和系統(tǒng)電源管理服務能力,目前主要包括電量查詢和亮滅屏控制鎖的能力。README
升級服務升級服務是提供設備遠程升級的能力,可以讓你的設備輕松支持OTA升級能力。目前僅支持全量包升級方式,全量包是將新系統(tǒng)全部內(nèi)容做成升級包,進行升級。README
編譯構(gòu)建編譯構(gòu)建提供了一個在GN與ninja基礎上的編譯構(gòu)建框架。支持以下功能:1.構(gòu)建不同芯片平臺的產(chǎn)品。如:Hi3518EV300平臺的ipcamera產(chǎn)品,Hi3516DV300平臺的ipcamera產(chǎn)品,Hi3861平臺的WLAN模組產(chǎn)品。2.構(gòu)建HPM包管理配置生成的自定義產(chǎn)品。README
驅(qū)動OpenHarmony驅(qū)動子系統(tǒng)采用C面向?qū)ο?a target="_blank">編程模型構(gòu)建,通過平臺解耦、內(nèi)核解耦,兼容不同內(nèi)核,提供了歸一化的驅(qū)動平臺底座,旨在為開發(fā)者提供更精準、更高效的開發(fā)環(huán)境,力求做到一次開發(fā),多系統(tǒng)部署。README
快速入門
入口:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/Readme-CN.md
開發(fā)板類型簡述鏈 接
Hi3861開發(fā)板Hi3861 WLAN模組是一片大約2cm*5cm大小的開發(fā)板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基帶和RF(Radio Frequency)電路。支持OpenHarmony/Huawei LiteOS和第三方組件。快速入門
Hi3516開發(fā)板Hi3516DV300作為新一代行業(yè)專用Smart HD IP攝像機SOC,集成新一代ISP、業(yè)界最新的H.265視頻壓縮編碼器,同時集成高性能NNIE引擎。快速入門
Hi3518開發(fā)板Hi3518EV300作為新一代智慧視覺處理SOC,集成新一代ISP(Image Signal Processor)以及業(yè)界最新的H.265視頻壓縮編碼器。快速入門
代碼倉地址
OpenHarmony主庫組織地址:https://gitee.com/openharmony
OpenHarmony歸檔組織地址:https://gitee.com/openharmony-retired
開發(fā)者文檔
簡體中文:OpenHarmony開發(fā)者文檔
English Version:OpenHarmony Documentation
源碼下載
獲取OpenHarmony源碼:下載說明
如何參與
參與社區(qū):社區(qū)介紹鏈接
參與貢獻:如何貢獻鏈接
參與API治理:OpenHarmony API治理章程
許可協(xié)議
OpenHarmony主要遵循Apache License V2.0協(xié)議,詳情請參考各代碼倉LICENSE聲明。
OpenHarmony引用三方開源軟件及許可證說明,參考第三方開源軟件說明。
-
OpenHarmony
+關注
關注
29文章
3854瀏覽量
18598
發(fā)布評論請先 登錄
首次亮相!華為發(fā)布鴻蒙6操作系統(tǒng),全場景能力再升級

KaihongOS筆記本電腦開發(fā)實戰(zhàn)第九節(jié):全功能TypeC驅(qū)動框架適配
KaihongOS操作系統(tǒng):ArkTS語言基礎
【入門必看】一文搞懂鴻蒙系統(tǒng)設備開發(fā),從入門到12大物聯(lián)網(wǎng)項目實戰(zhàn)

【「鴻蒙操作系統(tǒng)設計原理與架構(gòu)」閱讀體驗】02-華為鴻蒙設計理念
【「鴻蒙操作系統(tǒng)設計原理與架構(gòu)」閱讀體驗】-前四章閱讀有感
電力行業(yè)應用開源物聯(lián)操作系統(tǒng)如何賦能新型工業(yè)化

HarmonyOS Next 應用元服務開發(fā)-分布式數(shù)據(jù)對象遷移數(shù)據(jù)文件資產(chǎn)遷移
HarmonyOS Next 應用元服務開發(fā)-分布式數(shù)據(jù)對象遷移數(shù)據(jù)權限與基礎數(shù)據(jù)
名單公布!【書籍評測活動NO.53】鴻蒙操作系統(tǒng)設計原理與架構(gòu)
全新原生鴻蒙HarmonyOS NEXT發(fā)布,書寫國產(chǎn)操作系統(tǒng)新篇章!同時,觸覺智能發(fā)布OpenHarmony5.0固件

華為引領國產(chǎn)操作系統(tǒng)邁向新高度
基于Openharmony輕量級操作系統(tǒng)的分布式數(shù)據(jù)管理開發(fā)案例

評論