OpenHarmony(開源鴻蒙系統(tǒng))是HarmonyOS的開源版,由華為捐贈(zèng)給開放原子開源基金會(huì)(OpenAtom Foundation)開源,第一個(gè)開源版本支持在128KB~128MB設(shè)備上運(yùn)行,歡迎參加開源社區(qū)一起持續(xù)演進(jìn)。
系統(tǒng)介紹
9 月 10 日,華為在 HDC 2020 大會(huì)上宣布正式開源鴻蒙操作系統(tǒng)(HarmonyOS)。開源的鴻蒙項(xiàng)目名為 OpenHarmony。
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è)備。
開發(fā)介紹
JS應(yīng)用開發(fā)框架
作為JS應(yīng)用開發(fā)框架的輕量實(shí)現(xiàn),提供一套跨平臺(tái)的類web應(yīng)用開發(fā)框架,通過Toolkit將開發(fā)者編寫的HML、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)。
DFX
針對(duì)不同硬件架構(gòu)和資源提供組件化且可定制的DFX框架。根據(jù)RISC-V、Cortex-M、Cortex-A不同硬件平臺(tái),提供兩種不同的輕量級(jí)DFX框架。
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è)試套等。
全球化
全球化資源管理子系統(tǒng)主要提供語言資源回溯和多偏好語言支持的能力,包括多語言資源回溯和多偏好語言支持。
公共基礎(chǔ)
公共基礎(chǔ)庫存放OpenHarmony通用的基礎(chǔ)組件。這些基礎(chǔ)組件可被OpenHarmony各業(yè)務(wù)子系統(tǒng)及上層應(yīng)用所使用。
內(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ǔ)組件。
分布式任務(wù)調(diào)度
分布式任務(wù)調(diào)度模塊,通過主(智慧屏設(shè)備)從設(shè)備(運(yùn)動(dòng)手表等小內(nèi)存設(shè)備)服務(wù)代理機(jī)制,在異構(gòu)操作系統(tǒng)上建立起分布式服務(wù)平臺(tái),支持OpenHarmony智慧屏拉起其它OpenHarmony設(shè)備FA的能力。
分布式通信
實(shí)現(xiàn)近場(chǎng)設(shè)備間統(tǒng)一的分布式通信能力管理,提供不區(qū)分鏈路的設(shè)備發(fā)現(xiàn)和傳輸接口。包含服務(wù)發(fā)布、數(shù)據(jù)傳輸、安全等功能
啟動(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)。
圖形
主要包括UI組件、布局、動(dòng)畫、字體、輸入事件、窗口管理、渲染繪制等模塊,構(gòu)建基于輕量OS的應(yīng)用框架,滿足硬件資源較小的物聯(lián)網(wǎng)設(shè)備的OpenHarmony系統(tǒng)應(yīng)用開發(fā)。
媒體
為多媒體應(yīng)用開發(fā)者開發(fā)者提供統(tǒng)一的開發(fā)接口,使得開發(fā)者可以專注于應(yīng)用業(yè)務(wù)的開發(fā),輕松使用多媒體的資源。
安全
主要提供樣例給開發(fā)者展示如何去使用已有的安全機(jī)制來提升系統(tǒng)的安全能力,包括安全啟動(dòng)、應(yīng)用權(quán)限管理、IPC通信鑒權(quán)、HUKS、HiChain、應(yīng)用簽名驗(yàn)簽。
測(cè)試
開發(fā)過程采用測(cè)試驅(qū)動(dòng)開發(fā)模式,開發(fā)者基于系統(tǒng)新增特性可以通過開發(fā)者自己開發(fā)用例保證,對(duì)于系統(tǒng)已有特性的修改,也可通過修改項(xiàng)目中原有自測(cè)試用例保證,旨在幫助開發(fā)者在開發(fā)階段就能開發(fā)出高質(zhì)量代碼。
用戶程序框架
包含兩個(gè)模塊:Ability子系統(tǒng)和包管理子系統(tǒng)。Ability子系統(tǒng),是OpenHarmony為開發(fā)者提供的一套開發(fā)OpenHarmony應(yīng)用的開發(fā)框架。包管理子系統(tǒng),是OpenHarmony為開發(fā)者提供的安裝包管理框架。
系統(tǒng)服務(wù)框架
由于平臺(tái)資源有限,且硬件平臺(tái)多樣,因此需要屏蔽不同硬件架構(gòu)和資源的不同、以及運(yùn)行形態(tài)的不同,提供統(tǒng)一化的系統(tǒng)服務(wù)開發(fā)框架。根據(jù)RISC-V、Cortex-M、Cortex-A不同硬件平臺(tái),分為兩種平硬件平臺(tái),簡(jiǎn)稱M核、A核。
編譯構(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)的wifi模組產(chǎn)品。2.構(gòu)建HPM包管理配置生成的自定義產(chǎn)品。
驅(qū)動(dòng)
OpenHarmony驅(qū)動(dòng)子系統(tǒng)采用C面向?qū)ο缶幊棠P蜆?gòu)建,通過平臺(tái)解耦、內(nèi)核解耦,兼容不同內(nèi)核,提供了歸一化的驅(qū)動(dòng)平臺(tái)底座,旨在為開發(fā)者提供更精準(zhǔn)、更高效的開發(fā)環(huán)境,力求做到一次開發(fā),多系統(tǒng)部署。