鸿蒙和liteos关系_鸿蒙os微内核

鸿蒙和liteos关系_鸿蒙os微内核HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。 分布式软总线是多种终端设备的统一基座,…

  • 摘要:鸿蒙和LiteOS的内核都是一样的名字,可它们究竟有什么不同呢?一起来对比一下文件吧!

HarmonyOS系统

HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。

鸿蒙系统的特点(硬件互助,资源共享):

1)分布式软总线

分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据。

2)分布式设备虚拟化

分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。

3)分布式数据管理

分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接,为打造一致、流畅的用户体验创造了基础条件。

4)分布式任务调度

分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。

5)一次开发,多端部署

HarmonyOS提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。一次开发、多端部署。

6)统一OS,弹性部署

HarmonyOS通过组件化和小型化等设计方法,支持多种终端设备按需弹性部署,能够适配不同类别的硬件资源和功能需求。支撑通过编译链关系去自动生成组件化的依赖关系,形成组件树依赖图,支撑产品系统的便捷开发,降低硬件设备的开发门槛。

HarmonyOS系统架构整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。因为系统比较庞大,今天主要是针对其中一个内核进行分析,即LiteOS内核。 鸿蒙和liteos关系_鸿蒙os微内核

Huawei LiteOS

Huawei LiteOS是华为针对物联网领域推出的轻量级物联网操作系统,是华为物联网战略的重要组成部分,具备轻量级、低功耗、互联互通、组件丰富、快速开发等关键能力,基于物联网领域业务特征打造领域性技术栈,为开发者提供 “一站式” 完整软件平台,有效降低开发门槛、缩短开发周期,可广泛应用于可穿戴设备、智能家居、车联网、LPWA等领域。

Huawei LiteOS自开源社区发布以来,围绕物联网市场从技术、生态、解决方案、商用支持等多维度使能合作伙伴,构建开源的物联网生态,目前已经聚合了50+ MCU和解决方案合作伙伴,共同推出一批开源开发套件和行业解决方案,帮助众多行业客户快速的推出物联网终端和服务,客户涵盖抄表、停车、路灯、环保、共享单车、物流等众多行业,加速物联网产业发展和行业数字化转型。

关键特性

1)低功耗框架:

LiteOS是轻量级的物联网操作系统,最小内核尺寸仅为6KB,具备快速启动、低功耗等优势,Tickless机制显著降低传感器数据采集功耗。

2)OpenCPU架构:

专为LiteOS小内核架构设计,满足硬件资源受限需求,比如LPWA场景下的水表、气表、车检器等,通过MCU和通信模组二合一的OpenCPU架构,显著降低终端体积和终端成本。

3)安全性设计:

构建低功耗安全传输机制,支持双向认证、FOTA固件差分升级,DTLS/DTLS+等,构建低功耗安全传输机制。

4)端云互通组件:

LiteOS SDK端云互通组件是终端对接到IoT云平台的重要组件,集成了 LwM2M、CoAP、MQTT、mbed TLS、LwIP等全套IoT互联互通协议栈,大大减少开发周期,快速入云。

5)SOTA远程升级:

SOTA远程升级,通过差分方式降低升级包的尺寸,更能适应低带宽网络环境和电池供电环境,经过特别优化差分合并算法,对RAM资源要求更少,满足海量低资源终端的升级诉求。 鸿蒙和liteos关系_鸿蒙os微内核

系统支持对比

目前HUAWEI LiteOS支持的硬件比鸿蒙还是丰富一些,提供了更多内核案例和移植策略,从代码来看,它们都支持Cortex-M内核和Cortex-A内核,HarmonyOS内核文件分别有两个,即liteos-a和liteos-m,例程分别有对应的支持,从内核名称上看到liteos的字样,可以推测鸿蒙内核对于Huawei LiteOS内核具有一定的继承性;而Huawei LiteOS开源主线上仅用一个统一的内核支持了多种CPU架构,可以从Arch目录下看到提供了对Cortex-A(包括32位及64位处理器)的支持,以及Cortex-M的支持。

总结两个系统对硬件内核架构的支持情况。

鸿蒙和liteos关系_鸿蒙os微内核

因为产品定位不同,两个系统的对内存的差别也是非常大,HUAWEI LiteOS因为其具有很高的剪裁特性,在硬件资源有限的时候的仅保留内核,可以剪裁到6KB的ROM以及消耗2KB的RAM资源,可以说对资源的消耗是低到一定程度,而HarmonyOS为了保证系统性能要求,对硬件的资源则是128K的ROM及2MB的RAM的要求。 鸿蒙和liteos关系_鸿蒙os微内核

从资源消耗可以看出,HUAWEI LiteOS主打IOT物联网业务领域,更适合硬件低配置、低成本、低功耗的应用场景;HarmonyOS更适合多媒体交互,需要Js增加开发效率的复杂大应用的场合使用。

现在两个系统都已经开始在市场在开发者在进行学习和开发,那对其硬件的支持又是如何,总结如下表: 鸿蒙和liteos关系_鸿蒙os微内核

HarmonyOS的开发板支持目前还是以华为自研的芯片为主,都是自身主打的IOT及视频处理芯片,这样开发速度快可以更快的应用到自己的设备上,验证系统可靠性;HUAWEI LiteOS除了支持华为自研芯片的开发板外,还支持了市场上主流的ARM开发学习板(如STM原生、小熊派、野火、正点原子等),同时提供了移植指南,可以让开发者更容易进行开发板适配以及内核移植,并轻松进行IoT业务的上手和开发。

