物联网全景动态图谱2.0——物联网操作系统汇总

物联网
本篇文章将梳理介绍芯片商、互联网服务商、软件提供商、ICT服务商以及创新型企业从不同角度切入打造的物联网操作系统

导 读

2018年,物联网对行业的深度变革已轰然开启。物联网产业链企业的质与量将进入全面爆 发期。物联网智库作为物联网全周期观察者和信息服务聚焦中心,被产业推动,亦将反哺于产 业升级。自2016年起,物联网智库每年一度推出《全国物联网产业全景图谱》,为从业者提供物联网全视角跟踪和分析,切实践行物联网业内的信息对称化。

然而,随着物联网产业狂奔式升级,一年一度的全景图谱发布,已远远满足不了高歌猛进的发 展速度和企业诉求。基于上述事实,《全国物联网产业全景图谱》决定进行重大改版升级:

  • 一年一度的静态,将浓缩为更短周期的“动态更新”;
  • 大而全的企业收录方式,将嵌入符合产业事实标准的筛选标准,弱水三千,只取优上;
  • 对物联网企业的基本信息收录,将升级为更丰富更深度的信息整合与加工;
  • 对于物联网产业全版块的关注,将升级为侧重关注重点领域、潜力赛道的权重分配。

首次被翻牌的重点版块包括:物联网芯片(计算芯片、通信芯片为主)、授权频谱物联网网络、非授权频谱物联网网络、 物联网操作系统、物联网PaaS云平台、公用事业、智能安防摄像头、智能家居、 智慧消防、智慧物流、智能门锁、智能照明等十余个技术类别/垂直领域。

物联网智库将持续发布上述领域的企业信息的简版汇总。如果因为我们的疏漏,错过了哪些物联网产业优上企业,烦请联系我们,不吝赐教。

[[241770]]

物联网操作系统作为物联网时代战略的制高点,引来了众多企业的参与和布局。1980年RT操作系统的kernel诞生;到了1990年有了RT操作系统;2000年之后开源的Linux开始风行;2010年的Android主导了移动终端市场并辐射嵌入式应用; 而如今,物联网操作系统时代如约来临。几乎以十年为一届的的时代变革之风吹起了众多的科技企业,在操作系统生态建设的同时,也成就了伟大的科技公司。谷歌、苹果、微软等无一不是如此,在个人电脑走向千家万户时,微软抓住了机会,成为电脑操作系统霸主。在智能手机成为随身必备之物时,谷歌和苹果抓住了机会,成为手机操作系统市场双雄。

然而,在物联网操作系统的初期,由于碎片化的物联网应用以及多样化的物联网终端设备,促使物联网操作系统并没有像PC或手机操作系统一样,很快统一,形成1家或2家公司制霸的格局。随着物联网市场的不断发展,2014年左右,大批的物联网操作系统服务商开始涌现,其中不乏芯片领域、互联网领域、ICT领域的行业巨头,当然也少不了一大波初创企业和一些传统的嵌入式操作系统提供商前仆后继!

目前,物联网操作系统尚未有明确的定义,但在物联网设备不断增加的背景下,已经迎来了多种路径的发展。

  • 一条是基于Linux、Android、iOS等操作系统进行裁剪和定制,来适应物联网接入设备的需求;
  • 另一条技术路线是以传统嵌入式操作系统和实时操作系统为基础,通过增加设备联网等功能,满足物联网接入设备互联需求,形成新的物联网操作系统;
  • 第三条技术路线则是面向物联网产生的新型操作系统。

本篇文章将梳理介绍芯片商、互联网服务商、软件提供商、ICT服务商以及创新型企业从不同角度切入打造的物联网操作系统:

(注:上图无单独操作系统logo的,以企业logo代替)

mbed OS

  • 拥有者:ARM
  • 名称:mbed OS
  • 网址:www.arm.com/products/iot/mbed-os

ARM®mbed™ 操作系统是一种专为物联网(IoT) 中的“物体”设计的开源嵌入式操作系统。该操作系统包含基于ARM Cortex-M 微控制器开发连接产品所必需的全部功能,非常适合涉及智能城市、智能家庭和穿戴式设备等领域的应用程序。简单来说,Mbed 是一个开发平台,一个基于ARM cortex M 系列的单片机开发平台。

mbed 操作系统可提供核心操作系统、稳健的安全基础、基于标准的通信功能以及针对传感器、I/O 设备和连接性开发的驱动程序,能够加快从初始创意到部署产品的这一进程。mbed 操作系统是模块化的可配置软件堆栈,有助于您轻松针对目标开发设备对其进行自定义,以及通过排除不必要的软件组件降低内存要求。

早在嵌入式设备连接到互联网之前,传统嵌入式操作系统就已设计出来。 因此,这类操作系统无法解决针对IoT 设备的新要求。相比而言,mbed 操作系统是专为IoT 设备而特别构建。设计围绕着IoT设备的五个核心原则:安全性、连接性、可管理性、效率和生产率。

Android things/Brillo、Fuchsia

  • 拥有者:谷歌
  • 名称:Android things、Fuchsia
  • 网址:https://developer.android.com/things/

