add submodule kernel_linux_6
简介
LiteOS
Linux
目录
约束
使用
构建说明
相关仓
OpenHarmony针对不同量级的系统,分别使用了不同形态的内核,分别为LiteOS和Linux。在轻量系统、小型系统可以选用LiteOS;在小型系统和标准系统上可以选用Linux。
系统级别
轻量系统
小型系统
标准系统
√
×
OpenHarmony LiteOS内核是面向IoT领域的实时操作系统内核,它同时具备RTOS轻快和Linux易用的特点。
OpenHarmony LiteOS内核主要包括进程和线程调度、内存管理、IPC机制、timer管理等内核基本功能。
OpenHarmony LiteOS内核的源代码分为 kernel_liteos_a 和 kernel_liteos_m 这2个代码仓库,其中kernel_liteos_a主要针对小型系统(small system)和标准系统(standard system),而kernel_liteos_m则主要针对轻量系统(mini system),下面主要针对kernel_liteos_a代码仓库进行介绍。图1为OpenHarmony LiteOS-A内核架构图:
图 1 OpenHarmony LiteOS-A内核架构图
OpenHarmony的Linux内核基于开源Linux内核LTS 4.19.y / 5.10.y / 6.6.y 分支演进,在此基线基础上,回合CVE补丁及OpenHarmony特性,作为OpenHarmony Common Kernel基线。针对不同的芯片,各厂商合入对应的板级驱动补丁,完成对OpenHarmony的基线适配。
Linux社区LTS 4.19.y分支信息请查看kernel官网;
Linux社区LTS 5.10.y分支信息请查看kernel官网;
Linux社区LTS 6.6.y分支信息请查看kernel官网。
内核的Patch组成模块,在编译构建流程中,针对具体芯片平台,合入对应的架构驱动代码,进行编译对应的内核镜像。所有补丁来源均遵守GPL-2.0协议。
kernel/ ├── linux │ ├── common_modules # linux内核通用模块仓 │ ├── linux-4.19 # OpenHarmony linux-4.19 Common kernel │ ├── linux-5.10 # OpenHarmony linux-5.10 Common kernel │ ├── linux-6.6 # OpenHarmony linux-6.6 Common kernel │ ├── build │ │ ├── BUILD.gn # 编译框架GN文件 │ │ ├── kernel.mk # 内核编译文件 │ │ └── ohos.build # 内核编译组件文件 │ ├── patches │ │ ├── linux-4.19 # linux-4.19 相关patch │ │ │ ├── common_patch │ │ │ │ └── hdf.patch # linux-4.19 HDF patches │ │ │ └── hispark_taurus_patch │ │ │ └── hispark_taurus.patch # linux-4.19 hispark_taurus SOC patches │ │ ├── linux-5.10 │ │ │ ├── common_patch │ │ │ │ └── hdf.patch # linux-5.10 HDF patches │ │ │ └── hispark_taurus_patch │ │ │ │ └── hispark_taurus.patch # linux-5.10 hispark_taurus SOC patches │ │ │ └── rk3568_patch │ │ │ ├── kernel.patch # linux-5.10 rk3568 SOC patches │ │ │ └── hdf.patch # linux-5.10 rk3568 定制 HDF patches │ │ └── linux-6.6 │ │ └── rk3568_patch │ │ ├── kernel.patch # linux-6.6 rk3568 SOC patches │ │ └── hdf.patch # linux-6.6 rk3568 定制 HDF patches │ └── config │ ├── linux-4.19 │ │ └── arch │ │ └── arm │ │ └── configs │ │ ├── hispark_taurus_small_defconfig # 厂商Hisilicon对应的开源开发板hispark_taurus小型系统的defconfig │ │ ├── hispark_taurus_standard_defconfig # 厂商Hisilicon对应的开源开发板hispark_taurus标准系统的defconfig │ │ ├── small_common_defconfig # 小型系统的内核的common defconfig │ │ └── standard_common_defconfig # 标准系统的内核的common defconfig │ └── linux-5.10 or linux-6.6 │ ├── base_defconfig # 内核必选或安全红线模块基础配置 │ ├── type # 形态配置目录 │ │ ├── small_defconfig # 小型系统常用配置文件 │ │ └── standard_defconfig # 标准系统常用配置文件 │ ├── form # 版本配置目录 │ │ └── debug_defconfig # 调试版本配置文件(示例目前无配置需求) │ ├── rk3568 # 厂商平台配置目录 │ │ └── arch │ │ └── arm64_defconfig # 芯片单板64位版本相关配置文件 │ └── product # 相关产品类型配置目录 │ └── phone_defconfig # 手机类型产品相关配置文件 └── liteos_a # liteos内核基线代码 ├── 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 # 支持不同的芯片平台代码,如hispark_taurus等 │ ├── hw # 时钟与中断相关逻辑代码 │ ├── include # 对外暴露头文件存放目录 │ └── uart # 串口相关逻辑代码 ├── platform # 支持不同的芯片平台代码,如hispark_taurus等 ├── security # 安全特性相关的代码,包括进程权限管理和虚拟id映射管理 ├── syscall # 系统调用 └── tools # 构建工具及相关配置和代码
LiteOS:
Hi3518EV300默认使用jffs2文件系统,hispark_taurus默认使用FAT文件系统。若要使用其他文件系统,需要新增适配。
参见LiteOS-A内核README和LiteOS-M内核README的“使用说明”章节。
合入HDF补丁
在kernel/linux/build仓中,按照kernel.mk中HDF的补丁合入方法,合入不同内核版本对应的HDF内核补丁:
$(OHOS_BUILD_HOME)/drivers/hdf_core/adapter/khdf/linux/patch_hdf.sh $(OHOS_BUILD_HOME) $(KERNEL_SRC_TMP_PATH) $(KERNEL_PATCH_PATH) $(DEVICE_NAME)
合入芯片平台驱动补丁
以hispark_taurus为例:
在kernel/linux/build仓中,按照kernel.mk中的芯片组件所对应的patch路径规则及命名规则,将对应的芯片组件patch放到对应路径下:
DEVICE_PATCH_DIR := $(OHOS_BUILD_HOME)/kernel/linux/patches/${KERNEL_VERSION}/$(DEVICE_NAME)_patch DEVICE_PATCH_FILE := $(DEVICE_PATCH_DIR)/$(DEVICE_NAME).patch
修改自己所需要编译的config
在kernel/linux/build仓中,按照kernel.mk中的芯片组件所对应的patch路径规则及命名规则,将对应的芯片组件config放到对应路径下:
KERNEL_CONFIG_PATH := $(OHOS_BUILD_HOME)/kernel/linux/config/${KERNEL_VERSION} DEFCONFIG_FILE := $(DEVICE_NAME)_$(BUILD_TYPE)_defconfig
须知: 由于OpenHarmony工程的编译构建流程中会拷贝kernel/linux/linux-*.*的代码环境后进行打补丁动作,在使用OpenHarmony的版本级编译命令前,需要kernel/linux/linux-*.*原代码环境。 根据不同系统工程,编译完成后会在out目录下的kernel目录中生成对应实际编译的内核,基于此目录的内核,进行对应的config修改,将最后生成的.config文件cp到config仓对应的路径文件里,即可生效。
须知:
由于OpenHarmony工程的编译构建流程中会拷贝kernel/linux/linux-*.*的代码环境后进行打补丁动作,在使用OpenHarmony的版本级编译命令前,需要kernel/linux/linux-*.*原代码环境。
根据不同系统工程,编译完成后会在out目录下的kernel目录中生成对应实际编译的内核,基于此目录的内核,进行对应的config修改,将最后生成的.config文件cp到config仓对应的路径文件里,即可生效。
以hispark_taurus开源开发板+ubuntu x86主机开发环境为例
使用工程的全量编译命令,编译生成uImage内核镜像
./build.sh --product-name rk3568 # 编译rk3568镜像 --gn-args linux_kernel_version="linux-6.6" # 编译指定内核版本
内核子系统
drivers_liteos
kernel_liteos_a
kernel_liteos_m
device_qemu
Linux:
kernel_linux_patches
kernel_linux_config
kernel_linux_build
kernel_linux_5.10
kernel_linux_6.6
欢迎访问OpenHarmony文档仓库,参与OpenHarmony开发者文档开源项目,与我们一起完善开发者文档。
此仓库存放OpenHarmony网站提供的设备开发、应用开发对应的开发者文档。
访问官网
中文文档
English Documentation
master:最新开发版本。
OpenHarmony 5.0.0 Release版本:点击此处了解版本详情。
OpenHarmony 4.1 Release版本:点击此处了解版本详情。
OpenHarmony 4.0 Release版本:点击此处了解版本详情。
OpenHarmony 3.2 Release版本:点击此处了解版本详情。
该版本已更新至OpenHarmony 3.2.3 Release,点击此处了解版本详情。
OpenHarmony 3.1 Release版本:点击此处了解版本详情。
该版本已更新至OpenHarmony 3.1.7 Release,点击此处了解版本详情。
OpenHarmony 3.0 LTS版本:点击此处了解版本详情。
该版本已更新至OpenHarmony 3.0.8 LTS,点击此处了解版本详情。
OpenHarmony-1.0.1-Release
如需了解更多版本详情,请点击此处。 如需了解各版本的维护策略,请点击此处。
3rd-Party-License:第三方开源软件及许可证说明
欢迎您参与贡献,我们鼓励开发者以各种方式参与文档反馈和贡献。
您可以对现有文档进行评价、简单更改、反馈文档质量问题、贡献您的原创内容,详细请参考贡献文档。
卓越贡献者将会在开发者社区文档贡献专栏表彰公示。
邮件列表:docs@openharmony.io
Zulip群组:documentation_sig
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
内核子系统
简介
LiteOS
Linux
目录
约束
使用
构建说明
相关仓
简介
OpenHarmony针对不同量级的系统,分别使用了不同形态的内核,分别为LiteOS和Linux。在轻量系统、小型系统可以选用LiteOS;在小型系统和标准系统上可以选用Linux。
系统级别
轻量系统
小型系统
标准系统
LiteOS
√
√
×
Linux
×
√
√
LiteOS
OpenHarmony LiteOS内核是面向IoT领域的实时操作系统内核,它同时具备RTOS轻快和Linux易用的特点。
OpenHarmony LiteOS内核主要包括进程和线程调度、内存管理、IPC机制、timer管理等内核基本功能。
OpenHarmony LiteOS内核的源代码分为 kernel_liteos_a 和 kernel_liteos_m 这2个代码仓库,其中kernel_liteos_a主要针对小型系统(small system)和标准系统(standard system),而kernel_liteos_m则主要针对轻量系统(mini system),下面主要针对kernel_liteos_a代码仓库进行介绍。图1为OpenHarmony LiteOS-A内核架构图:
图 1 OpenHarmony LiteOS-A内核架构图