内核文件对比

因为两者对Cortex-M的内核名字都是liteos-m,因为我就对比了两者的内核kernel文件夹。

首先分别从各自的git库下载master下发布的最新文件

文件库地址

HarmonyOS-liteos-m:

gitee.com/openharmony…

HUAWEI LiteOS:

gitee.com/LiteOS/Lite…

从gitee上的库kernel文件夹下的文件的日期都是两个月前,说明内核的发布时间比较一致,那文件的内容,分别对比文件目录,发现有很大的相似性,共有文件目录都是/base;/extended;/include;HUAWEI LiteOS下会有一个Kconfig和Makefile用于文件包含定义和Kconfig文件菜单生成;而HarmonyOS则是BULD.gn和los_init.c分别用于IDE的文件编译及内核文件剪辑初始化文件,文件功能基本移植,只是适配的编译环境不同。

从这里开始就有些不同,base下的文件夹设置两者的区别较大。

左边是HarmonyOS,右边是HUAWEI LiteOS的base文件下的文件部分,HarmonyOS把内核文件封装在IPC和Core两个文件中,而HUAWEI LiteOS则是放在的base文件下,对比文件发现,HarmonyOS内核的文件名字大部分在HUAWEI LiteOS base文件夹下找到,但文件大小都不相同,这次仅对比一个文件,task.c,观察两者的异同,虽然有部分接口名字已经不一样,但实际的实现基本类似,可以看出对于LiteOS kernel的继承性。

左边是HarmonyOS提供task操作接口,右边是HUAWEI LiteOS提供task操作接口,都提供了task的初始化(建立),文件上下文查询,钩子函数的使用,同时HarmonyOS提供了所有task的信息获取,HUAWEI LiteOS提供了task入口地址的获取的细节功能。

今天分享到这里,后面希望可以分享各自系统移植及使用。

本文分享自华为云社区《鸿蒙LiteOS-M内核与HUAWEI LiteOS内核对比》,原文作者:o0龙龙0o 。

点击关注,第一时间了解华为云新鲜技术~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13501.html

(0)

相关推荐

  • 利用Pycharm安装Python第三方库的简单方法

    利用Pycharm安装Python第三方库的简单方法Python是一个强大的编程语言,其流行程度不断攀升。Python的这种受欢迎程度主要得益于其开源性质和强大的社区支持。开源意味着任何人都可以使用Python,并且可以在Python社区中找到大量的代码库和第三方工具来帮助他们更快、更有效地开发应用程序。

    2024-09-19
    15
  • Python Redis连接池

    Python Redis连接池Redis是一个开源的,内存的数据结构存储系统,它被广泛地应用于缓存、消息中间件和排行榜等场景中。在Python中,我们可以利用redis-py库来连接Redis数据库。但是,在多个Python程序同时连接同一个Redis服务时,即使是轻微的时间差异都会导致每个程序都需要重新建立一个新的连接,这会增加Redis服务器的负载和网络开销。为了减少这些开销,我们可以利用Python中提供的Redis连接池来解决这个问题。

    2024-09-20
    15
  • MySQL索引 索引分类 最左前缀原则 覆盖索引 索引下推 联合索引顺序 – G

    MySQL索引 索引分类 最左前缀原则 覆盖索引 索引下推 联合索引顺序 – GMySQL索引 索引分类 最左前缀原则 覆盖索引 索引下推 联合索引顺序 What's Index ? 索引就是帮助RDBMS高效获取数据的数据结构。 索引可以让我们避免一行一行进行全

    2023-03-18
    150
  • Python文件压缩和解压缩

    Python文件压缩和解压缩文件压缩是指将一个或多个文件通过使用某种算法进行压缩,使得压缩后的文件大小变小。而文件解压缩则是将压缩文件还原成原始文件的过程。

    2024-02-29
    87
  • 分享一下我在mysql5.6+mysql8数据库安装过程中的一些坑!「建议收藏」

    分享一下我在mysql5.6+mysql8数据库安装过程中的一些坑!「建议收藏」Mysql5.6安装 下载好安装包后,在bin目录下用cmd打开,输入mysqld install 【服务名】新建个服务 在windows+r输入services.msc即可查看服务 怎样使用mysq

    2023-01-25
    155
  • 优化Python代码的技巧:使用assertion

    优化Python代码的技巧:使用assertion在Python中,assertion是一种用于检测代码中特定条件是否为真的工具。它通常用来检查代码是否正确地执行了预期的操作,以及数据是否具有正确类型和已赋正确值。assertion是一种被广泛使用的调试技术,特别适用于需要快速理解代码中的问题所在的情况。

    2024-02-13
    104
  • SQL Tuning Health-Check Script (SQLHC) (文档 ID 1366133.1)

    SQL Tuning Health-Check Script (SQLHC) (文档 ID 1366133.1)For Example: # sqlplus / as sysdbaSQL> START sqlhc.sql T djkbyr8vkc64h

    2022-12-28
    154
  • mybatis in 查询使用String做条件

    mybatis in 查询使用String做条件在使用 mybaits 进行 in 查询时 如果传入参数是List或者Array,则直接用foreach 如果参数是String类型的使用in (${xxxx}),不进行编译,直接放进查询条件 例如

    2023-02-02
    169

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注