Android Things 是谷歌为Google Brillo 更改名称后的新版系统,后者是谷歌在2015年宣布的一款物联网操作系统。尽管Brillo 的核心是Android 系统,但是它的开发和部署明显不同于常规Android 开发。Brillo 把C++ 作为主要开发环境,而Android Things 则面向所有Java开发者,不管开发者有没有移动开发经验。

Android Things平台架构

Android Things平台架构

Android Things整合了物联网设备通讯平台Weave,Weave SDK将嵌入到设备中进行本地和远程通讯。Weave Server 是用来处理设备注册、命令传送、状态存储以及与谷歌助手等谷歌服务整合的云服务。

从硬件资源的角度来看,Android Things 属于土豪级的系统,动辄上百MB 的内存显然不适合单片机,这也正常,因为它的主要竞争对手其实是Windows 10 IoT。

Fuchsia

2016年8月份,有消息说谷歌正在“悄悄”开发一款全新的操作系统,命名为“Fuchsia”。Pink + Purple == Fuchsia (a new Operating System)”,意思就是粉色加紫色等于Fuchsia,一个全新的操作系统,也被网友们戏称为绯红色的小妖精。

出乎意料的是它没有基于Linux内核,而是基于一种叫Magenta的内核,Magenta是一个基于‘LittleKernel’(LK)的项目,LK是一个主要针对小型系统以及嵌入式应用的轻量级内核,适合硬件处理能力较弱的情况下使用,但是Magenta 比LK 要强大很多。

虽然Android占了移动设备端的大半江山,但Android仍然存在不少问题,比如:碎片化问题严重,在大屏幕设备上表现糟糕,以及被很多用户诟病的卡顿与体验问题。虽然卡顿的本质原因是很多无良应用的后台互相唤醒,无节制的权限、内存使用等,但是这也恰恰反映了Android的底层架构设计是有瑕疵的。所以谷歌想着干脆抛弃Linux,开发自己的Fuchsia,同时还避开了GPL。

媒体猜测,Fuchsia的内核是为物联网设备而设计的,所以这有可能是谷歌研发的一款轻量级物联网操作系统。

Windows 10 IoT Core

  • 拥有者:微软
  • 名称:Windows 10 IoT Core
  • 网址:developer.microsoft.com/en-us/windows/iot

Windows 10 IoT 是面向各种智能设备的Windows 10 版本系列,涵盖了从小的行业网关到大的更复杂的设备(如销售点终端和ATM),种类繁多。结合最新的Microsoft 开发工具和Azure IoT 服务,合作伙伴可以收集、存储和处理数据,从而打造可行的商业智能和有效的业务结果。在构建基于Windows 10 IoT 的解决方案后,合作伙伴将在利用一系列Microsoft技术提供端到端的解决方案时发现更多机会。

由于Windows 10 for IoT 是全新产品,它在用户群和经验丰富的开发者方面显然落后于其他许多物联网操作系统。话虽如此,这款操作系统大有潜力,如果你想在内部开发应用程序,更是如此。最终,那些习惯于使用Visual Studio 和Azure 物联网服务,针对Windows 从事开发工作的人会被整套的Windows 10 for IoT 方案吸引过去。

微软更强调在Windows 10 提出的Windows One 策略,即希望一个Windows 适应所有的设备和屏幕。并为用户及开发人员提供一致的体验。

这种方式使该系统具有强大的功能,但是,势必导致其体量过大。目前Windows IoT Core 提供两个版本,分别针对有显示屏和无显示屏两种场景(有头和无头模式headed or headless mode)。无头模式需要256MB内存和2GB存储,有头模式需要512MB内存和2GB存储。

Tizen

  • 拥有者:三星
  • 名称:Tizen
  • 网址:developer.tizen.org/development/iot-preview/getting-started

Tizen是基于HTML5的开源标准软件平台。它面向智能手机、平板、车载信息、智能电视、笔记本电脑,客户可以在设备之间尽享创新的操作系统、应用和用户体验,而且Tizen支持原始设备创造商。

Tizen

三星在Android系统尝到了甜头后,在几年前道明自己要开发Tizen系统,这一件事也是几经波折。自2011年英特尔和Linux基金会宣布致力于研发Tizen到2012年1月17日三省宣布将Bada集成至Tizen,从搭载Tizen系统的Galaxy Gear智能手表的推出到三星宣布2015年旗下智能电视采用Tizen系统。

三星电子开发的这款物联网操作系统,事实上是一款简化版的Tizen操作系统,后者目前已被应用于三星电子的智能手机和电视机当中。依据三星电子的计划,包括电冰箱、电烤箱、洗衣机等家电和灯泡等,都将有可能采用这款操作系统。

AliOS-Things

  • 拥有者:阿里
  • 名称:AliOS-Things
  • 网址:www.alios.cn/things

AliOS-Things

AliOS Things是面向IoT领域的轻量级物联网嵌入式操作系统。致力于搭建云端一体化IoT基础设备。具备极致性能,极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云Link,可广泛应用在智能家居、智慧城市、新出行等领域。

