鴻蒙OpenHarmony開篇-2021.06.02
文章目錄
- 鴻蒙OpenHarmony開篇-2021.06.02
-
- 架構及說明
-
- 核心層
- 系統服務層
- 架構層
- 應用層
- 源碼
-
- 核心層
-
- Linux核心
- LiteOS-A
- LiteOS-M
- 總結
核心版本 | Linux4.19 |
---|---|
平台 | OpenHarmony |
作者 | nineyole |
今天是2021年6月2日,晚上就有鴻蒙2.0釋出會,去OpenHarmony的官網看了一下,發現2.0也已經釋出了。
其下載下傳位址在這裡,可以自行下載下傳。
架構及說明
整個OpenHarmony架構如下圖所示:
核心層
- 核心子系統:采用多核心(Linux核心或者LiteOS)設計,支援針對不同資源受限裝置選用适合的OS核心。核心抽象層(KAL,Kernel Abstract Layer)通過屏蔽多核心差異,對上層提供基礎的核心能力,包括程序/線程管理、記憶體管理、檔案系統、網絡管理和外設管理等。
- 驅動子系統:驅動架構(HDF)是系統硬體生态開放的基礎,提供統一外設通路能力和驅動開發、管理架構。
系統服務層
系統服務層是OpenHarmony的核心能力集合,通過架構層對應用程式提供服務。該層包含以下幾個部分:
- 系統基本能力子系統集:為分布式應用在多裝置上的運作、排程、遷移等操作提供了基礎能力,由分布式軟總線、分布式資料管理、分布式任務排程、公共基礎庫、多模輸入、圖形、安全、AI等子系統組成。
- 基礎軟體服務子系統集:提供公共的、通用的軟體服務,由事件通知、電話、多媒體、DFX(Design For X) 等子系統組成。
- 增強軟體服務子系統集:提供針對不同裝置的、差異化的能力增強型軟體服務,由智慧屏專有業務、穿戴專有業務、IoT專有業務等子系統組成。
- 硬體服務子系統集:提供硬體服務,由位置服務、生物特征識别、穿戴專有硬體服務、IoT專有硬體服務等子系統組成。
根據不同裝置形态的部署環境,基礎軟體服務子系統集、增強軟體服務子系統集、硬體服務子系統集内部可以按子系統粒度裁剪,每個子系統内部又可以按功能粒度裁剪。
架構層
架構層為應用開發提供了C/C++/JS等多語言的使用者程式架構和Ability架構,适用于JS語言的JS UI架構,以及各種軟硬體服務對外開放的多語言架構API。根據系統的元件化裁剪程度,裝置支援的API也會有所不同。
應用層
應用層包括系統應用和第三方非系統應用。應用由一個或多個FA(Feature Ability)或PA(Particle Ability)組成。其中,FA有UI界面,提供與使用者互動的能力;而PA無UI界面,提供背景運作任務的能力以及統一的資料通路抽象。基于FA/PA開發的應用,能夠實作特定的業務功能,支援跨裝置排程與分發,為使用者提供一緻、高效的應用體驗。
源碼
整個源碼的目錄如下所示:
核心層
個人對kernel層比較感興趣,進去看看呢。
Linux核心
其中Linux4.19就是我們常見的Linux核心。其目錄如下所示。看上去是不是很熟悉。
LiteOS-A
OpenHarmony LiteOS-A核心是基于Huawei LiteOS核心演進發展的新一代核心,Huawei LiteOS是面向IoT領域建構的輕量級物聯網作業系統。在IoT産業高速發展的潮流中,OpenHarmony LiteOS-A核心能夠帶給使用者小體積、低功耗、高性能的體驗以及統一開放的生态系統能力,新增了豐富的核心機制、更加全面的POSIX标準接口以及統一驅動架構HDF(OpenHarmony Driver Foundation)等,為裝置廠商提供了更統一的接入方式,為OpenHarmony的應用開發者提供了更友好的開發體驗。
整個檔案的目錄如下所示:
目前支援的有:
不知道後續像全志,瑞芯微等國産晶片是否會跟進。
LiteOS-M
而關于LiteOS-M,官方的說法如下:
OpenHarmony LiteOS-M核心是面向IoT領域建構的輕量級物聯網作業系統核心,具有小體積、低功耗、高性能的特點,其代碼結構簡單,主要包括核心最小功能集、核心抽象層、可選元件以及工程目錄等,分為硬體相關層以及硬體無關層,硬體相關層提供統一的HAL(Hardware Abstraction Layer)接口,提升硬體易适配性,不同編譯工具鍊和晶片架構的組合分類,滿足AIoT類型豐富的硬體和編譯工具鍊的拓展。
目前支援的有:cortexM3、cortexM4、cortexM7。
總結
OpenHarmony系統是上層重寫了所有的api以及架構,底層可以是采用多核心,可以是Linux,也可以是 LiteOS-A或者 LiteOS-M,其中 LiteOS-A主要針對cortexA系列的,LiteOS-M主要針對于cortexM系列,Linux主要針對功能複雜且龐大的系統,像手機,PC等。
看完應該都清楚了吧。期待國産OS,要是能統一PC、手機、物聯網、伺服器,那基本上就妥妥的了。
最後,默默的問一句,華為基于OpenHarmony開發的系統叫Harmony,那這樣别的廠家基于OpenHarmony開發的系統應該叫什麼呢?