首先,我们需要知道HarmonyOS与OpenHarmony是不同的概念,我们需要知道它们的区别:

HarmonyOS是华为独家开发的,但华为在2020、2021年分两次将HarmonyOS的基础能力全部捐献给了开放原子开源基金会,形成了OpenHarmony开源项目,华为对开源鸿蒙没有控制权,当然华为仍将是开源鸿蒙的开发贡献者,同时也是AOSP、Linux、Eclipse等众多开源项目的贡献者,所以其实其他手机厂商也可以使用OpenHarmony,只是一旦你采用了鸿蒙,便一定程度上放弃了安卓,如果鸿蒙在生态上没能超越安卓,装了鸿蒙的手机就可能被安卓打败,并且OpenHarmony开放的只是HarmonyOS最基础的核心架构,想要在自家的手机上使用,需要投入大量精力在此基础上研发新系统,所以可以理解友商为何没有轻易采用鸿蒙。

HarmonyOS 2是华为基于OpenHarmony 2.0开发的商业版本,HarmonyOS是闭源的,兼容了AOSP,增加了HMS,使其能适配运行安卓软件,我们能够拿到的OpenHarmony是不能直接兼容安卓的。

下图是OpenHarmony的技术架构

我们嵌入式的主要关注内核层,我们根据硬件资源选择需要要移植的内核

内核层

  • 内核子系统:采用多内核(Linux内核或者LiteOS)设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,Kernel Abstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。

  • 驱动子系统:驱动框架(HDF)是系统硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。

OpenHarmony有三种内核

针对不同量级的系统,分别使用不同形态的内核

  • 轻量级系统内核LiteOS-M
  • 小型系统内核LiteOS-A/Linux内核
  • 标准系统内核OpenHarmony Linux

着重讲我接触过的LiteOS-M和OpenHarmony Linux,可分别跑在大小板上,形成包含上位机和下位机的项目

极小内核包含任务管理、内存管理、中断管理、异常管理和系统时钟。可裁剪的模块包括信号量、互斥锁、队列管理、事件管理、软件定时器等。 LiteOS支持 UP(单核)与 SMP(多核)模式,即支持在单核或者多核的环境上运行。

其中LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点。其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等。LiteOS-M已经支持ARM Cortex-M3、ARM Cortex-M4、ARM Cortex-M7、ARM Cortex-M33、RISC-V等主流架构,代表其可以运行在我们常用的STM32以及ESP系列 WIFI芯片上

上图是我在海思Hi3861WIFI芯片上运行LiteOS-M后总结的一个框架,可以发现跟我们单片机里的RTOS以及Linux内核是有相似之处的,并且我们搭建应用的时候可以移植开源的例程的内核与部分驱动层代码,不必从头搭建。

LiteOS-A内核主要应用于小型系统,面向设备一般是M级内存,可支持MMU隔离,业界类似的内核有Zircon或Darwin等。LiteOS-A当前支持ARMv7-a指令集架构,如果三方芯片为ARMv7-a架构,可以进行内核基础适配。

OpenHarmony内核态层 = OpenHarmony Linux内核 + OpenHarmony内核态特性

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

根据以上组合,我们可以通过两种途径获得:

1、OpenHarmony内核态层 = 三方Linux内核 + OpenHarmony内核态基础代码 + OpenHarmony内核态特性(如HDF,今后的HMDFS等)

2、OpenHarmony内核态层 = OpenHarmony Linux内核 + OpenHarmony内核态特性

其中方法1是比较实际的,能够较好地兼容三方芯片平台,即借助三方已有的Linux内核,来快速移植OpenHarmony

总结:

本文先帮助大家区分了HarmonyOS与OpenHarmony,并纠正可能对鸿蒙存在的偏见,然后从嵌入式开发者的角度介绍了开源鸿蒙的三种内核的组成及其特点,告诉大家选择什么样的硬件与内核来着手进行移植。更多的是概念性的东西,让大家对鸿蒙有整体的认知,帮助大家找到入手的方向,而与实操有关的内容,待我的后续介绍。