(1) 极简开发

  • 基于Linux平台,提供MCU虚拟化环境,开发者直接在Linux平台上开发硬件无关的IoT应用和软件库,使用GDB/Valgrind/SystemTap 等PC平台工具诊断开发问题;
  • 提供IDE,支持系统/内核行为Trace、Mesh组网图形化显示;
  • 提供Shell交互,支持内存踩踏、泄露、最大栈深度等各类侦测;
  • 提供面向组件的编译系统以及Cube工具,支持灵活组合IoT产品软件栈;
  • 提供包括存储(掉电保护、负载均衡)在内的各类产品级别的组件。

(2) 即插即用的连接和丰富服务

  • 支持umesh即插即用网络技术,设备上电自动连网;
  • 通过Alink与阿里云计算IoT服务无缝连接。

(3) 细颗粒度的FOTA更新

  • 支持应用代码独立编译映像,IoT App独立极小映像升级;
  • 支持映像高度压缩。

(4) 彻底全面的安全保护

  • 提供系统和芯片级别安全保护;
  • 支持可信运行环境(支持ARMV8-M Trust Zone);
  • 支持预置ID2根身份证和非对称密钥以及基于ID2的可信连接和服务。

(5) 高度优化的性能

  • 内核支持Idle Task成本,Ram<1K,Rom<2k,提供硬实时能力;
  • 提供YLOOP事件框架以及基于此整合的核心组件,避免栈空间消耗,核心架构良好支持极小FootPrint的设备。

(6) 解决IoT实际问题的特性演进

  • 更好的云端一体融合优化,更简单的开发体验,更安全,更优整体性能和算法支持,更多的特性演进。

Lite OS

  • 拥有者:华为
  • 名称:Lite OS
  • 网址:www.huawei.com/minisite/liteos/cn/

华为物联网操作系统Huawei LiteOS 是华为面向物联网领域开发的一个基于实时内核的轻量级操作系统。本项目属于华为物联网操作系统Huawei LiteOS 基础内核源码,现有代码支持任务调度,内存管理,中断机制,队列管理,事件管理,IPC机制,时间管理,软定时器以及双向链表等常用数据结构。

Huawei LiteOS 的代码将以BSD 3-Clause License,除非华为另选其他许可证(“可适用的许可证”)。

Lite OS 目前世界上最轻量级的物联网操作系统,其系统体积轻巧到10KB级,具备零配置、自组网、跨平台的能力,可广泛应用于智能家居、穿戴式、工业等领域。由于LiteOS 实行开源,合作伙伴便可以快速构建自己的物联网产品,这将让智能硬件的开发变得更加简单,从而加快实现万物的互联互通。Lite OS 的模式与牛津大学研究人员发明的Contiki 系统、加州大学伯克利分校发明的TinyOS 相似,同样具备轻量化、开源的特性。

LiteOS 操作系统具有能耗最低,体积最小、响应最快的特点,已推出全开放开源社区,提供芯片、模块和开源硬件板,如海思的PLC 芯片HCT3911、媒体芯片3798M/C、IPCamera 芯片Hi3516A,以及LTE-M 芯片等(开发者也可以选择第三方芯片,如STM32等)。

LiteOS 主要应用于智能家居、穿戴式、车联网、智能抄表、工业互联网等IoT 领域的智能硬件上,数据采集、实时控制等是其典型使用环境。

绿洲OS

  • 拥有者:新华三
  • 名称:绿洲OS
  • 网址:www.h3c.com/cn/Products___Technology/Technology/LvZhouOS/

绿洲OS是新华三面向IoT领域,自主研发、免费开源的统一物联网操作系统和中间件平台,具有安全性、轻量级、低功耗、实时快速、开放性和互联互通等关键能力,为开发者提供一站式完整软件平台,有效降低开发门槛,大大缩短了开发周期。绿洲OS可用于智慧城市、工业、农业、校园、医院、可穿戴等IoT领域的智能硬件设备上承载,从而形成统一的数据格式上传至绿洲云平台。

UHomeOS

  • 拥有者:海尔
  • 名称:UHomeOS
  • 网址:www.haieruplus.com/uhomeos.htm

UHomeOS框架图

UHomeOS操作系统基于硬件模块融合互联互通、大数据、人工智能等技术成果,集结智能家居行业生态服务资源,提供跨场景、全兼容、多资源、高安全的基础操作环境,以家庭用户为中心,串联起人、家电、服务三张网,赋能家电,让家电理解用户需求,主动为用户提供个性化生态场景服务,提升用户体验。

HelloX

  • 名称:HelloX
  • 网址:暂缺

HelloX是由国内操作系统爱好者开发的完全开源物联网操作系统,HelloX操作系统也符合物联网操作系统的分层结构。

HelloX分层架构

