29

vesperW · 8月4日 · 北京市

IOT操作系统分析与比较

摘要:根据IOT设备的需求,以及IOT OS需要满足的技术特征、现有IOT OS的来源,分别概述FreeRTOS、AliOS-Things、RT-Thread、Lite OS、Zephyr、Mbed OS、AWorksOS、HybridOS等8个IOT OS的特点。智能物联网(AIOT,AI+IOT)是人工智能与物联网的协同应用,据此分析IOT OS的发展方向。

关键字:物联网操作系统;IOT OS;智能物联网;AIOT

1   IOT 设备特点及IOT OS特征

2016年,WindRiver(风河系统公司)指出IOT设备的8大需求[1]

不断调整和升级的架构(芯片?);适应不同种类的设备软件;设备安全;虚拟化;性能和可靠性;联网;丰富的UI;工业认证。

何小庆得出IOT OS的5大技术特征[2]

1)   管理“物”——物联网边缘节点上的嵌入式实时低功耗设备。

2)   泛在通信,无线和有线,近场和远距离的通信方式和协议。

3)   可维护性,OTA和远程维护。

4)   安全,设备、通信、云等的安全。

5)   云平台,远程管理,这是物联网大数据和人工智能的基础。

2   现有IOT操作系统

现行的IOT操作系统来源[1][3]

1)   基于移动端操操作系统如Linux、Android、IOS等进行裁剪和定制,来适应物联网接入设备的需求。这些OS体积庞大、功耗较高,而且无法满足安全认证和实时性等要求。

2)   传统的嵌入式操作系统,FreeRTOS(亚马逊)、RT-Thread、uCos(以前是商业收费,现在也开源了)、ThreadX(微软)、VxWorks的变种。

3)   专门为IOT设计,SyberV、华为LiteOS、阿里AliOS-Things、Android Things、ARM Mbed OS。

2.1 FreeRTOS

FreeRTOS起源于英国人Richard Barry于2003年发布的开源的实时内核,发展历程如下。

  • 2003~2016,传统嵌入式OS。
  • 2017成为AWS开源项目,亚马逊增加IOT应用组件,连接云,变为IOT OS。
  • 2016年,Micrium公司的µC/OS被Silicon Labs收购,出于竞争的担心,ST和NXP等知名的嵌入式芯片公司转向支持FreeRTOS[4]

OS主要特点如下。

  • 历史悠久,开发者众多,支持的CPU硬件架构特别多,达35种。
  • FreeRTOS有一些列软件,版本众多,包括开源版本、授权版本、安全版本(SafeRTOS)、Amazon开源IOT OS版本。
  • 支持AWS边缘计算的功能(Greengrass)。
  • 除了AWS,官方没有支持第三方云平台。

2.2 AliOS-Things

AliOS Things发布于2017年杭州云栖大会, 是AliOS家族旗下的、面向IoT领域的、高可伸缩的物联网操作系统。OS主要特点如下。

  • 支持微内核基础上的POSIX实现,方便程序框架/程序库移植。
  • 支持云端一体在线开发(灵活架构,自组网),提供IOT全链路开发、模拟和部署支持。
  • 支持APP独立升级;组件化思想的多BIN或差分升级。内核、框架层、应用层三个独立的BIN文件,芯片厂商可以出厂预置内核,应用层只关心应用层开发,不关心硬件,方便移植。
  • 支持可信执行环境(csky);支持ID2根身份证和秘钥;支持系统调用。
  • v1.1.1集成了自研的Bone Engine,它是一套为AliOS Things优化定制的JavaScript引擎,集成了JavaScript的编程及运行环境
  • 集成了IOT套件,Link Kit,Link Voice等阿里云IoT核心组件,产品可以访问阿里云服务。
  • 支持的CPU架构一般。

2.3 RT-Thread

起源于上海睿赛德电子科技公司创始人和总经理熊谱翔于2006年创建的RT-Thread 开源实时操作系统项目,发展历程如下。

  • 2011 年 RT-Thread 1.0 版本正式发布。
  • 2015 年 2.0版本和现在名气很大的柿饼 GUI 捆绑发布。
  • 2017 年发布 3.0,RT-Thread 全面启动 IoT 战略 。

