发 帖  
原厂入驻New

[经验] 主流物联网操作系统的比较

2019-9-17 09:05:05  299 物联网 操作系统
分享
0
原作者:Orange Cai

一、什么是物联网操作系统

近年来随着物联网的发展,现在物联网应用中的一些嵌入式设备对于操作系统的需要已经越来越高,传统的嵌入式操作系统已经满足不了一些物联网应用的需求了,因此一些针对物联网应用的操作系统也应运而生。
那什么是物联网操作系统呢? 目前很难找到物联网操作系统的定义,《嵌入式操作系统风云录》一书对物联网操作系统做出了一个基本的定义:物联网操作系统就是具备低功耗、实时性和安全的传感、连接、云端管理服务软件平台。
目前物联网操作系统大致可以分为两类:一类是为物联网而生的 OS,即针对物联网而做的 OS ,之前并没有,代表产品有 ARM 公司的 Mbed OS、庆科 的 MiCO OS 以及谷歌的 Android Things 等等。第二类是以嵌入式 OS 为基础把它扩展成支持物联网应用的,例如传统嵌入式操作系统 Amazon FreeRTOS、us/OS、RT-Thread、VxWork 等等。通过以上介绍,我们大致对于物联网操作系统有个基本的概念。


二、物联网操作系统的特点

物联网操作系统主要面向物联网应用,应当具备以下特点:

(1)内核的伸缩性及整体架构可扩展性
    为了适应不同的物联网设备以及物联网应用,物联网操作系统内核尺寸必须具有良好伸缩性,满足各种嵌入式设备对于内存资源的要求。    此外,为了满足不同嵌入式应用对于各种功能(连网、图性界面等)的需求,还必须要求操作系统内核能够具备整体架构的可拓展性,能够针对不同的嵌入式应用进行相关的扩展。

(2)内核的实时性
    对于部分物联网应用,要求操作系统内核具备实时性,要求系统能对外部事件在规定时间内进行处理,否则将对系统造成严重影响,因此便要求操作系统能够对中断进行快速响应并作出处理,并且任务调度需要支持抢占式优先级调度,以此满足实时性的要求。

(3)高可靠性
    在物联网的应用环境下,面对海量结点的设备已经投入使用便很难再去维护,因此设备的稳定性显得尤为重要,而操作系统的稳定性也跟物联网设备的稳定性密切相关,所以具备高可靠性对于物联网操作系统不可或缺。

(4)低功耗
    许多物联网应用对于功耗的要求越来越高,物联网操作系统在设计中也需要加入一些休眠模式来降低系统的功耗。比如当操作系统内核在运行空闲模式的时候可以进入到低功耗模式。


三、几种主流的物联网操作系统

目前市场上的物联网操作系统种类繁多,由于篇幅有限便不针对各种系统进行介绍,本文挑选了几种比较常见,比较有代表性的物联网操作系统进行介绍。

(1)Mbed OS
     Mbed OS是 2014 年 ARM 专门基于 ARM Cortex-M 的 MCU 打造一种现代化全协议栈操作系统,将物联网所需的所有基础组件,包括安全、通信传输与设备管理等功能,整合而成的一套完整软件。目前 Mbed OS 已经发展到 5.12 的版本,下图是 Mbed OS 的软件架构。



    下面简单介绍一下 Mbed OS 的一些特点

首先 Mbed 非常方便新手入门,特别是一些不怎么了解硬件的新手,Mbed 把很多硬件相关的底层驱动进行封装,并且提供标准统一的接口给用户调用。开发者不必把大量精力放在调试底层驱动上,只需关注于应用的开发。此外,由于 Mbed 对硬件驱动统一做了标准化处理,使得代码的复用性大大提供,开发者如果想进行平台的移植的话只需对原来的代码进行很少的修改即可。
但是这样做只使用在支持 Mbed OS 的平台,其次,Mbed 平台提供了在线开发的平台,用户可以在线构建自己的应用,然后在线编译以及下载,这样大大节约了构建项目的时间, 另外,用户如果想进行离线开发也可以在线将工程进行导出,Mbed 目前支持市场上大部分主流的第三方 IDE,包括 Keil、IAR、eclipse 等等。此外,Mbed 还支持使用命令行的方式进行开发。 另外,Mbed 目前对于一些中间件的支持也越来越好,包括对无线通信和安全等方面的支持,目前 Mbed支持 BLE、WIFI、2G/3G、 NB-IoT、6LoWPA、LoRa、等诸多无线技术。安全方面,Mbed 支持 TLS 传输层加密协议,为物联网应用提供了安全性方面的保障。

