科普干貨|漫談鴻蒙LiteOS-M與HUAWEI LiteOS內核的幾大不同


摘要:鴻蒙和LiteOS的內核都是一樣的名字,可它們究竟有什么不同呢?一起來對比一下文件吧!

HarmonyOS系統

HarmonyOS是一款“面向未來”、面向全場景(移動辦公、運動健康、社交通信、媒體娛樂等)的分布式操作系統。在傳統的單設備系統能力的基礎上,HarmonyOS提出了基於同一套系統能力、適配多種終端形態的分布式理念,能夠支持多種終端設備。

鴻蒙系統的特點(硬件互助,資源共享):

1)分布式軟總線

分布式軟總線是多種終端設備的統一基座,為設備之間的互聯互通提供了統一的分布式通信能力,能夠快速發現並連接設備,高效地分發任務和傳輸數據。

2)分布式設備虛擬化

分布式設備虛擬化平台可以實現不同設備的資源融合、設備管理、數據處理,多種設備共同形成一個超級虛擬終端。針對不同類型的任務,為用戶匹配並選擇能力合適的執行硬件,讓業務連續地在不同設備間流轉,充分發揮不同設備的資源優勢。

3)分布式數據管理

分布式數據管理基於分布式軟總線的能力,實現應用程序數據和用戶數據的分布式管理。用戶數據不再與單一物理設備綁定,業務邏輯與數據存儲分離,應用跨設備運行時數據無縫銜接,為打造一致、流暢的用戶體驗創造了基礎條件。

4)分布式任務調度

分布式任務調度基於分布式軟總線、分布式數據管理、分布式Profile等技術特性,構建統一的分布式服務管理(發現、同步、注冊、調用)機制,支持對跨設備的應用進行遠程啟動、遠程調用、遠程連接以及遷移等操作,能夠根據不同設備的能力、位置、業務運行狀態、資源使用情況,以及用戶的習慣和意圖,選擇合適的設備運行分布式任務。

5)一次開發,多端部署

HarmonyOS提供了用戶程序框架、Ability框架以及UI框架,支持應用開發過程中多終端的業務邏輯和界面邏輯進行復用,能夠實現應用的一次開發、多端部署,提升了跨設備應用的開發效率。一次開發、多端部署。

6)統一OS,彈性部署

HarmonyOS通過組件化和小型化等設計方法,支持多種終端設備按需彈性部署,能夠適配不同類別的硬件資源和功能需求。支撐通過編譯鏈關系去自動生成組件化的依賴關系,形成組件樹依賴圖,支撐產品系統的便捷開發,降低硬件設備的開發門檻。

HarmonyOS系統架構整體遵從分層設計,從下向上依次為:內核層、系統服務層、框架層和應用層。系統功能按照“系統 > 子系統 > 功能/模塊”逐級展開,在多設備部署場景下,支持根據實際需求裁剪某些非必要的子系統或功能/模塊。因為系統比較龐大,今天主要是針對其中一個內核進行分析,即LiteOS內核。

Huawei LiteOS

Huawei LiteOS是華為針對物聯網領域推出的輕量級物聯網操作系統,是華為物聯網戰略的重要組成部分,具備輕量級、低功耗、互聯互通、組件豐富、快速開發等關鍵能力,基於物聯網領域業務特征打造領域性技術棧,為開發者提供 “一站式” 完整軟件平台,有效降低開發門檻、縮短開發周期,可廣泛應用於可穿戴設備、智能家居、車聯網、LPWA等領域。

Huawei LiteOS自開源社區發布以來,圍繞物聯網市場從技術、生態、解決方案、商用支持等多維度使能合作伙伴,構建開源的物聯網生態,目前已經聚合了50+ MCU和解決方案合作伙伴,共同推出一批開源開發套件和行業解決方案,幫助眾多行業客戶快速的推出物聯網終端和服務,客戶涵蓋抄表、停車、路燈、環保、共享單車、物流等眾多行業,加速物聯網產業發展和行業數字化轉型。

關鍵特性

1)低功耗框架:

LiteOS是輕量級的物聯網操作系統,最小內核尺寸僅為6KB,具備快速啟動、低功耗等優勢,Tickless機制顯著降低傳感器數據采集功耗。

2)OpenCPU架構:

專為LiteOS小內核架構設計,滿足硬件資源受限需求,比如LPWA場景下的水表、氣表、車檢器等,通過MCU和通信模組二合一的OpenCPU架構,顯著降低終端體積和終端成本。

3)安全性設計:

構建低功耗安全傳輸機制,支持雙向認證、FOTA固件差分升級,DTLS/DTLS+等,構建低功耗安全傳輸機制。

