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