当前位置: 首页 > ai >正文

HarmonyOS基础概念

一、OpenHarmony、HarmonyOS和Harmony NEXT区别

OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,开放原子开源基金会由华为、阿里、腾讯、百度、浪潮、招商银行、360等十家互联网企业共同发起组建。目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。

HarmonyOS 是华为是基于 OpenHarmony、AOSP等开源项目开发的面向多种全场景智能设备的商用版本,所以HarmonyOS包含OpenHarmony,OpenHarmony是基础。

Harmony Next是在Harmony OS 5.0版本之后针对华为手机所使用的商用操作系统进行的独立命名。Harmony OS用于穿戴设备,Harmony Next用于手机。后续的版本,预计手机商用操作系统,还将继续使用Next的命名。

二、HarmonyOS 5和Harmony OS NEXT走向单框架

2024年HarmonyOS 5/HarmonyOS NEXT,是HarmonyOS走向独立自主操作系统的一个里程碑。

OpenHarmony作为开源项目是不兼容安卓框架AOSP(Android Open Source Project)的。但OpenHarmony支持多内核,包括Linux内核和LiteOS内核。由于Linux内核的兼容性,因此OpenHarmony可以兼容较多的芯片和驱动生态。

HarmonyOS 4及之前的版本:作为华为的早期商用版本,为了兼容安卓生态,添加了AOSP框架。旨在达到向下兼容芯片和驱动(OpenHarmony包含Linux内核,本身就支持),向上兼容安卓生态的目的(通过AOSP支持),是一个过度状态。通过Harmony内核和Linux内核,可以兼容包括麒麟芯片、高通芯片以及英特尔芯片的产品,兼容X86和ARM指令集。通过AOSP支持安卓生态。

HarmonyOS 5 / HarmonyOS NEXT采用单框架结构。兼容灵犀指令集,而不再兼容ARM指令集。不包含Linux内核,只包含鸿蒙内核(未开源无法证实)。不再包含安卓开源框架代码,独立生态,不兼容安卓APP。

三、宏内核和微内核的概念

操作系统的内核分为两类:宏内核和微内核。

宏内核是一种操作系统内核设计方法,在这种设计中,操作系统的核心功能(如进程管理、内存管理、硬件驱动程序、文件系统等)都运行在内核空间,并且紧密集成在一起。宏内核的主要特点是内核模块之间紧密耦合,系统的所有功能都在一个单一的大块代码中完成。

微内核也是一种操作系统内核设计方法,它将操作系统的核心功能限制到最小的部分,只提供最基本的服务,例如进程管理、内存管理和消息传递等。其他的操作系统功能,如设备驱动、文件系统和网络协议等,则在用户空间中以服务的形式运行,这种设计思想使得操作系统的各个组件更加模块化和可扩展。

四、Linux内核、Harmony内核

Linux内核

Linux内核采用宏内核的设计。对下,它管理系统的所有硬件设备;对上,它通过系统调用,向Library Routine(例如C库)或者其它应用程序提供接口。

鸿蒙内核

HarmonyOS采用微内核设计,在微内核层只负责很少的工作,更多的能力交给上层。5层结构,从下往上分别为:虚拟化层、微内核、核心服务、服务、应用。

五、OpenHarmony所使用内核和Harmony OS所使用内核

Open Harmony操作系统所使用内核

OpenHarmony采用多内核的设计,目前支持的内核包括linux内核和LiteOS内核(低内存设备使用的操作系统内核)。支持针对不同资源受限设备选用适合的OS内核。内核抽象层通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。

Harmony OS操作系统所使用内核

Harmony OS双框架阶段采用多内核设计,支持linux内核和鸿蒙内核和LiteOS内核。Harmony OS 5.0之后,不再包含Linux内核(未证实),仅包含鸿蒙内核和OpenHarmony中的LiteOS内核,同时通过底层接口适配可以支持Linux驱动。针对不同的设备,预计可以选用不同的内核,比如穿戴设备可以选用LiteOS内核,手机则可以选用鸿蒙内核。

http://www.xdnf.cn/news/15091.html

相关文章:

  • 【TCP/IP】17. 移动 IP
  • Swift 解 LeetCode 324:一步步实现摆动排序 II,掌握数组重排的节奏感
  • 雷达遥感星座微波射频组件抗辐照MCU的选型与实践
  • 【JMeter】接口加密
  • 【JMeter】调试方法
  • 学弟让我帮忙写一个学生管理系统的后端,我直接上科技
  • [大模型问数]实现大模型调用MYSQL(03)【MCP笔记】
  • Webview 中可用的 VS Code 方法
  • Playwright Python 教程:网页自动化
  • 飞算JavaAI:新一代智能编码引擎,革新Java研发范式
  • Linux进程间通信--命名管道
  • 深度学习入门教程(三)- 线性代数教程
  • react打包发到线上报错Minified React error #130
  • 如何快速掌握WeNet:从零到一的端到端语音识别学习指南
  • spring-ai RAG(Retrieval-Augmented Generation)
  • 上位机知识篇---网络通信端口
  • 线程邮箱(线程间通信的异步缓存机制)
  • OBB旋转框检测配置与训练全流程(基于 DOTA8 数据集)
  • 云原生周刊:镜像兼容性
  • 十、MyBatis的逆向工程
  • 美颜SDK贴纸引擎设计指南:动画、识别与适配的实现逻辑
  • 华为数据通信网络基础
  • 香港站群服务器8C/4C/2C/1C有什么区别
  • 使用you-get命令下载视频/音频/图像
  • 北京-4年功能测试2年空窗-报培训班学测开-第四十八天
  • 【世纪龙科技】几何G6新能源汽车结构原理教学软件
  • 60 美元玩转 Li-Fi —— 开源 OpenVLC 平台入门(附 BeagleBone Black 驱动简单解析)
  • 飞算Java AI:专为 Java 开发者打造的智能开发引擎
  • uniapp制作一个个人页面
  • C++11堆操作深度解析:std::is_heap与std::is_heap_until原理解析与实践