HelloX分层架构

  • 最下方是驱动程序层,实现了大多数常见硬件的驱动支持,包括USB,以太网,SPI/UART等等。严格来说,驱动程序层应该属于内核的一部分。在HelloX的实现中,为了突出HelloX丰富的驱动支持的特点,把驱动程序单独拿出来,作为一个层次展示。
  • 在驱动层之上,是内核层。内存管理,任务调度等机制,都是在内核中实现的。与其它物联网操作系统基于Linux内核定制的思路不同,HelloX的内核是根据物联网的特征,完全全新开发的。内核中各模块之间是松耦合的,可以根据需要,灵活的裁剪或者增加任何内核模块,这样就确保了内核的可伸缩性,能够满足多种多样的碎片化硬件需求。也可以根据需要,替换内核中的缺省模块或者算法,比如可以采用自定义的任务调度算法,替换内核中缺省的基于优先级轮询的调度算法。也可以采用更加实时的内存分配算法(比如固定尺寸链表法),来替换内核中缺省的空闲链表内存分配算法,等等。对于MMU的支持,HelloX也是作为可选模块来实现,裁剪掉MMU功能,不会对系统中的其它模块产生任何功能上的影响(但是内存保护,虚拟内存等机制就不能用了)。
  • 在内核层之上,是外围组件层。HelloX提供了包括网络,文件系统,系统调用等在内的多种多样的外围组件,供物联网应用程序开发调用。

目前的HelloX,移植IoTivity物联网协同框架,作为自己的协同框架。未来根据需要,HelloX会开发更加灵活的物联网协同框架,与HelloX捆绑使用。

基于这些基本组件和功能,可以基于HelloX操作系统实现广泛的物联网应用,比如家庭网关,智能摄像头,智慧家庭中的家电设备,抄表,e-Health等。目前HelloX已经实现了同多个物联网云平台的对接和集成。

SylixOS

  • 拥有者:翼辉信息
  • 名称:SylixOS
  • 网址:www.sylixos.com

SylixOS 是一款嵌入式硬实时操作系统,同其类似的操作系统,全球比较知名的还有VxWorks(主要应用于航空航天、军事与工业自动化领域)、RTEMS(起源于美国国防部导弹与火箭控制实时系统)、ThreadX(主要应用于航空航天与数码通讯)等。

从全球范围上看,SylixOS作为实时操作系统的后来者,在设计思路上借鉴了众多实时操作系统的设计思想,其中就包括RTEMS、VxWorks、ThreadX 等,使得具体性能参数上达到或超过了众多实时操作系统的水平,成为国内实时操作系统的最优秀代表之一。

μT/OS

  • 拥有者:大连悠龙软件
  • 名称:μT/OS
  • 网址:github.com/TenuxOS

大连悠龙软件科技有限公司从2008年开始借鉴谷歌在Android 上的成功商业模式,以μT-Kernel 规范为基础,2009年底在世界上第一个研发出支持Cortex M3 和μT-Kernel 规范的实时操作系统内核,后来逐渐加上Linux 上的成熟轻量级开源中间件,推出了中国人自己的物联网开源实时操作系统——μTenux,在μTenux 中遵循μT-Kernel 规范的内核被命名为μT/OS。

μTenux 支持CortexM0/3/4、ARMV4T、ARMV5E 等多种32位内核微控制器,在2010年和2011年陆续成为ATMEL 和ARM 公司全球操作系统战略合作伙伴。

uT/OS V3.0 ,支持ST 全系列Nucleo 板子,支持STM32 Cube 库,支持动态下载程序,增加安全API。

Elastos

拥有者:亦来云

名称:Elastos

网址:www.elastos.org

Elastos OS操作系统是一个基于C++构件技术(CAR),支撑多种应用类型(C++, Android JAVA, HTML5/JS),且面向个人云存储及家庭云物联网和家庭云互联网的智能终端操作系统。该系统将用于智能电视、个人云存储终端与无线网络应用终端等多种设备,力图构筑一个较为完整的智能家庭环境。

TreeOS

  • 拥有者:光轮电子
  • 名称:TreeOS
  • 网址:www.treeos.com/index.php#TreeOS

TreeOS是一种无核的、软件构件化的、实时嵌入式操作系统,是一种新型的操作系统。

TreeOS 实时操作系统看成由两部分组成:第一部分:设计软件架构方法,也是构件化方法;第二部分:软件构件库。

以下总结了TreeOS的一些特点:

  • 一个可适用于各种单片机的实时操作系统;
  • 一个真正适用于51单片机的实时操作系统;
  • 一个采用软件构件化技术的新型操作系统
  • 一个带有驱动程序库的实时操作系统;
  • 一个可自动帮你完成70~90%软件开发任务的操作系统;
  • 一个非常原理简单、通用的单片机操作系统。

TreeOS填补了中低档单片机无适用操作系统的市场空白。由于采用软件构件化技术,使我们可以进一步开发出能够帮助工程师编程的软件机器人,这就是AlphaMCU。通过轻点鼠标,你就可以轻松完成整个项目软件的70~90%代码(定制化操作系统)!而且这些代码都是产品级的。你所要做的只是编写剩余的用户代码。

TreeOS目前已成功应用在MCS51、STC、AVR、MSP430、STM8、STM32等多种单片机上。由于在场景中采用了前后台系统,这种做法比较适合单片机使用。但实际上,TreeOS并无具体针对某一类计算机系统(构件库可能不同)。因此TreeOS同样可适用于任何其它符合其设计要求的计算机系统,比如ARM7或PC机。

