常用的实时嵌入式操作系统有哪些(几款轻量级嵌入式操作系统特性对比)

最近闲来无事对比了几款嵌入式操作系统的基本特性,发现现在操作系统逐步发展为了行业应用的技术框架主要对比了linux基金会的zephyr;Adam dunkels团队(LWIP作者)的contiki-ng;arm公司的mbedOS;移动的OneOS,国内老牌的RT-THread,开源鸿蒙OpenHarmonyL0,以及使用最广的Freertos,今天小编就来说说关于常用的实时嵌入式操作系统有哪些?下面更多详细答案一起来看看吧!

常用的实时嵌入式操作系统有哪些(几款轻量级嵌入式操作系统特性对比)

常用的实时嵌入式操作系统有哪些

最近闲来无事对比了几款嵌入式操作系统的基本特性,发现现在操作系统逐步发展为了行业应用的技术框架。主要对比了linux基金会的zephyr;Adam dunkels团队(LWIP作者)的contiki-ng;arm公司的mbedOS;移动的OneOS,国内老牌的RT-THread,开源鸿蒙OpenHarmonyL0,以及使用最广的Freertos。

Zephyr

zephyr由linux基金支持,从其官网描述zephyr出现的目的是为了解决产品厂家,芯片 厂家,传感器厂家在最终产品组合的组合解耦,并提供便捷的网络服务。zephyr在系统的设计中考虑了再某些应用场合,某些功能拥有觉得的绝对的优先级,提供了协程(只能由任务自身放弃资源)。但也带来了系统的控制陷阱。在一定程度上内核对系统不在 拥有绝对的控制权,取决于应用开发者的能力。

zephyr在IPC通讯机制中提供了工作队列,以及提供了系统工作队列,用处是解决中断,以及高优先级中的部分处理事件较长但又非紧急需求的部分。可以将此部分扔到任务工作队列中处理。

zephyr提供了大量的中间件,针对物联网的常用MQTT,COAP等,以及6powpan ble mesh组网。

zephyr在驱动层提供了驱动框架,针对GPIO I2C SPI 以及sensor等各自做了驱动接口出来,需要适配 其驱动,对芯片厂家提供的HAL库不太友好。

zephyr针对低功耗也提供了电源管理。也提供了物联网通讯安全的机制。

Contiki

Contiki是一个相当轻量的操作系统,其基于PT模式,采用了事件驱动的方式。其最小的RAM可以小到几百个Byte,最大的特点就是适配芯片不需要考虑汇编。从8位到32位都可以适配。Contiki主要给极低RAM配置的单片在物联网应用方向提供了一个操作系统。

Contiki针对物联网也提供了MQTT COAP HTTP 等协议。

在驱动框架上,受限于其操作系统的定位,采用的宏定义来统一驱动层。

MbedOS

MbedOS是ARM公司针对物联网行业在原来RTX的基础上退出的操作系统。其风格是采用了C 。正物联网所需的MQTT,COAP 以及ble5.0 ,Thread等MbedOS都有实现。

其驱动层只是定义了统一的接口,并没有对驱动进行管理。

安全方面,MbedOS 结合自身的芯片架构可以提供较好的安全性能。在通信安全上,很多操作系统都是用MbedOS提供的Mbedtls库

OneOS

OneOS是移动出针对物联网的操作系统。在内核层OneOS 也提供了类似Zephyr的工作队列以及基于工作队列实现的系统工作队列。其作用与Zephyr提供的目的一样。其有特色的是在内核层也提供了一个硬件定定时。

在中间件这一层,针对物联网提供了MQTT COAP HTTP LWM2M等组件。也提供了对常用的云的对接SDK,比如华为云,阿里云,天翼云,移动自己的OneNet云,亚马逊云,腾讯云等。

在工业物联网方面提供了CanFestival协议组件。

当然也提供了电源管理组件与安全管理组件。

在驱动这一层,OneOS通过os_device_t这个父类对所有的驱动做统一的管理。在对底层接口提供了adpater层方便与芯片厂家的HAL库对接。在对应用层提供了Core层统一对应用层的接口。

RT-Thread

RT-Thread 现在有Nano和Smart俩个版本,Smart需要MMU的支持。我们直说Nano版本。

RT-thread在国内是相当成功的操作系统。其在驱动上的设计也是采用rt_device_t作为父类来对所有的驱动做同统一管理。RT-Thread提供了adapter层,提供了 open close read write ioctrl,prv_data等接口。芯片可以通过HAL库对接这几个接口。在core这一层。RT-Thread提供了统一对应用的接口。

RT-THread提供了GUI操作库,基于C ,名称叫做柿饼。

RT-THread针对屋里网提供了MQTT COAP HTTP,并且也提供了JS引擎。

RT-Thread利用eclipse实现了自己的IDE,并建立了社区。

OpenharmonyL0

Openharmony是华为捐献给国家开源基金的操作系统。其发展与华为自身的harmonyOS有区别。属于社区共建。Openharmony根据芯片的资源可以分为L0-L5。我们在此处只讨论L0(后续有时间会讨论下L1)。

Openharmony在官网上宣传的是最小RAM开销在128K,但实际从代码来看取决于应用需求哪些功能。是可以裁剪或增加的。Openharmony一个比较好的设计理念就是一切皆服务。

在驱动这一层提供一个HDF的统一框架,配合HCS可以实现对驱动的统一管理,也同样提供了adpater层来满足底层适配,在对应用也提供了Core层。

Openharmony有特色的设计是系统的基础服务组件,以及分布式软总线,分布式任务调度。个人理解这很符合物联网的思维。在物联网中信息的给予着和动作的执行者,往往都是服务者。那么利用分布式任务调度。可以 实现将不同的设备,屏蔽底层通讯差异。组合起来当做一个整体。瘦设备可以成为一个服务者。富设备可以作为需求者统合所有瘦设备。形成一个整体。方便设计。个人理解有点像SOA的设计理念。其软总线就像是SOA里面的ESB总线。当然OpenHarmony目前的很多代码还不是很成熟。但值得期待。

PS:下次我们再聊聊嵌入式操作系统内在的哪些逻辑设计。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页