从何着手OpenHarmony?从这里开始认识嵌入式开源鸿蒙操作系统相关推荐

  1. OpenHarmony 简介:使用鸿蒙操作系统,开发者能做的是啥呢,学习NodJS,可以开发应用了。后续慢慢学习,赶紧去加星星。

    目录 前言 1,关于鸿蒙 2,使用地址 3,gitee代码 4,总结 前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/816 ...

  2. OpenHarmony开源鸿蒙与HarmonyOS商业鸿蒙的区别

    OpenHarmony开源鸿蒙与HarmonyOS商业鸿蒙的区别 一.本是同根生 最近鸿蒙开发越来越火,特别是因为开源鸿蒙的存在,很多系统开发,直接使用OpenHarmony. 但是初学者很容易把Ha ...

  3. 华为官方解析开源鸿蒙 OpenHarmony 3.1关键特性画布,教你如何完成飞机大战小游戏

    华为技术有限公司的江英杰为大家揭晓了关于开源鸿蒙 OpenHarmony 3.1 Beta 版中的一个关键特性,也就是 ArkUI 开发框架中的 canvas 画布. 据介绍,canvas 是 Ark ...

  4. 《OpenHarmony开源鸿蒙学习入门》-- 系统相机应用源码解析(一)

    OpenHarmony开源鸿蒙学习入门–系统相机应用源码解析(一) 一.源码解析的目的: 为什么要去做源码解析这件事?我个人认为,首先可以提高我们对代码书写的能力,毕竟官方系统级的应用,会比demo的 ...

  5. OpenHarmony开源鸿蒙无人机来了

    前言: 以前就想拥有一台无人机,觉得好cool,后面接触OpenHarmony之后,就一直想做一台OpenHarmony的无人机. 奈何自己一直有拖延症,从21年拖延到23年,哈哈哈~~ 最近周末花了 ...

  6. 在STM32F407上跑OpenHarmony鸿蒙操作系统

    前言 openharmony移植示例 基于最新的master版本,目前支持的芯片有: STM32F407 GD32F303 GD32F450 目标是移植更多的开发板更多的MCU支持OpenHarmon ...

  7. Snowflake 获 2021 年度数据库称号;Linus 成为 Linux 项目中最强 committer;OpenHarmony 3.1 Beta 版发布 | 开源日报

    整理 | 宋彤彤 责编 | 屠敏 开源吞噬世界的趋势下,借助开源软件,基于开源协议,任何人都可以得到项目的源代码,加以学习.修改,甚至是重新分发.关注「开源日报」,一文速览国内外今日的开源大事件吧! ...

  8. 开源鸿蒙、元宇宙、区块链、开源大集合 | AloT开源科技节暨OpenHarmony技术论坛正火热报名中

    时间:2021年12月10日 9:00 - 2021年12月10日 16:00 地点:(广东广州)海珠区阅江中路380号广交会展馆-A区

  9. 中国首个开源基金会来了

    整理 | 郑丽媛 责编 | 屠敏 头图 | CSDN下载自开放原子官方 从索取.参与到深度贡献,在开源激荡发展 20 年后,中国迎来了首个开源软件基金会--开放原子开源基金会(OpenAtom Fou ...

最新文章

  1. IOS使用正则表达式去掉html中的标签元素,获得纯文本
  2. 亚马逊员工流动率150%,每8个月相当于“大换血”,网友:贝佐斯不知足
  3. 将h5用HBuilderX打包成安卓app后,document.documentElement.scrollTop的值始终为0或者document.body.scrollTop始终为0...
  4. C#下载文件(可显示进度)的方法实现
  5. 测试技术培训:如何测试磁盘写的速度
  6. modelsim仿真不出波形_直接扩频通信(下)仿真
  7. python 八大排序_python-打基础-八大排序
  8. 给图片加水印最简单的方法
  9. 网页配色方案及方法[网上配色文章集合
  10. 【机器学习】机器学习模型迭代方法(Python)
  11. ipa签名工具(IPA Resign Tool)在windows和macos系统下对苹果ipa文件一键重签名
  12. [C++]auto类型说明符
  13. win7/win10安装Ubuntu20.04双系统详细操作步骤
  14. JSON--就是键值对
  15. 最新数字藏品系统源码一套+价值9000缘
  16. 聊一聊28岁程序员被裁,我的思考和建议
  17. 计算机里s大小,Mbps和mb/s换算知识-电脑维护
  18. Twitter – 媒体与沉默的大多数
  19. 2022最新版本开运网运势测算网站数据node.js版接口数据H5网站算命接口
  20. 服装品牌如何成为“数字化的头号玩家”?这个案例不容错过!

热门文章

  1. MATLAB从0开始搭建简单的GUI界面
  2. 浮点运算量FLOPs与算力单位FLOPS
  3. [转] 【开源访谈】Muduo 作者陈硕访谈实录
  4. 机器人学笔记(改进)
  5. win10修改任务计划程序设置时提示“一个或多个指定的参数无效”的解决办法
  6. oracle查询被锁住的会话的sid,serial#,pid
  7. 企业要实现用计算机完成存货管理,《会计信息系统》习题含答案
  8. 漂亮的后台模版|50个漂亮的后台管理界面模板
  9. 大厂程序员年薪_2020互联网大厂薪资曝光:程序员薪资将会变成白菜价?
  10. 火山小视频服务器维护中,只有20%懂的玩转火山小视频,80%违规!