TreeOS的应用范围包括:工业控制、仪器仪表、汽车电子、民用电器、 医疗仪器、通讯等多个行业。

RT-Thread

  • 拥有者:睿赛德
  • 名称:RT-Thread
  • 网址:www.rt-thread.org

RT-Thread是一个来自中国的开源物联网操作系统,它提供了非常强的可伸缩能力:从一个可以运行在ARM Cortex-M0芯片上的极小内核,到中等的ARM Cortex-M3/4/7系统,甚至是运行于MIPS32、ARM Cortex-A系列处理器上,系统功能丰富,其项目源代码托管在GitHub repo上。

RT-Thread包含了一个自有的、传统的硬实时内核:可抢占的多任务实时调度器、信号量、互斥量、邮箱、消息队列、信号等。当然,它和传统的实时操作系统还存在着三种不同:

  • 设备驱动框架;
  • 软件组件;
  • 应用模块

设备驱动框架更类似一套驱动框架,涉及到UART,IIC,SPI,SDIO,USB从设备/主设备,EMAC,NAND闪存设备等。它会把这些设备驱动中的共性抽象/抽取出来,而驱动工程师只需要按照固定的模式实现少量的底层硬件操作及板级配置。通过这样的方式,让一个硬件外设更容易地对接到RT-Thread系统中,并获得RT-Thread平台上的完整软件栈功能。

软件组件是位于RT-Thread内核上的软件单元,例如命令行(finsh/msh shell),虚拟文件系统(FAT,YAFFS,UFFS,ROM/RAM文件系统等),TCP/IP网络协议栈(lwIP),Libc/POSIX标准层等。一般的,一个软件组件放置于一个目录下,例如RT-Thread/components目录下的文件夹,并且每个软件组件通过一个SConscript文件来描述并被添加到RT-Thread的构建系统中。当系统配置中开启了这一软件组件时,这个组件将被编译并链接到最终的RT-Thread固件中。

注:随着RT-Thread 3.0中的包管理器开启,越来越多的软件组件将以package方式出现在RT-Thread平台中。而RT-Thread平台更多的是指:

  • RT-Thread内核;
  • shell命令行;
  • 虚拟文件系统;
  • TCP/IP网络协议栈;
  • 设备驱动框架;
  • Libc/POSIX标准层。

更多的IoT软件包则以package方式被添加到RT-Thread系统中。

应用模块,或者说用户应用(User Application,UA)是一个可动态加载的模块:它可以独立于RT-Thread固件而单独编译。一般的,每个UA都包含一个main函数入口;一个它自己的对象容器,用于管理这个应用的任务/信号量/消息队列等内核对象,创建、初始化、销毁等。

Ruff

  • 拥有者:上海南潮
  • 名称:Ruff
  • 网址:ruff.io/zh-cn/

Ruff是一个支持JavaScript 开发应用的物联网操作系统,为软件开发者提供开放、高效、敏捷的物联网应用开发平台,让IoT 应用开发更简单。

Ruff 对硬件进行了抽象,使用了基于事件驱动、异步I/O 的模型,使硬件开发变得轻量而且高效。除了使用JavaScript 作为开发语言,它还拥有自己的软件仓库,从模块到驱动一应俱全。提高软件兼容性、降低硬件开发门槛。

整个Ruff开发体系包括Ruff OS、Ruff SDK、Ruff软件仓库、Ruff Kit 开发套件。 只要您有软件开发经验,就可以用Ruff 开发硬件应用。

Ruff 的特点有:

  • JavaScript编程——采用开发者众多的唯一全栈语言作为编程语言
  • 硬件抽象——调用程序库即可操作硬件,降低开发入门门槛
  • 跨平台——忽略板卡差异,同一份应用代码可以运行在不同板卡上
  • 高效便捷开发——告别交叉编译、烧写板卡,PC 上完成测试,一键部署

MICO

  • 拥有者:上海庆科
  • 名称:MICO
  • 网址:www.mxchip.com/product/mico

MiCO IoT OS 由上海庆科联合阿里智能云于2014年7月发布,是国内首款真正意义上的物联网操作系统。简单的说它是基于MCU 的全实时物联网操作系统,是面向智能硬件设计、运行在微控制器上的高度可移植的操作系统和中间件开发平台,已被广泛应用于智能家电、照明、医疗、安防、娱乐等物联网应用市场。

MiCO 的全称是:Micro-controller based Internet Connectivity Operating system。是基于微控制器的互联网接入操作系统。 开发者可以在各种微控制器平台上基于MiCO 来设计接入互联网的创新智能产品,实现人,物互联。

MiCO 是针对智能硬件优化设计而运行在微控制器上高度可移植的实时操作系统,包含了各种软件中间件,从而降低智能硬件开发成本,提高开发效率是国内首款物联网操作系统。MiCO 拥有完整的解决方案,包括了建议的无线网络配置、智能硬件的初次设置、快速无线网络接入、本地设备与服务发现、身份认证等组件。这些都能够降低研发投入和维护的成本,缩短研发周期。

Zephyr

  • 名称:Zephyr
  • 网址:www.zephyrproject.org/