OS特点如下。

  • 集成音频,图像相关的各类算法和智能引擎
  • 柿饼UI,小型、现代化的图像库
  • 开源、社区化、中立,开放支持第三方云。
  • Nano版本和IOT版本。
  • 集成开源JerryScript引擎,支持JavaScript开发。
  • 组件比较丰富。
  • 混合微内核架构正在内测[5],平台是柿饼M7的开发板,全志R11处理器,ARM Cortex-A7。

2.4 Lite OS

Huawei LiteOS是华为针对物联网领域推出的轻量级物联网操作系统,是华为物联网战略的重要组成部分,具备轻量级、低功耗、互联互通、组件丰富、快速开发等关键能力,为开发者提供 “一站式” 完整软件平台,有效降低开发门槛、缩短开发周期。发展历程如下,走过了内部产品-开源软件-IoT 解决方案发展之路。

  • 2012 年华为开发支持公司内部消费产品的小型嵌入式操作系统 LiteOS。
  • 2014 和 2015 年 LiteOS 与Huawei 手机和智能手表一同出货。
  • 2016 年 Lite OS内核正式开源。
  • 2017 年发布 LiteOS IoT 解决方案(即端云解决方案)
  • 2018 年华为加速开发步伐,发布LiteOS SDK 2.1 和 Lite OS Studio 1.0(开发环境)。
  • 2019以后,鸿蒙OS的架构中,LiteOS也是其内核之一(Linux、鸿蒙、LiteOS)。

OS主要特点:

  • OpenCPU架构,MCU和通信模组二合一,显著降低终端体积和终端成本,特别适用于NB-IOT应用场景和海思芯片,这是它的主要优势。
  • 智能边缘项目KubeEdge,名字来源于Kube + Edge,顾名思义就是依托Kubernetes的容器编排和调度能力,实现云边协同、计算下沉、海量设备接入等。
  • AI引擎、JS引擎
  • 支持的CPU架构单一。

2.5 Zephyr

Zephy是2016年由Intel、Synopsys、NXP等公司发起的开源实时操作系统平台项目,现在由Linux基金会管理。Zephyr是一款小型且可扩展的操作系统,尤其适用于资源受限的硬件系统,可支持多种架构。

OS特点如下:

  • 起点很高,来自风河的成熟代码。
  • 代码结构和Linux内核很相似。
  • 支持的CPU架构丰富。
  • 安全设计方面,支持用户态/内核态;支持MPU;内核对象权限模型
  • 支持TEE,Armv8-M trustzone。
  • 功能安全,打算通过IEC 61508和ISO 26262认证。
  • 中间件丰富,支持很多协议。

2.6 Mbed OS

2014年,ARM发布了Mbed OS,试图基于Mbed OS建立一个庞大的物联网生态,以此来连接硬件厂商、软件服务商、云服务商以及开发者社区。OS特点如下。

  • 面向ARM Cortex-M系列处理器。
  • 版本从1.0、2.0、3.0,然后直接到5.0,6.0在计划中。
  • 模块化的可配置软件栈,不配置则排除不必要的软件组件,进而降低内存要求。
  • 使用C++作为程序设计语言
  • 在线编译,或者导出工程,用其他IDE编译,部分源码不开放。
  • 内核uVisor运行在特权模式,内核创建隔离的安全域,安全域对内存和外设的访问权限有限制。
  • 支持ARM PSA架构。
  • 2017年ARM推出了mbed Edge,与mbed Cloud和mbed OS组成边缘计算的 IoT 方案 。
  • 云服务pelion 也是在国外,影响了国人的使用。

2.7 AWorksOS

AWorksOS是ZLG(周立功,广州致远电子)历时12年开发的工业智能物联开发平台,特点如下。

  • AWorksOS是不开源的,内部核心功能组件都是以库的形式提供,相关接口通过头文件引出。
  • AWorksOS以SDK方式发布,伴随着特定开发板,SDK中包含了文档、工具、示例代码、模版工程等。
  • OS的发展,依托ZLG的AWTK开源GUI引擎
  • 分为“核心域”和“非核心域”,即“业务”和“技术”, 非核心域包括底层驱动、操作系统和组件;开发者忽略产品底层技术细节,专注“核心域”。
  • 将MCU和OS的共性抽象为统一接口,应用实现“一次编程,终生使用,跨平台”。
  • 支持的CPU很少,目前有ARM Cortex-M4/M7/A7,ARM9。

