OpenHarmony的多内核
OpenHarmony的多內核
作者:堅果
公眾號:“大前端之旅”
華為云享專家,InfoQ簽約作者,阿里云專家博主,51CTO博客首席體驗官,開源項目GVA成員之一,專注于大前端技術的分享,包括Flutter,小程序,安卓,VUE,JavaScript。
Linux內核
Linux內核的作用是將應用層序的請求傳遞給硬件,并充當底層驅動程序,對系統中的各種設備和組件進行尋址。支持模塊的動態裝卸(裁剪)。Linux內核就是基于這個策略實現的。選擇Linux是因為他的開源性以及成熟度。關于他的更多介紹,其實公開資料更多,就不做介紹了。
LiteOS內核
Huawei LiteOS 是華為自研、開源的物聯網實時操作系統,ARM、RISC-V等主流的CPU架構,以輕量級低功耗,快速啟動,互聯互通,安全等關鍵能力,為開發者提供 “一站式” 完整軟件平臺,有效降低開發門檻、縮短開發周期。
OpenHarmony 輕量級內核是基于IoT領域輕量級物聯網操作系統Huawei LiteOS內核演進發展的新一代內核,包含LiteOS-M和LiteOS-A兩類內核。
- LiteOS-M
- LiteOS-M內核主要應用于輕量系統,面向的MCU一般是百K級內存,可支持MPU隔離,業界類似的內核有FreeRTOS或ThreadX等;
- LiteOS-A
- LiteOS-A內核主要應用于小型系統,面向設備一般是M級內存,可支持MMU隔離,業界類似的內核有Zircon或Darwin等。
LiteOS-M
LiteOS-M的設計目標是支持小設備的運行
LiteOS-M的系統架構
OpenHarmony LiteOS-M內核是面向IoT領域構建的輕量級物聯網操作系統內核,具有小體積、低功耗、高性能的特點,其代碼結構簡單,主要包括內核最小功能集、內核抽象層、可選組件以及工程目錄等,分為硬件相關層以及硬件無關層,硬件相關層提供統一的HAL(Hardware Abstraction Layer)接口,提升硬件易適配性,不同編譯工具鏈和芯片架構的組合分類,滿足AIoT類型豐富的硬件和編譯工具鏈的拓展。
它實現了進程,線程,內存等管理機制,提供了常見IPC,軟定時器,等公共模塊,可以大幅度降低嵌入式設備開發的難度。
目錄
目錄結構如下,
/kernel/liteos_m ├── arch # 內核指令架構層目錄 │ ├── arm # arm 架構代碼 │ │ ├── arm9 # arm9 架構代碼 │ │ ├── cortex-m3 # cortex-m3架構代碼 │ │ ├── cortex-m33 # cortex-m33架構代碼 │ │ ├── cortex-m4 # cortex-m4架構代碼 │ │ ├── cortex-m7 # cortex-m7架構代碼 │ │ └── include # arm架構公共頭文件目錄 │ ├── csky # csky架構代碼 │ │ └── v2 # csky v2架構代碼 │ ├── include # 架構層對外接口存放目錄 │ ├── risc-v # risc-v 架構 │ │ ├── nuclei # 芯來科技risc-v架構代碼 │ │ └── riscv32 # risc-v官方通用架構代碼 │ └── xtensa # xtensa 架構代碼 │ └── lx6 # xtensa lx6架構代碼 ├── components # 可選組件 │ ├── backtrace # 棧回溯功能 │ ├── cppsupport # C++支持 │ ├── cpup # CPUP功能 │ ├── dynlink # 動態加載與鏈接 │ ├── exchook # 異常鉤子 │ ├── fs # 文件系統 │ ├── lmk # Low memory killer 機制 │ ├── lms # Lite memory sanitizer 機制 │ ├── net # Network功能 │ ├── power # 低功耗管理 │ ├── shell # shell功能 │ └── trace # trace 工具 ├── drivers # 驅動框架Kconfig ├── kal # 內核抽象層 │ ├── cmsis # cmsis標準接口支持 │ └── posix # posix標準接口支持 ├── kernel # 內核最小功能集支持 │ ├── include # 對外接口存放目錄 │ └── src # 內核最小功能集源碼 ├── targets # 板級工程目錄 ├── testsuites # 內核測試用例 ├── tools # 內核工具 ├── utils # 通用公共目錄OpenHarmony LiteOS-M內核的編譯構建系統是一個基于gn和ninja的組件化構建系統,支持按組件配置、裁剪和拼裝,按需構建出定制化的產品。
LiteOS-A
OpenHarmony LiteOS-A內核是基于Huawei LiteOS內核演進發展的新一代內核,是面向IoT領域構建的輕量級物聯網操作系統。新增了豐富的內核機制、更加全面的POSIX標準接口以及統一驅動框架HDF(OpenHarmony Driver Foundation)等,為設備廠商提供了更統一的接入方式,為OpenHarmony的應用開發者提供了更友好的開發體驗。
目錄
/kernel/liteos_a ├── apps # 用戶態的init和shell應用程序 ├── arch # 體系架構的目錄,如arm等 │ └── arm # arm架構代碼 ├── bsd # freebsd相關的驅動和適配層模塊代碼引入,例如USB等 ├── compat # 內核接口兼容性目錄 │ └── posix # posix相關接口 ├── drivers # 內核驅動 │ └── char # 字符設備 │ ├── mem # 訪問物理IO設備驅動 │ ├── quickstart # 系統快速啟動接口目錄 │ ├── random # 隨機數設備驅動 │ └── video # framebuffer驅動框架 ├── fs # 文件系統模塊,主要來源于NuttX開源項目 │ ├── fat # fat文件系統 │ ├── jffs2 # jffs2文件系統 │ ├── include # 對外暴露頭文件存放目錄 │ ├── nfs # nfs文件系統 │ ├── proc # proc文件系統 │ ├── ramfs # ramfs文件系統 │ └── vfs # vfs層 ├── kernel # 進程、內存、IPC等模塊 │ ├── base # 基礎內核,包括調度、內存等模塊 │ ├── common # 內核通用組件 │ ├── extended # 擴展內核,包括動態加載、vdso、liteipc等模塊 │ ├── include # 對外暴露頭文件存放目錄 │ └── user # 加載init進程 ├── lib # 內核的lib庫 ├── net # 網絡模塊,主要來源于lwip開源項目 ├── platform # 支持不同的芯片平臺代碼,如Hi3516DV300等 │ ├── hw # 時鐘與中斷相關邏輯代碼 │ ├── include # 對外暴露頭文件存放目錄 │ └── uart # 串口相關邏輯代碼 ├── security # 安全特性相關的代碼,包括進程權限管理和虛擬id映射管理 ├── syscall # 系統調用 └── tools # 構建工具及相關配置和代碼OpenHarmony LiteOS-A內核支持Hi3518EV300、Hi3516DV300單板,開發者可基于兩種單板開發運行自己的應用程序。
以上就是關于內核的一些基本介紹。
參考文檔
https://gitee.com/openharmony
總結
以上是生活随笔為你收集整理的OpenHarmony的多内核的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MacBookPro 关机花屏解决
- 下一篇: OpenHarmony的介绍