【堅果系列】OpenHarmony應(yīng)用開發(fā)【02】-OpenHarmony開源項目介紹
作者:堅果
公眾號:"大前端之旅"
OpenHarmony布道師,InfoQ簽約作者,CSDN博客專家,華為云享專家,阿里云專家博主,51CTO博客首席體驗官,開源項目GVA成員之一,專注于大前端技術(shù)的分享,包括Flutter,鴻蒙,小程序,安卓,VUE,JavaScript。
目錄
OpenHarmony應(yīng)用開發(fā)【01】-工具安裝環(huán)境配置
摘要:本文主要對OpenHarmony項目進行簡單介紹,同時了解開放原子開源基金會,以及OpenHarmony技術(shù)架構(gòu),并進一步了解技術(shù)特性,系統(tǒng)類型,以及它的多內(nèi)核,最后列出OpenHarmony目前支持的開發(fā)版。
接下來開始正文:
本節(jié),都是純理論,可能會有點無聊,還是希望可以安靜看完哦。
項目介紹
上一節(jié)我們完成了工具準備和環(huán)境配置接下來我們就一起來了解一下關(guān)于OpenHarmony的一些理論,對于 OpenHarmony,看“open”就知道是開源的意思,事實也是這樣的,關(guān)于Open,有著開放,公開,開源的意思,其實對于隨著軟件技術(shù)的發(fā)展,底層技術(shù)的發(fā)展主要有兩種趨勢,
第一種是閉源,軟件源代碼不公開,由專人開發(fā)推進
第二種就是開源
開源有開放性,公開性,自發(fā)性,參與人員多樣性,以及興趣趨勢,所以開源在一定程度上質(zhì)量更高,成本更低。
好的說完開源,我們就來說OpenHarmony
從Open就可以看出,他是一個開源項目,是由華為雇了一幫人,然后由這些人commit代碼,最后華為把 HarmonyOS 中基礎(chǔ)功能提取出來,打包成功一個項目叫做“Openharmony” ,把 Openharmony 捐獻給了原子開源基金會。
OpenHarmony是由開放原子開源基金會孵化及運營的,未來華為也將持續(xù)為OpenHarmony開源項目貢獻代碼
目標是面向全場景、全連接、全智能時代,基于開源的方式,搭建一個智能終端設(shè)備操作系統(tǒng)的框架和平臺,促進萬物互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展
所以大家有了了解了吧,OpenHarmony就是由開放原子開源基金會(OpenAtom Foundation)孵化及運營的開源項目,目標是面向全場景、全連接、全智能時代,基于開源的方式,搭建一個智能終端設(shè)備操作系統(tǒng)的框架和平臺,促進萬物互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展。
然后來看一下OpenHarmony在代碼托管平臺Gitee的情況,
OpenHarmony目前是Gitee上最有價值的開源項目之一,倉庫數(shù)436個,成員238人,star數(shù)19.4k,fork數(shù)29.8k,PR3.3k,無一不在說明他的開源價值和活躍度。
說OpenHarmony,就不得不提到一個組織,開放原子開源基金會
開放原子開源基金會
開放原子開源基金會是中國內(nèi)地首個開源領(lǐng)域的基金會,成立于2020年6月,由阿里巴巴、百度、華為、浪潮、360、騰訊、招商銀行等企業(yè)聯(lián)合發(fā)起,是在中華人民共和國民政部注冊的非營利性獨立法人機構(gòu)?;饡wOpenHarmony、TecentOS Tiny、AliOS Things、UBLM、TKEstack、XuperChain等項目。
說完項目的簡單介紹,以及開放原子開源基金會組織,也該到了了解OpenHarmony技術(shù)架構(gòu)的時間,
OpenHarmony技術(shù)架構(gòu)
OpenHarmony整體遵從分層設(shè)計,從下向上依次為:內(nèi)核層、系統(tǒng)服務(wù)層、框架層和應(yīng)用層四層。
系統(tǒng)功能按照“系統(tǒng) > 子系統(tǒng) > 組件”逐級展開,在多設(shè)備部署場景下,支持根據(jù)實際需求裁剪某些非必要的組件。
OpenHarmony技術(shù)架構(gòu)如上圖所示,大家在這里可以先記住這張圖。然后我們對內(nèi)核層、系統(tǒng)服務(wù)層、框架層以及應(yīng)用層四層進行進一步了解。
內(nèi)核層
內(nèi)核子系統(tǒng):采用多內(nèi)核(Linux內(nèi)核或者LiteOS)設(shè)計,支持針對不同資源受限設(shè)備選用適合的OS內(nèi)核。內(nèi)核抽象層(KAL,Kernel Abstract Layer)通過屏蔽多內(nèi)核差異,對上層提供基礎(chǔ)的內(nèi)核能力,包括進程/線程管理、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡(luò)管理和外設(shè)管理等。
驅(qū)動子系統(tǒng):驅(qū)動框架(HDF)是系統(tǒng)硬件生態(tài)開放的基礎(chǔ),提供統(tǒng)一外設(shè)訪問能力和驅(qū)動開發(fā)、管理框架。
系統(tǒng)服務(wù)層
系統(tǒng)服務(wù)層是OpenHarmony的核心能力集合,通過框架層對應(yīng)用程序提供服務(wù)。該層包含以下幾個部分:
系統(tǒng)基本能力子系統(tǒng)集:為分布式應(yīng)用在多設(shè)備上的運行、調(diào)度、遷移等操作提供了基礎(chǔ)能力,由分布式軟總線、分布式數(shù)據(jù)管理、分布式任務(wù)調(diào)度、公共基礎(chǔ)庫、多模輸入、圖形、安全、AI等子系統(tǒng)組成。
基礎(chǔ)軟件服務(wù)子系統(tǒng)集:提供公共的、通用的軟件服務(wù),由事件通知、電話、多媒體、DFX(Design For X) 等子系統(tǒng)組成。
增強軟件服務(wù)子系統(tǒng)集:提供針對不同設(shè)備的、差異化的能力增強型軟件服務(wù),由智慧屏專有業(yè)務(wù)、穿戴專有業(yè)務(wù)、IoT專有業(yè)務(wù)等子系統(tǒng)組成。
硬件服務(wù)子系統(tǒng)集:提供硬件服務(wù),由位置服務(wù)、用戶IAM、穿戴專有硬件服務(wù)、IoT專有硬件服務(wù)等子系統(tǒng)組成。
根據(jù)不同設(shè)備形態(tài)的部署環(huán)境,基礎(chǔ)軟件服務(wù)子系統(tǒng)集、增強軟件服務(wù)子系統(tǒng)集、硬件服務(wù)子系統(tǒng)集內(nèi)部可以按子系統(tǒng)粒度裁剪,每個子系統(tǒng)內(nèi)部又可以按功能粒度裁剪。
框架層
框架層為應(yīng)用開發(fā)提供了C/C++/JS等多語言的用戶程序框架和Ability框架,適用于JS語言的ArkUI框架,以及各種軟硬件服務(wù)對外開放的多語言框架API。根據(jù)系統(tǒng)的組件化裁剪程度,設(shè)備支持的API也會有所不同。
應(yīng)用層
應(yīng)用層包括系統(tǒng)應(yīng)用和第三方非系統(tǒng)應(yīng)用。應(yīng)用由一個或多個FA(Feature Ability)或PA(Particle Ability)組成。其中,F(xiàn)A有UI界面,提供與用戶交互的能力;而PA無UI界面,提供后臺運行任務(wù)的能力以及統(tǒng)一的數(shù)據(jù)訪問抽象?;贔A/PA開發(fā)的應(yīng)用,能夠?qū)崿F(xiàn)特定的業(yè)務(wù)功能,支持跨設(shè)備調(diào)度與分發(fā),為用戶提供一致、高效的應(yīng)用體驗。
技術(shù)特性
OpenHarmony技術(shù)特性主要有三個方面,概括來說,就是硬件互助,資源共享;一次開發(fā),多端部署;統(tǒng)一OS,彈性部署。
硬件互助,資源共享
主要通過下列模塊達成
分布式軟總線
分布式軟總線是多設(shè)備終端的統(tǒng)一基座,為設(shè)備間的無縫互聯(lián)提供了統(tǒng)一的分布式通信能力,能夠快速發(fā)現(xiàn)并連接設(shè)備,高效地傳輸任務(wù)和數(shù)據(jù)。
分布式數(shù)據(jù)管理
分布式數(shù)據(jù)管理位于基于分布式軟總線之上的能力,實現(xiàn)了應(yīng)用程序數(shù)據(jù)和用戶數(shù)據(jù)的分布式管理。用戶數(shù)據(jù)不再與單一物理設(shè)備綁定,業(yè)務(wù)邏輯與數(shù)據(jù)存儲分離,應(yīng)用跨設(shè)備運行時數(shù)據(jù)無縫銜接,為打造一致、流暢的用戶體驗創(chuàng)造了基礎(chǔ)條件
分布式任務(wù)調(diào)度
分布式任務(wù)調(diào)度基于分布式軟總線、分布式數(shù)據(jù)管理、分布式Profile等技術(shù)特性,構(gòu)建統(tǒng)一的分布式服務(wù)管理(發(fā)現(xiàn)、同步、注冊、調(diào)用)機制,支持對跨設(shè)備的應(yīng)用進行遠程啟動、遠程調(diào)用、綁定/解綁、以及遷移等操作,能夠根據(jù)不同設(shè)備的能力、位置、業(yè)務(wù)運行狀態(tài)、資源使用情況并結(jié)合用戶的習慣和意圖,選擇最合適的設(shè)備運行分布式任務(wù)
設(shè)備虛擬化
分布式設(shè)備虛擬化平臺可以實現(xiàn)不同設(shè)備的資源融合、設(shè)備管理、數(shù)據(jù)處理,將周邊設(shè)備作為手機能力的延伸,共同形成一個超級虛擬終端。
一次開發(fā),多端部署
OpenHarmony提供用戶程序框架、Ability框架以及UI框架,能夠保證開發(fā)的應(yīng)用在多終端運行時保證一致性。一次開發(fā)、多端部署。
多終端軟件平臺API具備一致性,確保用戶程序的運行兼容性。
支持在開發(fā)過程中預(yù)覽終端的能力適配情況(CPU/內(nèi)存/外設(shè)/軟件資源等)。
支持根據(jù)用戶程序與軟件平臺的兼容性來調(diào)度用戶呈現(xiàn)。
統(tǒng)一OS,彈性部署
OpenHarmony通過組件化和組件彈性化等設(shè)計方法,做到硬件資源的可大可小,在多種終端設(shè)備間,按需彈性部署,全面覆蓋了ARM、RISC-V、x86等各種CPU,從百KiB到GiB級別的RAM。
系統(tǒng)類型
OpenHarmony支持如下幾種系統(tǒng)類型:
輕量系統(tǒng)(mini system)
面向MCU類處理器例如Arm Cortex-M、RISC-V 32位的設(shè)備,硬件資源極其有限,支持的設(shè)備最小內(nèi)存為128KiB,可以提供多種輕量級網(wǎng)絡(luò)協(xié)議,輕量級的圖形框架,以及豐富的IOT總線讀寫部件等??芍蔚?a target="_blank">產(chǎn)品如智能家居領(lǐng)域的連接類模組、傳感器設(shè)備、穿戴類設(shè)備等。
小型系統(tǒng)(small system)
面向應(yīng)用處理器例如Arm Cortex-A的設(shè)備,支持的設(shè)備最小內(nèi)存為1MiB,可以提供更高的安全能力、標準的圖形框架、視頻編解碼的多媒體能力??芍蔚漠a(chǎn)品如智能家居領(lǐng)域的IP Camera、電子貓眼、路由器以及智慧出行域的行車記錄儀等。
標準系統(tǒng)(standard system)
面向應(yīng)用處理器例如Arm Cortex-A的設(shè)備,支持的設(shè)備最小內(nèi)存為128MiB,可以提供增強的交互能力、3D GPU以及硬件合成能力、更多控件以及動效更豐富的圖形能力、完整的應(yīng)用框架??芍蔚漠a(chǎn)品如高端的冰箱顯示屏。
從上面的定義可以看出。內(nèi)存是限制系統(tǒng)類型的非常重要的一個指標。
多內(nèi)核
我們可以把Open Harmony簡單的分為
Open Harmony = Open Harmony 內(nèi)核態(tài)層 + Open Harmony 用戶態(tài)層
其中Open Harmony 內(nèi)核層就是上圖的紫色部分,可以看到,它主要由內(nèi)核本身(如Linux Kernel,LiteOS),和一些運行在內(nèi)核態(tài)的一些特性組成,比如HDF等。
而Open Harmony用戶態(tài)層,在上圖,就是紫色之外的部分。可以看到,由下往上看,它主要由系統(tǒng)服務(wù)層,框架層,應(yīng)用層組成。在這兒我們將這三層整體稱為“Open Harmony 用戶態(tài)層”。
OpenHarmony內(nèi)核層是采用多內(nèi)核設(shè)計,支持針對不同資源受限設(shè)備選用適合的OS內(nèi)核。OpenHarmony提供了內(nèi)核抽象層(KAL,Kernel Abstract Layer)通過屏蔽多內(nèi)核差異,對上層提供基礎(chǔ)的內(nèi)核能力,在最上面的圖片中也可以看到OpenHarmony可以使用LiteOS或者Linux內(nèi)核,而OpenHarmony 輕量級內(nèi)核是基于IoT領(lǐng)域輕量級物聯(lián)網(wǎng)操作系統(tǒng)Huawei LiteOS內(nèi)核演進發(fā)展的新一代內(nèi)核,包含LiteOS-M和LiteOS-A兩類內(nèi)核。,所以借此,我們就來把多內(nèi)核相關(guān)的知識也了解了。
LiteOS-M內(nèi)核
LiteOS-M內(nèi)核是面向IoT領(lǐng)域構(gòu)建的輕量級物聯(lián)網(wǎng)操作系統(tǒng)內(nèi)核,具有小體積、低功耗、高性能的特點。其代碼結(jié)構(gòu)簡單,主要包括內(nèi)核最小功能集、內(nèi)核抽象層、可選組件以及工程目錄等。面向的MCU一般是百K級內(nèi)存,可支持MPU隔離,業(yè)界類似的內(nèi)核有FreeRTOS或ThreadX等。
LiteOS-A內(nèi)核
LiteOS-A內(nèi)核主要應(yīng)用于小型系統(tǒng),面向設(shè)備一般是M級內(nèi)存,可支持MMU隔離,業(yè)界類似的內(nèi)核有Zircon或Darwin等。
Linux內(nèi)核
面向標準系統(tǒng)類設(shè)備(參考內(nèi)存≥128MB),OpenHarmony選擇Linux內(nèi)核作為基礎(chǔ)內(nèi)核,可以對不同資源受限的設(shè)備產(chǎn)品配置出適合的OS內(nèi)核,為上層提供基礎(chǔ)的操作系統(tǒng)能力。OpenHarmony中Linux內(nèi)核從LTS版本中選擇合適的版本作為內(nèi)核的基礎(chǔ)版本。
了解完上面的這些,我們就來接著了解兩個概念,子系統(tǒng)和組件到底是什么?
子系統(tǒng)和組件到底是什么?
子系統(tǒng)
OpenHarmony整體遵從分層設(shè)計,從下向上依次為:內(nèi)核層、系統(tǒng)服務(wù)層、框架層和應(yīng)用層。系統(tǒng)功能按照“系統(tǒng) > 子系統(tǒng) > 組件”逐級展開,在多設(shè)備部署場景下,支持根據(jù)實際需求裁剪某些非必要的組件。子系統(tǒng)是一個邏輯概念,它具體由對應(yīng)的組件構(gòu)成。
組件
對子系統(tǒng)的進一步拆分,可復(fù)用的軟件單元,它包含源碼、配置文件、資源文件和編譯腳本;能獨立構(gòu)建,以二進制方式集成,具備獨立驗證能力的二進制單元。
上一節(jié)在OpenHarmony環(huán)境搭建中也說了OpenHarmony目前支持的開發(fā)版類型,在本文中,我會單獨列出。
支持的開發(fā)板
當前OpenHarmony支持以下6款開發(fā)板,具體介紹如下:
系統(tǒng)類型 | 開發(fā)板型號 | 芯片型號 | 主要能力 | 典型應(yīng)用場景 | 開發(fā)板代碼倉及社區(qū)每日構(gòu)建版本獲取地址 |
---|---|---|---|---|---|
標準系統(tǒng) | Hi3516DV300 | Hi3516DV300 | Hi3516DV300是新一代Smart HD IP攝像機SOC,集成新一代ISP(Image Signal Processor)、H.265視頻壓縮編碼器、高性能NNIE引擎,在低碼率、高畫質(zhì)、智能處理和分析、低功耗等方面有較好的性能。 | 可用在帶屏設(shè)備上,比如帶屏冰箱、車機等。 | 代碼倉: device_soc_hisilicon device_board_hisilicon vendor_hisilicon 社區(qū)每日構(gòu)建版本獲取地址: http://ci.openharmony.cn/dailys/dailybuilds |
標準系統(tǒng) | 潤和DAYU200 | RK3568 | 潤和HH-SCDAYU200是基于Rockchip RK3568,集成雙核心架構(gòu)GPU以及高效能NPU;板載四核64位Cortex-A55 處理器采用22nm先進工藝,主頻高達2.0GHz;支持藍牙、Wi-Fi、音頻、視頻和攝像頭等功能,擁有豐富的擴展接口,支持多種視頻輸入輸出接口;配置雙千兆自適應(yīng)RJ45以太網(wǎng)口,可滿足NVR、工業(yè)網(wǎng)關(guān)等多網(wǎng)口產(chǎn)品需求。 | 影音娛樂、智慧出行、智能家居,如煙機、烤箱、跑步機等。 | 代碼倉: device_soc_rockchip device_board_hihope vendor_hihope 社區(qū)每日構(gòu)建版本獲取地址: http://ci.openharmony.cn/dailys/dailybuilds |
輕量 | 匯頂GR5515-STARTER-KIT | GR5515 | 支持Bluetooth 5.1的單模低功耗藍牙SoC,多功能按鍵和LED指示燈。 | 智能硬件,如手表、手環(huán)、價格類標簽。 | 代碼倉: device_soc_goodix device_board_goodix 社區(qū)每日構(gòu)建版本獲取地址: http://ci.openharmony.cn/dailys/dailybuilds |
輕量 | 朗國LANGO200 | ASR582X | LANGO200 IOT開發(fā)板,集成了高性能的WIFI-BLE雙模芯片ASR5822、外部存儲芯片、語音播放芯片以及模數(shù)轉(zhuǎn)換等,同時支持SPI等IOT設(shè)備常用外設(shè)接口,可外擴OLED顯示屏、紅外遙控等。 | 智能家居連接類模組。 | 代碼倉: device_soc_asrmicro device_board_lango vendor_asrmicro 社區(qū)每日構(gòu)建版本獲取地址: http://ci.openharmony.cn/dailys/dailybuilds |
輕量 | 歐智通V200ZR | BES2600 | Multi-modal V200Z-R開發(fā)板是基于恒玄科技BES2600WM芯片的一款高性能、多功能、高性價比AIoT SoC開發(fā)板Multi-modal V200Z-R開發(fā)板,單模組集成四核ARM處理器(最高主頻1GHz),集成雙頻WiFi + 雙模藍牙,支持標準的802.11 a/b/g/n/協(xié)議,支持BT/BLE 5.2協(xié)議,內(nèi)建多種容量的RAM(最大42MB)和Flash(最大32MB),支持MIPI DSI及CSI,適用于各種AIoT多模態(tài)VUI + GUI交互硬件場景。 | 智能硬件帶屏類模組產(chǎn)品,如音箱、手表等。 | 代碼倉: device_soc_bestechnic device_board_fnlink vendor_bestechnic 社區(qū)每日構(gòu)建版本獲取地址: http://ci.openharmony.cn/dailys/dailybuilds |
輕量 | 小熊派BearPi-HM Nano | Hi3861 | BearPi-HM_Nano開發(fā)板是一塊專門為OpenHarmony設(shè)計的開發(fā)板,板載高度集成的2.4GHz WiFi SoC芯片Hi3861,并板載NFC電路及標準的E53接口,標準的E53接口可擴展智能加濕器、智能臺燈、智能安防、智能煙感等案例。 | 智慧路燈、智慧物流、人體紅外等連接類設(shè)備。 | 代碼倉: device_soc_hisilicon device_board_bearpi vendor_bearpi 社區(qū)每日構(gòu)建版本獲取地址: http://ci.openharmony.cn/dailys/dailybuilds |
我手頭目前有的是DA YU200的板子,這兒要感謝一下潤和軟件和社區(qū),后面的組件學習更多的我也會基于DA YU200來實現(xiàn)。
可能剛?cè)胧值腄A YU200的板子,系統(tǒng)不是最新的,這個時候拿到板子之后,之后先燒錄。
總結(jié)
因為這篇文章都是一些理論,但是也是很重要的,比如我們了解了OpenHarmony整體遵從分層設(shè)計,從下向上依次為:內(nèi)核層、系統(tǒng)服務(wù)層、框架層和應(yīng)用層四層,Open Harmony = Open Harmony 內(nèi)核態(tài)層 + Open Harmony 用戶態(tài)層,OpenHarmony技術(shù)特性,概括來說,就是硬件互助,資源共享;一次開發(fā),多端部署;統(tǒng)一OS,彈性部署,以及多內(nèi)核,子系統(tǒng)和組件到底是什么?等重要問題,最后列出目前支持的六種主流板子。
參考
OpenHarmony中相關(guān)的子系統(tǒng)
潤和軟件
DAYU200
DAYU200燒錄工具和指南
-
HarmonyOS
+關(guān)注
關(guān)注
79文章
1966瀏覽量
29962 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3641瀏覽量
16064
發(fā)布評論請先 登錄
相關(guān)推薦
評論