Linux 基金会宣布了一个微内核项目——Zephyr,由Intel主导, 风河提供技术。Zephyr 微内核将被用于开发针对物联网设备的实时操作系统(RTOS)。Zephyr项目得到了英特尔、NXP 半导体、Synopsys和UbiquiOS等公司的支持,英特尔子公司Wind River向Zephyr项目捐赠了它的Rocket RTOS 内核。

Wind River 的Rocket RTOS 将转变成基于Zephyr内核的下游商业发行版。Zephyr微内核能运行在只有10KB RAM的32位微控制器上,相比之下基于Linux的微控制器项目uClinux 需要200KB RAM。

Zephyr 项目在设备和通信协议栈的两个层次提供安全特性,除此之外,社区也对安全问题严肃看待,计划成立专门安全工作组并委派一位安全维护者。

μCLinux

  • 拥有者:微软
  • 名称:μCLinux
  • 网址:www.uclinux.org/pub/uClinux/

μClinux作为嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指微控制Linux。最初是Linux 2.0内核的衍生产品,同标准的Linux相比,μClinux 的内核非常小,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的API,以及TCP/IP 网络协议等。

因为没有MMU 内存管理单元,所以其多任务的实现需要一定技巧。

与Linux 一样,μClinux 操作系统将中断处理分为两部分:顶半处理和底半处理。在顶半处理中,必须关中断运行,且仅进行必要的、非常少、速度快的处理,其他处理交给底半处理;底半处理执行那些复杂、耗时的处理,而且接受中断。因为系统中存在有许多中断的底半处理,所以会引起系统中断处理的延时。

μClinux 最大特点在于针对无MMU 处理器设计,可以利用功能强大的Linux资源,因此适合开发对事件要求不高的小容量、低成本的各类产品,特别适用于开发与网络应用密切相关的嵌入式设备或者PDA 设备。

QNX

  • 拥有者:黑莓
  • 名称:QNX
  • 网址:www.qnx.com/account/login.html?returnaddress=%2Fdownload%2Fgroup.html%3Fprogramid%3D29178

QNX是一个分布式、嵌入式、可规模扩展的硬实时操作系统。它遵循POSⅨ.1 (程序接口)和POSⅨ.2 (Shell和工具)、部分遵循POSⅨ.1b(实时扩展)。它诞生于1980年,距今已37年的历史。

Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick UNIX)的系统,直到AT&T发律师函过来才把名字改成QNX。

QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。

QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一。它具有独一无二的微内核实时平台,建立在微内核和完全地址空间保护基础之上,实时、稳定、可靠,已经完成到PowerPC、MIPS、ARM等内核的移植,成为在国内广泛应用的嵌入式实时操作系统。虽然QNX本身并不属于UNIX,但由于其提供了POSIX的支持,使得多数传统UNIX程序在微量修改(甚至不需修改)后即可在QNX上面编译与运行。

在具有高可靠性内核的基础上,QNX的创新设计使它同样具有很高的效率。QNX最为引人注目的地方是,它是UNⅨ的同胞异构体,保持了和UNⅨ的高度相似性,绝大多数UNⅨ或LINUX应用程序可以在QNX下直接编译生成。这意味着为数众多的稳定成熟的UNⅨ、LINUX应用可以直接移植到QNX这个更加稳定高效的实时嵌入式平台上来。

TRON

  • 名称:TRON
  • 网址:暂缺

TRON 是一项开放式的实时操作系统内核设计项目,它是”The Real-time Operating system Nucleus”(实时操作系统内核)的缩写。该项目由东京大学的坂村健教授于1984年发起,宗旨是为全社会的需要开发一套理想的计算机结构和网络。

担任日本东京大学(University of Tokyo)教授的坂村一直是个跳脱框架的思想家、大胆敢言,并热烈支持下一代运算架构;他的大部分学术生命都投入于开发TRON,以及在日本推广普及、无所不在的运算之概念。坂村表示,他所构想的“智慧物联网(Intelligent Object Network)”──类似于当红的物联网──可追溯至1987年他所开发的TRON目标之一。

TRON 在国内的知名度不高,但其实它的应用非常广,有兴趣的可以搜索相关文章进行了解,比如《TRON 伴随生活的另一个操作系统世界》。

μCOS-II/μCOS-III

  • 名称:μCOS-II/μCOS-III
  • 网址:www.micrium.com/rtos

国内做嵌入式开发的应该都听过μCOS,μCOS 在国内的应用也非常广泛,这得益于其代码的良好风格和开放性,以及配套的中间件和文档的完整性,并且在北京麦克泰公司及国内一些嵌入式专家的支持下,出版了很多关于μCOS 的中文书籍。

μC/OS-II的前身是μC/OS,最早出自于1992 年美国嵌入式系统专家Jean J.Labrosse 在《嵌入式系统编程》杂志的5月和6月刊上刊登的文章连载,并把μC/OS 的源码发布在该杂志的BBS 上。μC/OS-II 是在μC-OS 的基础上发展起来的,是用C 语言编写的一个结构小巧、抢占式的多任务实时内核。μC/OS-II 能管理64 个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。

μC/OS-II中断处理比较简单。一个中断向量上只能挂一个中断服务子程序ISR,而且用户代码必须都在ISR 中完成。ISR 需要做的事情越多,中断延时也就越长,内核所能支持的最大嵌套深度为255。

Micrium 宣布在它的嵌入式产品中增加μC/OS-MMU 和μC/OS-MPU 两款产品。这两种产品增加了嵌入式系统中的关键内存函数。μC/OS-MMU 通过为多个独立的应用提供时间和空间的保护,为带有内存管理单元(MMU)的中央处理器提供了内存保护功能。μC/OS-MPU通过保护任务的内存防止对未被授权的系统内存的访问,破坏内存的内容,为带有内存保护单元的CPU提供了保护机制。

关于μCOS-II 和μCOS-III 的区别和性能对比,可以搜索相关文章进行了解,比如《UCOS-II和UCOS-III的性能对比》。

2016年,为了强化自身嵌入式物联网设计方案,Silicon Labs 宣布收购物联网(IoT)即时操作系统(RTOS)软件供应商Micrium,来增进物联网嵌入式解决方案的完整性。

FreeRTOS

  • 名称:FreeRTOS
  • 网址:www.freertos.org

FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。

FreeRTOS的特点包括:

  • 用户可配置内核功能
  • 多平台的支持
  • 提供一个高层次的信任代码的完整性
  • 目标代码小,简单易用
  • 遵循MISRA-C标准的编程规范
  • 强大的执行跟踪功能
  • 堆栈溢出检测
  • 没有限制的任务数量
  • 没有限制的任务优先级
  • 多个任务可以分配相同的优先权
  • 队列,二进制信号量,计数信号灯和递归通信和同步的任务
  • 优先级继承
  • 免费开源的源代码

FreeRTOS的创始人是Richard Barry,他编写了大量的移植代码和配套文档。SafeRTOS 便是基于FreeRTOS 而来,前者是经过安全认证的RTOS,因此FreeRTOS 的安全性也有了相对的保障。

Ubuntu Core 16

  • 拥有者:Canonical
  • 名称:Ubuntu Core 16
  • 网址:www.ubuntu.com/core

Ubuntu 已经向外界透露了它们对于物联网的最新想法,那就是让Linux 成为让物联网更智能和可扩展的核心。Snappy Ubuntu Core 是面向智能设备的最新平台,其承诺可以运行存储在本地或依赖于云端的相同软件。显然,后者的最大好处就是可以让使用者避开频繁的定期升级。

Ubuntu Core 团队意识到,“联网设备”的数量将会激增。虽然手机和计算机的定期维护和更新已深入人心,但是对于洗衣机、温控器、以及智能开关来说,大家却很容易忽略掉它们。

此外,在频发的黑客攻击面前,联网设备的安全性也需要慎重考虑。如果没有最新的安全补丁和固件修复,那么必将会给联网设备的使用者留下巨大的隐患。

更重要的是,Ubuntu Core 既可以在设备上、也可以依赖云端而运行。并且无论他们运行于ARM 或x86 平台,开发者都会得到相同的API 和安全更新。

截至目前,Ubuntu母公司Canonical 已经拥有了21家合作伙伴,我们希望这一数字可以在今年迎来更高的增长。

Nucleus OS

  • 拥有者:Mentor
  • 名称:Nucleus OS
  • 网址:www.mentor.com/embedded-software/nucleus/

Nucleus 是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95%的代码是用ANSIC 写成的,因此非常便于移植并能够支持大多数类型的处理器。从实现角度来看,NucleusPLUS 是一组C 函数库,应用程序代码与核心函数库连接在一起,生成一个目标代码,下载到目标板的RAM 中或直接烧录到目标板的ROM 中执行。

Nucleus 是Mentor Graphics 公司开发的一种嵌入式操作系统。这家公司声称,其软件目前在30多亿个设备上运行,这是个相当庞大的安装群。该操作系统为众多嵌入式架构提供了有力的支持,在汽车、医疗、公用事业、工业和消费类电子产品等行业垂直领域大受欢迎。共享单车Bluegogo 用的就是Nucleus OS。

Ostro

  • 名称:Ostro
  • 网址:ostroproject.org

Ostro 操作系统是特别为物联网建造的操作系统,开发者可以马上用,节省了很多时间,功能也非常完善,包括覆盖全面的连接标准,支持包含蓝牙、WiFi 和NFC 等连接方式,并且支持多种如IoTivity 的设备对设备互联互通标准;包含安全启动、强制访问控制、加密标准和软件安全更新协议等安全措施;先进的设备管理以及直观的开发工具。

Ostro是一套基于Linux并且为物联网智能设备特别量身订做的开源操作系统,它可以为任意数量的物联网使用案例特别定制功能,包含Linux参考设计、软件包安装和管理机制。除此之外,它的开发工具可以让设备上的连接潜力扩展到最大。Ostro 项目不但提供管理众多设备的工具,最重要的是,它能保障物联网世界安全无虞。

