OpenHarmony移植之第三方内核移植(一)

OpenHarmony移植之第三方内核移植(一)

一、概述

本文主要是介绍将OpenHarmony系统移植到第三方芯片平台,借助第三方芯片平台已有的linux内核功能,进行快速的移植。

本文很多内容都取自OpenHarmony官网《一种快速移植OpenHarmony Linux内核的方法》

OpenAtom OpenHarmony

二、OpenHarmony系统框架

OpenHarmony = OpenHarmony内核态层 + OpenHarmony用户态层

其中OpenHarmony内核层就是上图的紫色部分,可以看到,它主要由内核本身(如Linux Kernel,LiteOS),和一些运行在内核态的一些特性组成,比如HDF等。

而OpenHarmony用户态层,在上图,就是紫色之外的部分。可以看到,由下往上看,它主要由系统服务层,框架层,应用层组成。在这儿我们将这三层整体称为"OpenHarmony用户态层"。

为什么这么区分呢?因为我们这篇文章主要是要讨论如何快速的把OpenHarmony移植到三方芯片平台上。而OpenHarmony的用户态层,整体来说和三方芯片平台的耦合度不高,移植较为方便。而内核态层中的内核本身以及HDF驱动框架等,和三方芯片平台的耦合度较高,是移植的重难点。我们先做这个区分,就是为了先把聚光灯打到我们最需要关注的OpenHarmony内核态层上,开始分析和解题。另外说明,本文只包含Linux内核的快速移植,不包含LiteOS的移植。

三、进行内核移植有两种办法

为了表述方便,我们在下文部分地方用"OH"代替"OpenHarmony"。

将OH内核态层继续分解

OH内核态层 = OH Linux内核 + OH内核态特性(可选特性或者必选特性,如必选特性HDF,今后的可选特性HMDFS等)

而OH Linux内核 = 标准LTS Linux 内核 + 三方SoC芯片平台代码 + OH内核态基础代码(支撑OH用户态层运行的最基础代码)

因此OH内核态层 = 标准LTS Linux 内核 + 三方SoC芯片平台代码 + OH内核态基础代码 + OH内核态特性(如HDF)

而将前两项组合,标准LTS Linux 内核 + 三方SoC芯片平台代码,其实就是一个三方Linux内核的基础组成。从上面的推导可以看出,OpenHarmony 内核态层其实能够由两种方法得到:

方法一:OH 内核态层 = 三方Linux内核 + OH内核态基础代码 + OH内核态特性(如HDF,今后的HMDFS等)

也就是直接借助三方Linux内核,再加上基础OH内核态基础代码、以及HDF等OH内核态特性。

方法二:OH 内核态层 = OH Linux内核 + OH内核态特性(如HDF,今后的HMDFS等)

也就是直接采用OHLinux内核,然后再加入OH的其他内核态特性。

当前方法二中OHLinux内核支持的三方芯片平台还不够丰富。为了能够响应三方开发者快速移植OpenHarmony的要求,下文会着重介绍方法一,即借助三方已有的Linux内核,来快速移植OpenHarmony。

相关推荐
小李小李无与伦比1 天前
使用Simiki,部署.md文档
linux·运维·服务器
做人不要太理性1 天前
【Linux系统】ELF 文件格式的硬核揭秘
java·linux·服务器
怀旧,1 天前
【Linux系统编程】12. 基础IO(下)
linux·运维·服务器
Winter_Sun灬1 天前
CentOS 7 编译安卓 arm64-v8a 版 OpenSSL 动态库(.so)
android·linux·centos
ベadvance courageouslyミ1 天前
系统编程之进程
linux·进程·pcb结构体
松涛和鸣1 天前
29、Linux进程核心概念与编程实战:fork/getpid全解析
linux·运维·服务器·网络·数据结构·哈希算法
南棱笑笑生1 天前
20251211给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时适配adb【type-C0】
linux·c语言·adb·rockchip
Yengi1 天前
【test】gtkmm-环境搭建
linux
Lightning-py1 天前
SSH远程连接服务器耗时>10s
linux·服务器·网络
starvapour1 天前
基于端口转发部署seafile私人云盘服务器
linux·ubuntu·seafile