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。

相关推荐
程序员阿灿19 分钟前
CentOS服务器能ping通却无法yum install:指定镜像源解决
linux·服务器·centos
丑过三八线31 分钟前
在Linux下安装Gitlab
linux·运维·gitlab
Paper_Love1 小时前
Linux-ftp tftp vsftpd区别
linux
s_little_monster2 小时前
【Linux】线程互斥之线程加锁
linux·运维·经验分享·redis·笔记·学习·学习方法
来鸟 鸣间2 小时前
pidstat指令分析
linux
长流小哥2 小时前
Linux网络协议栈深度解析:从数据封装到子网划分的底层架构
linux·网络协议·架构
冰冷的bin2 小时前
【Linux】解决ssh连接失败问题
linux·ssh
MobiCetus2 小时前
Linux Kernel 9
java·linux·运维·服务器·windows·ubuntu·gnu
一个小白5552 小时前
Linux,redis群集模式,主从复制,读写分离
linux·运维·数据库·centos
时72 小时前
linux常用命令记录
linux·运维