4)端雲互通組件:

LiteOS SDK端雲互通組件是終端對接到IoT雲平台的重要組件,集成了 LwM2M、CoAP、MQTT、mbed TLS、LwIP等全套IoT互聯互通協議棧,大大減少開發周期,快速入雲。

5)SOTA遠程升級:

SOTA遠程升級,通過差分方式降低升級包的尺寸,更能適應低帶寬網絡環境和電池供電環境,經過特別優化差分合並算法,對RAM資源要求更少,滿足海量低資源終端的升級訴求。

系統支持對比

目前HUAWEI LiteOS支持的硬件比鴻蒙還是豐富一些,提供了更多內核案例和移植策略,從代碼來看,它們都支持Cortex-M內核和Cortex-A內核,HarmonyOS內核文件分別有兩個,即liteos-a和liteos-m,例程分別有對應的支持,從內核名稱上看到liteos的字樣,可以推測鴻蒙內核對於Huawei LiteOS內核具有一定的繼承性;而Huawei LiteOS開源主線上僅用一個統一的內核支持了多種CPU架構,可以從Arch目錄下看到提供了對Cortex-A(包括32位及64位處理器)的支持,以及Cortex-M的支持。

總結兩個系統對硬件內核架構的支持情況。

因為產品定位不同,兩個系統的對內存的差別也是非常大,HUAWEI LiteOS因為其具有很高的剪裁特性,在硬件資源有限的時候的僅保留內核,可以剪裁到6KB的ROM以及消耗2KB的RAM資源,可以說對資源的消耗是低到一定程度,而HarmonyOS為了保證系統性能要求,對硬件的資源則是128K的ROM及2MB的RAM的要求。

從資源消耗可以看出,HUAWEI LiteOS主打IOT物聯網業務領域,更適合硬件低配置、低成本、低功耗的應用場景;HarmonyOS更適合多媒體交互,需要Js增加開發效率的復雜大應用的場合使用。

現在兩個系統都已經開始在市場在開發者在進行學習和開發,那對其硬件的支持又是如何,總結如下表:

HarmonyOS的開發板支持目前還是以華為自研的芯片為主,都是自身主打的IOT及視頻處理芯片,這樣開發速度快可以更快的應用到自己的設備上,驗證系統可靠性;HUAWEI LiteOS除了支持華為自研芯片的開發板外,還支持了市場上主流的ARM開發學習板(如STM原生、小熊派、野火、正點原子等),同時提供了移植指南,可以讓開發者更容易進行開發板適配以及內核移植,並輕松進行IoT業務的上手和開發。

內核文件對比

因為兩者對Cortex-M的內核名字都是liteos-m,因為我就對比了兩者的內核kernel文件夾。

首先分別從各自的git庫下載master下發布的最新文件

文件庫地址

HarmonyOS-liteos-m:

https://gitee.com/openharmony/kernel_liteos_m.git;

HUAWEI LiteOS:

https://gitee.com/LiteOS/LiteOS.git;    

從gitee上的庫kernel文件夾下的文件的日期都是兩個月前,說明內核的發布時間比較一致,那文件的內容,分別對比文件目錄,發現有很大的相似性,共有文件目錄都是/base;/extended;/include;HUAWEI LiteOS下會有一個Kconfig和Makefile用於文件包含定義和Kconfig文件菜單生成;而HarmonyOS則是BULD.gn和los_init.c分別用於IDE的文件編譯及內核文件剪輯初始化文件,文件功能基本移植,只是適配的編譯環境不同。

從這里開始就有些不同,base下的文件夾設置兩者的區別較大。

左邊是HarmonyOS,右邊是HUAWEI LiteOS的base文件下的文件部分,HarmonyOS把內核文件封裝在IPC和Core兩個文件中,而HUAWEI LiteOS則是放在的base文件下,對比文件發現,HarmonyOS內核的文件名字大部分在HUAWEI LiteOS base文件夾下找到,但文件大小都不相同,這次僅對比一個文件,task.c,觀察兩者的異同,雖然有部分接口名字已經不一樣,但實際的實現基本類似,可以看出對於LiteOS kernel的繼承性。

左邊是HarmonyOS提供task操作接口,右邊是HUAWEI LiteOS提供task操作接口,都提供了task的初始化(建立),文件上下文查詢,鈎子函數的使用,同時HarmonyOS提供了所有task的信息獲取,HUAWEI LiteOS提供了task入口地址的獲取的細節功能。

今天分享到這里,后面希望可以分享各自系統移植及使用。

本文分享自華為雲社區《鴻蒙LiteOS-M內核與HUAWEI LiteOS內核對比》,原文作者:o0龍龍0o 。

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM