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