淘先锋技术网

首页 1 2 3 4 5 6 7

鸿蒙OpenHarmony开篇-2021.06.02

内核版本Linux4.19
平台OpenHarmony
作者nineyole

今天是2021年6月2日,晚上就有鸿蒙2.0发布会,去OpenHarmony的官网看了一下,发现2.0也已经发布了。

在这里插入图片描述

下载地址在这里,可以自行下载。

框架及说明

整个OpenHarmony框架如下图所示:

在这里插入图片描述

内核层

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

系统服务层

系统服务层是OpenHarmony的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:

  • 系统基本能力子系统集:为分布式应用在多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、公共基础库、多模输入、图形、安全、AI等子系统组成。
  • 基础软件服务子系统集:提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X) 等子系统组成。
  • 增强软件服务子系统集:提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。
  • 硬件服务子系统集:提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。

根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。

框架层

框架层为应用开发提供了C/C++/JS等多语言的用户程序框架和Ability框架,适用于JS语言的JS UI框架,以及各种软硬件服务对外开放的多语言框架API。根据系统的组件化裁剪程度,设备支持的API也会有所不同。

应用层

应用层包括系统应用和第三方非系统应用。应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。

源码

整个源码的目录如下所示:
在这里插入图片描述

内核层

个人对kernel层比较感兴趣,进去看看呢。

在这里插入图片描述

Linux内核

其中Linux4.19就是我们常见的Linux内核。其目录如下所示。看上去是不是很熟悉。

在这里插入图片描述

LiteOS-A

​ OpenHarmony LiteOS-A内核是基于Huawei LiteOS内核演进发展的新一代内核,Huawei LiteOS是面向IoT领域构建的轻量级物联网操作系统。在IoT产业高速发展的潮流中,OpenHarmony LiteOS-A内核能够带给用户小体积、低功耗、高性能的体验以及统一开放的生态系统能力,新增了丰富的内核机制、更加全面的POSIX标准接口以及统一驱动框架HDF(OpenHarmony Driver Foundation)等,为设备厂商提供了更统一的接入方式,为OpenHarmony的应用开发者提供了更友好的开发体验。

整个文件的目录如下所示:
在这里插入图片描述

目前支持的有:

在这里插入图片描述

不知道后续像全志,瑞芯微等国产芯片是否会跟进。

LiteOS-M

而关于LiteOS-M,官方的说法如下:

​ OpenHarmony LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点,其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等,分为硬件相关层以及硬件无关层,硬件相关层提供统一的HAL(Hardware Abstraction Layer)接口,提升硬件易适配性,不同编译工具链和芯片架构的组合分类,满足AIoT类型丰富的硬件和编译工具链的拓展。

在这里插入图片描述

目前支持的有:cortexM3、cortexM4、cortexM7。

在这里插入图片描述

总结

​ OpenHarmony系统是上层重写了所有的api以及架构,底层可以是采用多内核,可以是Linux,也可以是 LiteOS-A或者 LiteOS-M,其中 LiteOS-A主要针对cortexA系列的,LiteOS-M主要针对于cortexM系列,Linux主要针对功能复杂且庞大的系统,像手机,PC等。

​ 看完应该都清楚了吧。期待国产OS,要是能统一PC、手机、物联网、服务器,那基本上就妥妥的了。

​ 最后,默默的问一句,华为基于OpenHarmony开发的系统叫Harmony,那这样别的厂家基于OpenHarmony开发的系统应该叫什么呢?