(2)RT-Thread

    RT-Thread 是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的开源物联网操作系统,最早在 2006 年由熊谱翔先生开发然后集合开源社区的力量不断壮大,经过十几年的发展已经形成一个拥有强大社区基础的开源技术平台。



    RT-Thread 拥有良好的软件生态,支持市面上所有主流的编译工具如 GCC、Keil、IAR 等,工具链完善、友好;支持各类标准接口,如 POSIX、CMSIS、C++ 应用环境、Javascript 执行环境等,方便开发者移植各类应用程序。    商用支持所有主流 MCU 架构,如 ARM Cortex-M/R/A, MIPS, X86, Xtensa, C-Sky,几乎支持市场上所有主流的 MCU 和 WiFi 芯片
    RT-Thread 主要采用 C 语言编写,浅显易懂,方便移植,它把面向对象的设计方法应用到实时系统设计中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。    针对资源受限的微控制器(MCU)系统,可通过方便易用的工具,裁剪出仅需要 3KB Flash、1.2KB RAM 内存资源的 NANO 版本。
    此外,RT-Thread 又能使用在线的软件包管理工具,配合系统配置工具实现直观快速的模块化裁剪,无缝地导入丰富的软件功能包,实现类似 Android 的图形界面及触摸滑动效果、智能语音交互效果等复杂功能。    相较于 Linux 操作系统,RT-Thread 体积小,成本低,功耗低、启动快速,除此以外 RT-Thread 还具有实时性高、占用资源小等特点,非常适用于各种资源受限(如成本、功耗限制等)的场合。    虽然 32 位 MCU 是它的主要运行平台,实际上很多带有 MMU、基于 ARM9、ARM11 甚至 Cortex-A 系列级别 CPU 的应用处理器在特定应用场合也适合使用 RT-Thread。

(3)Amazon FreeRTOS

    Amazon FreeRTOS 是 Amazon 在 2017 年推出的一款基于 FreeRTOS 内核,集成无线连接、安全、OTA 等功能的一款开源物联网操作系统。



    Amazon FreeRTOS 是基于 FreeRTOS 内核开发的,FreeRTOS 内核具有简单、轻量、可靠性好、可移植性好等诸多优点。并且 FreeRTOS 有着广泛的用户基础,已经在多个行业应用中进行商业应用,事实证明 FreeRTOS 拥有很高的可靠性。
    其次,Amazon FreeRTOS 提供了相关的软件库,方便用户将 IoT 功能集成到设备中去,包括使用 WIFI 或者以太网等连接方式。提供的软件库还可以保护设备数据和连接,包括数据加密和秘钥管理,Amazon FreeRTOS 支持 TLS V1.2 协议,帮助设备安全地连接到云。
    除此之外,Amazon FreeRTOS 设备可以直接连接到 AWS IoT Core 等云服务,也可以连接到 AWS Greengrass 等本地边缘服务。


四、以上物联网操作系统的对比

下面将对以上三种物联网操作系统进行对比:

首先从操作系统的稳定性进行比较,作为操作系统,稳定性是至关重要的,衡量一款操作系统是否稳定可靠需要经过市场严格的考验。首先看看 Mbed OS,Mbed OS 在 2014 年才开始推出,从推出到现在也才短短几年时间,Mbed OS 在产品上的应用也不多,是否稳定需要更多的时间去检验。至于RT-Thread,从推出到现在已经 12 年了,据统计 RT-Thread 的装机量已经超过 4 千万台,成为国内装机量最多的 RTOS,从这点可以看出 RT-Thread 在稳定性上还是得到市场充分认可的。而 Amazon FreeRTOS 采用 FreeRTOS 作为内核,FreeRTOS 最早是 2003 年开始推出的,根据EEtimes杂志嵌入式系统市场报告显示,FreeRTOS在RTOS内核使用榜和RTOS内核计划使用榜上都名列前茅,另外基于 FreeRTOS 开发的 safeRTOS 是经过安全认证的 RTOS,可以看出 Amazon FreeRTOS 的安全性和稳定性是相当可靠的。

其次从平台的支持情况来对比一下,Mbed OS 是 ARM 公司推出的针对 ARM Cortex-M处理器的一款物联网操作系统,因此不支持其它架构的处理器使用。于此相反,RT-Thread 和 Amazon FreeRTOS 对许多平台的处理器都有着很好的支持,RT-Thread 除了支持 Arm Cortex M/R/A 的平台外,还支持 MIPS, X86, Xtensa, C-Sky, RISC-V 等众多平台,几乎支持市场上所有主流的 MCU 和 WIFI 芯片。FreeRTOS 目前能支持超过35 中架构,对于跨平台的支持也是十分出众。

最后从开发难度上来进行比较,Mbed OS 对硬件进行了抽象并且提供了简单、统一的 API 接口,开发者不需了解太多的硬件知识便可以进行智能硬件的开发,而且官网上也提供了大量的使用例程以及文档,还有大量的第三方库,大大降低了技术门槛。
除此此外,Mbed 也提供了在线开发的工具和命令行开发工具供用户选择,可以说利用 Mbed OS 来快速实现应用原型的搭建是一个很不错的选择。
RT-Thread 则提供了开发辅助工具 Env,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理等功能,使用者通过该工具可以自由裁剪内核、组件和软件包,大大降低了使用者的开发难度。
Amazon FreeRTOS 则提供了 Amazon FreeRTOS 控制台,用户可以通过控制台快速针对合格的微处理器及使用案例配置和下载源代码。
可以看出以上三种操作系统对于用户的开发都提供了很方便的开发工具,这些工具也都试图解决物联网应用开发碎片化的问题,可以说在这点上这些操作系统都是做得比较不错的。

通过上面的对比,相信各位对于这几种操作系统的特点有了更进一步的了解了。不过对于这些操作系统的优劣对比是智者见智,仁者见仁,适合的才是最好的。


更多资讯,请关注大树云系列公众号:

只有小组成员才能发言,加入小组>>

8个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /10 下一条

快速回复 返回顶部 返回列表