Ostro操作系统的适应性非常强,既可直接用于受支持的设备,也可以按照需求进行定制,而且开发环境提供了多种语言选择(Native (C/C++) 和Node.js),可以轻松找到新设备的驱动程序,并充分利用Linux 社区的所有资源。最后,它还提供了从引导/内核到中间件和应用的自上而下的安全性选项。

Ostro操作系统包含易用的工具,让开发和原型制作都变得容易。它利用Yocto 项目的工具组环境来进行操作系统和应用包的配置,开发者可以先创建出一个理想的配置再根据需求修改。当使用基于Linux 的开发工具时,对于既有的Linux 和安卓开发者,完全不需要额外的学习过程,开发者可以直接用交互编译工具来生成程序。

TinyOS

  • 名称:Tiny OS
  • 网址:暂缺

Tiny OS 是UC Berkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计,操作系统基于构件(component-based)的架构使得快速的更新成为可能,而这又减小了受传感网络存储器限制的代码长度。Tiny OS 是一个具备较高专业性,专门为低功耗无线设备设计的操作系统,主要应用于传感器网络、普适计算、个人局域网、智能家居和智能测量等领域。

Tiny OS的如下特性决定了其在传感器网络中的广泛应用,使其在物联网中占据了举足轻重的地位。

相对于主流操作系统成百上千MB的庞大体积来说,Tiny OS显得十分迷你,只需要几KB的内存空间和几十KB的编码空间就可以运行的起来,而且功耗较低,特别适合传感器这种受内存、功耗限制的设备。

Tiny OS本身提供了一系列的组件,包括:网络协议、分布式服务器、传感器驱动及数据识别工具等,使用者可以通过简单方便的编制程序将多个组件连接起来,用来获取和处理传感器的数据并通过无线电来传输信息。

Tiny OS在构建无线传感器网络时,通过一个基地控制台控制各个传感器子节点,聚集和处理各子节点采集到的信息。Tiny OS只要在控制台发出管理信息,然后由各个节点通过无线网络互相传递,最后达到协同一致的目的。

eCOS(GNU)

  • 名称:eCOS(GNU)
  • 网址:ecos.sourceware.org

eCos(embedded Configurable operating system),中文翻译为嵌入式可配置操作系统或嵌入式可配置实时操作系统。适合于深度嵌入式应用,主要应用对象包括消费电子、电信、车载设备、手持设备以及其他一些低成本和便携式应用。eCos 是一种开放源代码软件,无需支付任何版税。

它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。最大特点是配置灵活,采用模块化设计,核心部分由小同的组件构成,包括内核、C语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用eCos 提供的配置工具可以很方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。

eCos 使用了分层式中断处理机制,把中断处理分为传统的ISR 和滞后中断服务程序DSR。类似于μClinux 的处理机制,这种机制可以在中断允许时运行DSR,因此在处理较低优先级中断时允许高优先级的中断和处理。为了极大地缩短中断延时,ISR 应当可以快速运行。如果中断引起的服务量少,则ISR 可以单独处理中断;如果中断服务复杂,则ISR 只屏蔽中断源,然后交由DSR 处理。

Contiki

  • 名称:Contiki
  • 网址:www.contiki-os.org

Contiki 系统的名字来自于托尔·海尔达尔的康提基号,由牛津大学研究人员发明。

Contiki 是一个适用于有内存的嵌入式系统的开源的、高可移植的、支持网络的多任务操作系统。包括一个多任务核心、TCP/IP 堆栈、程序集以及低能耗的无线通讯堆栈。Contiki 采用C 语言开发的非常小型的嵌入式操作系统,运行只需要几K的内存。

Contiki 拥有出色的TCP/IP 网络支持,包括IPv4和IPv6,还有6Lowpan 报文压缩、RPL路由、CoAP应用层,已经成为无线传感器网络和物联网感知层低功耗无线组网协议研发和实验的主要平台,其中6Lowpan已经成为IETF规范,也被zigbee SEP2.0标准以及ISA100.11a标准所采纳。

责任编辑:赵宁宁 来源: 物联网智库
相关推荐

2018-03-11 15:21:33

物联网终端操作系统

2015-09-10 10:09:18

物联网操作系统物联网生态环境

2018-09-19 22:59:37

2013-06-03 10:26:43

2021-01-26 14:22:04

物联网操作系统物联网IOT

2013-06-03 11:03:57

2018-07-24 05:33:21

物联网IOT操作系统

2020-11-13 15:14:08

物联网操作系统技术

2020-02-05 08:56:54

物联网安全物联网攻击

2019-03-31 23:02:48

物联网操作系统IOT

2019-11-22 10:11:07

物联网人工智能技术

2019-03-19 09:06:02

物联网IoT操作系统

2020-09-28 06:56:11

物联网终端操作系统

2017-07-03 12:35:17

Linux物联网操作系统

2018-05-30 08:33:24

物联网操作系统AndroidRuby on Rai

2019-05-28 10:28:52

物联网操作系统IOT

2016-11-15 08:30:03

物联网开源操作系统

2019-05-20 09:28:09

物联网操作系统IOT

2017-02-24 07:23:00

卡巴斯基专用操作系统

2016-12-23 14:08:30

物联网操作系统开源
点赞
收藏

51CTO技术栈公众号