摘要:鸿蒙和LiteOS的内核都是一样的名字,可它们到底有什么不同呢?一起来比照一下文件吧!
HarmonyOS零碎
HarmonyOS是一款“面向未来”、面向全场景(挪动办公、静止衰弱、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设施零碎能力的根底上,HarmonyOS提出了基于同一套零碎能力、适配多种终端状态的分布式理念,可能反对多种终端设备。
鸿蒙零碎的特点(硬件互助,资源共享):
1)分布式软总线
分布式软总线是多种终端设备的对立基座,为设施之间的互联互通提供了对立的分布式通信能力,可能疾速发现并连贯设施,高效地散发工作和传输数据。
2)分布式设施虚拟化
分布式设施虚拟化平台能够实现不同设施的资源交融、设施治理、数据处理,多种设施独特造成一个超级虚构终端。针对不同类型的工作,为用户匹配并抉择能力适合的执行硬件,让业务间断地在不同设施间流转,充分发挥不同设施的资源优势。
3)分布式数据管理
分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式治理。用户数据不再与繁多物理设施绑定,业务逻辑与数据存储拆散,利用跨设施运行时数据无缝连接,为打造统一、晦涩的用户体验发明了根底条件。
4)分布式任务调度
分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile等技术个性,构建对立的分布式服务治理(发现、同步、注册、调用)机制,反对对跨设施的利用进行近程启动、近程调用、近程连贯以及迁徙等操作,可能依据不同设施的能力、地位、业务运行状态、资源应用状况,以及用户的习惯和用意,抉择适合的设施运行分布式工作。
5)一次开发,多端部署
HarmonyOS提供了用户程序框架、Ability框架以及UI框架,反对利用开发过程中多终端的业务逻辑和界面逻辑进行复用,可能实现利用的一次开发、多端部署,晋升了跨设施利用的开发效率。一次开发、多端部署。
6)对立OS,弹性部署
HarmonyOS通过组件化和小型化等设计办法,反对多种终端设备按需弹性部署,可能适配不同类别的硬件资源和性能需要。撑持通过编译链关系去主动生成组件化的依赖关系,造成组件树依赖图,撑持产品零碎的便捷开发,升高硬件设施的开发门槛。
HarmonyOS零碎架构整体听从分层设计,从下向上顺次为:内核层、零碎服务层、框架层和应用层。零碎性能依照“零碎 > 子系统 > 性能/模块”逐级开展,在多设施部署场景下,反对依据理论需要裁剪某些非必要的子系统或性能/模块。因为零碎比拟宏大,明天次要是针对其中一个内核进行剖析,即LiteOS内核。
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资源要求更少,满足海量低资源终端的降级诉求。
零碎反对比照
从官网的数据来看,HUAWEI LiteOS反对硬件比拟鸿蒙还是丰盛一些,提供了更多内核案例和移植策略,从代码来看鸿蒙反对ARM类型更多,别离反对Cortex-M内核和Cortex-A内核,内核文件也别离有两个,即liteos-a和liteos-m,例程别离有对应的反对;而HUAWEI LiteOS现阶段仅是对Cortex-M内核的反对,因为也是产品位置不同,预计将来也不会去适配A系列内核的解决吧,因为更好性能的需要,HarmonyOS应该是更好的抉择。总结两个系统对硬件内核架构的反对状况。
因为产品定位不同,两个零碎的对内存的要也是十分大,HUAWEI LiteOS因为其具备很高的剪裁个性,在硬件资源无限的时候的仅保留内核,能够剪裁到6KB的ROM以及耗费2KB的RAM资源,能够说对资源的耗费是低到肯定水平,而HarmonyOS为了保证系统性能要求,对硬件的资源则是128K的ROM及2MB的RAM的要求。
从资源耗费能够看出,HUAWEI LiteOS更适宜资源需要低,利用要求不高,对老本功耗要求较高的利用场合;HarmonyOS更适宜多媒体交互,须要Js减少开发效率的简单大利用的场合应用。
当初两个零碎都曾经开始在市场在开发者在进行学习和开发,那对其硬件的反对又是如何,总结如下表:
HarmonyOS的开发板反对还是以华为自研的芯片为主,都是本身主打的IOT及视频解决芯片,这样开发速度快能够更快的利用到本人的设施上,验证系统可靠性;HUAWEI LiteOS的开发板反对更多的是市场上支流的ARM开发学习板(STM原生、小熊派、野火),这样的起因揣测是让开发者更好的做芯片切换和容易学些如何进行内核移植的工作内容,以便上手容易快捷。
内核文件比照
因为两者对Cortex-M的内核名字都是liteos-m,因为我就比照了两者的内核kernel文件夹。
首先别离从各自的git库下载master下公布的最新文件
文件库地址
HarmonyOS-liteos-m:
https://gitee.com/openharmony…;
HUAWEI LiteOS:
https://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,看看两者的异同,发现根本没有应用过雷同的办法实现性能,所以不展现办法内容比照,比照一下各自提供了哪些办法用于task的操作接口。
右边是HarmonyOS提供task操作接口,左边是HUAWEI LiteOS提供task操作接口,都提供了task的初始化(建设),文件上下文查问,钩子函数的应用,同时HarmonyOS提供了所有task的信息获取,HUAWEI LiteOS提供了task入口地址的获取的细节性能。
明天分享到这里,前面心愿能够分享各自零碎移植及应用。
本文分享自华为云社区《鸿蒙LiteOS-M内核与HUAWEI LiteOS内核比照》,原文作者:o0龙龙0o 。
点击关注,第一工夫理解华为云陈腐技术~