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. OpenHarmony移植小型系统exynos4412(

    2024-07-16 14:12:02       18 阅读
  2. OpenHarmony移植小型系统exynos4412(

    2024-07-16 14:12:02       19 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 14:12:02       51 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 14:12:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 14:12:02       44 阅读
  4. Python语言-面向对象

    2024-07-16 14:12:02       55 阅读

热门阅读

  1. ChatGPT对话:如何把Html文件转换为Markdown文件

    2024-07-16 14:12:02       16 阅读
  2. 第2部分:物联网模式在行动

    2024-07-16 14:12:02       16 阅读
  3. c# 在线程中访问ui元素

    2024-07-16 14:12:02       19 阅读
  4. C语言入门-7.结构体与C++引用

    2024-07-16 14:12:02       19 阅读
  5. Python3 第二十二课 -- 装饰器

    2024-07-16 14:12:02       25 阅读
  6. moment()获取时间

    2024-07-16 14:12:02       19 阅读
  7. 【Vue】 style中的scoped

    2024-07-16 14:12:02       14 阅读
  8. 乡镇集装箱生活污水处理设备处理效率高

    2024-07-16 14:12:02       12 阅读