Linux
OpenHarmony的Linux内核基于开源Linux内核LTS 4.19.y / 5.10.y / 6.6.y 分支演进,在此基线基础上,回合CVE补丁及OpenHarmony特性,作为OpenHarmony Common Kernel基线。针对不同的芯片,各厂商合入对应的板级驱动补丁,完成对OpenHarmony的基线适配。
Linux社区LTS 4.19.y分支信息请查看kernel官网;
Linux社区LTS 5.10.y分支信息请查看kernel官网;
Linux社区LTS 6.6.y分支信息请查看kernel官网。
内核的Patch组成模块,在编译构建流程中,针对具体芯片平台,合入对应的架构驱动代码,进行编译对应的内核镜像。所有补丁来源均遵守GPL-2.0协议。
目录
约束
LiteOS:
Hi3518EV300默认使用jffs2文件系统,hispark_taurus默认使用FAT文件系统。若要使用其他文件系统,需要新增适配。
使用
LiteOS使用说明
参见LiteOS-A内核README和LiteOS-M内核README的“使用说明”章节。
linux使用说明
合入HDF补丁
在kernel/linux/build仓中,按照kernel.mk中HDF的补丁合入方法,合入不同内核版本对应的HDF内核补丁:
合入芯片平台驱动补丁
以hispark_taurus为例:
在kernel/linux/build仓中,按照kernel.mk中的芯片组件所对应的patch路径规则及命名规则,将对应的芯片组件patch放到对应路径下:
修改自己所需要编译的config
在kernel/linux/build仓中,按照kernel.mk中的芯片组件所对应的patch路径规则及命名规则,将对应的芯片组件config放到对应路径下:
构建说明
以hispark_taurus开源开发板+ubuntu x86主机开发环境为例
使用工程的全量编译命令,编译生成uImage内核镜像
相关仓
内核子系统
LiteOS:
drivers_liteos
kernel_liteos_a
kernel_liteos_m
device_qemu
Linux:
kernel_linux_patches
kernel_linux_config
kernel_linux_build
kernel_linux_5.10
kernel_linux_6.6
OpenHarmony文档
欢迎访问OpenHarmony文档仓库,参与OpenHarmony开发者文档开源项目,与我们一起完善开发者文档。
此仓库存放OpenHarmony网站提供的设备开发、应用开发对应的开发者文档。
文档目录结构
访问官网
中文文档
English Documentation
OpenHarmony文档版本分支说明
最新版本
master:最新开发版本。
OpenHarmony 5.0.0 Release版本:点击此处了解版本详情。
OpenHarmony 4.1 Release版本:点击此处了解版本详情。
OpenHarmony 4.0 Release版本:点击此处了解版本详情。
OpenHarmony 3.2 Release版本:点击此处了解版本详情。
该版本已更新至OpenHarmony 3.2.3 Release,点击此处了解版本详情。
OpenHarmony 3.1 Release版本:点击此处了解版本详情。
该版本已更新至OpenHarmony 3.1.7 Release,点击此处了解版本详情。
OpenHarmony 3.0 LTS版本:点击此处了解版本详情。
该版本已更新至OpenHarmony 3.0.8 LTS,点击此处了解版本详情。
已停止维护的历史版本
OpenHarmony-1.0.1-Release
如需了解更多版本详情,请点击此处。 如需了解各版本的维护策略,请点击此处。
第三方开源软件及许可说明
3rd-Party-License:第三方开源软件及许可证说明
贡献
欢迎您参与贡献,我们鼓励开发者以各种方式参与文档反馈和贡献。
您可以对现有文档进行评价、简单更改、反馈文档质量问题、贡献您的原创内容,详细请参考贡献文档。
卓越贡献者将会在开发者社区文档贡献专栏表彰公示。
邮件列表:docs@openharmony.io
Zulip群组:documentation_sig