2.8 HybridOS

合璧操作系统(HybridOS)是北京飞漫软件于 2018 年 11 月发起的一个全新的开源项目。HybridOS 的目标是为物联网设备和云计算环境打造一个全新的操作系统,特点如下。

  • 2019.11.18发布了第一个组件hiCairo;2019.12.10发布了了2D/3D的图形组件,包括hiMesa、hiDRM、hiDRMDrivers、以及hiCairo,这些和MiniGUI(最初由飞漫软件创始人魏永明开发,20年的发展历程,为 IoT 智能设备和嵌入式系统提供图形界面及交互实现)一起组成了HybridOS的图形栈;2020.3.29,随着MiniGUI 5.0的发布,HybridOS也升级了图形栈。
  • 为IOT网络中的虚拟计算节点设计,故可运行在设备端、云端、客户端。
  • 提供云端和客户端的接口,以及设备端与这两者通讯的协议栈。
  • 支持python、JavaScipt、C/C++。
  • 依托MiniGUI,增加数据库,以及其它复杂的图形处理
  • 2019.9.19宣布MiniGUI4.0.2支持RT-Thread,但是没找到相关验证的源码。
  • 系统组件是damon进程;网络通信等协议栈作为系统的服务

3   AI+IOT对操作系统提出的新课题

移动操作系统Android和Linux,无法满足工业安全认证和实时性要求;传统的嵌入式操作系统无法满足系统扩展、维护和应用的便捷需求;针对智能物联网(AIOT,AI+IOT)场景的广义的嵌入式操作系统和泛IOT OS技术正在探索和研究中[6]

智能物联网是2018年兴起的概念[7],是人工智能与物联网的协同应用,人工智能使物联网获取感知与识别能力,物联网为人工智能提供训练算法的数据。AIOT中系统通过各种信息传感器实时采集各类信息(一般是在监控、互动、连接情景下的),在终端设备、边缘域或云中心通过机器学习对数据进行智能分析,包括定位、对比、预测、调度等。

AIOT中终端设备还需要具备智能特性,预计未来IOT OS会向着两个方向发展,一是大型、复杂、可配置,二是更小、更安全、硬化,则IOT OS需要满足如下要求。

1)  云端协同/边缘计算架构

云端人工智能技术如何透过边缘计算与设备节点的 IOT OS结合起来[2];边缘节点管理和控制该场景中各种物联网设备和计算硬件[8],同时也支撑该场景中的应用层业务需求,提供基本的安全性。

2)  人工智能,终端智能化,具备感知和交互能力

AI引擎,JS引擎,音频、图像算法。

3)  终端虚拟化

轻量级容器。

4)  功能安全

通过工业级认证,IEC 61508和ISO 26262。

5)  信息安全

内核高度安全,通过形式化认证和安全认证[9],ARM Cortex-M33/M35P软核通过了EAL6+

认证[10]。内核支持用户态/特权态;进程MPU隔离;内核对象权限。

6)  可信物联网,数据可信

结合区块链技术[11],确保端到端数据可信。终端、边缘、后端基础设施(云端)、后端应用程序的数据传递,确保可信。

7)  可扩展的内核

大型、复杂、可配置:支持X86、ARM Cortex-A系列;

更小、更安全、硬化:支持极简的MCU等资源受限的设备。

8)  APP单独管理

多BIN特征,内核、框架层、应用三个BIN文件,应用层不关心硬件。

9)  高级语言支持

Micropython,JavaScript。

10) 丰富的UI

占用资料少、界面流畅度高。

11) OS抽象层

支持POSIX、CMSIS RTOS

作者:wangyw
文章来源: https://www.cnblogs.com/fozu/p/15975200.html

推荐阅读

欢迎大家点赞留言,更多Arm技术文章动态请关注极术社区Arm技术专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
29 阅读 325
推荐阅读
关注数
2679
内容数
79
分享一些在嵌入式应用开发方面的浅见,广交朋友
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息