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