物联网操作系统是新一代信息技术的重要组成部分。其英文名称是IoT(Internet of Things),顾名思义,「物联网就是万物相连的互联网」。与传统的个人计算机或个人智能终端(智能手机、平板电脑等)上的操作系统不同,物联网操作系统有其独特的特征。这些特征是为了更好的服务物联网应用而存在的,运行物联网操作系统的终端设备,能够与物联网的其它层次结合的更加紧密,数据共享更加顺畅,能够大大提升物联网的生产效率。
在本文中,我们特地盘点、汇总了2020年最受关注的十大物联网操作系统,一起来认识下都有哪些?
Andorid Things
Android Things是Google推出的平台,旨在帮助Android开发者打造物联网设备。这个平台还支持强大的应用,例如视频与音频处理以及通过TensorFlow进行板载机器学习。它继承Brillo的功能外,还增加了Android API和Google服务的支持,以及一些Android Things的支持库。
图片来自Android Things官网
Android Things最早是在2015年谷歌全球开发大会上出现的,谷歌对外宣布将会开发一个面向物联网设备的安卓操作系统,一开始被命名为「Brillo」。它其实就类似安卓系统的一个分支版本,类似于面向智能手表和穿戴设备推出的Android Wear等;2016年12月,谷歌第一次对外公布了Android Things的开发者预览版本。
根据谷歌的介绍,Android Things和手机版安卓系统一样,也会提供大量的安卓开发接口和谷歌基础服务,可以让物联网设备的开发者快速进行功能开发。据悉,谷歌围绕物联网设备提供的服务有「谷歌云平台」,「谷歌Play服务」、以及「Android Studio」开发工具。
华为Lite OS
截图自华为Lite OS官网
说到华为的物联网领域布局,可能大家耳熟能详的一个词就是「鸿蒙」,但其实鸿蒙OS和Lite OS有所不同。
严格来说,目前,二者之间是包含关系,Lite OS是华为布局于物联网设备领域的底层操作系统,而鸿蒙OS是华为布局于智能设备领域的底层操作系统,包含了Lite OS的软件代码,也就是说Lite OS是鸿蒙体系中的一个内核。
据了解,华为Lite OS是驱动万物感知、互联、智能,可广泛应用于面向个人、家庭和行业的物联网产品和解决方案。其具备创新式系统设计,可最大限度降低系统功耗,在特定场景下,能减少60%功耗开销;能提供E2E物联网领域性技术栈,快速构建不同应用场景下的TurnKey解决方案;可复制华为在消费者、运营商和企业领域成功商业实践和优秀经验,助力合作伙伴商业成功。
华为Lite OS基础内核支持任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器等操作系统基础组件,更好地支持低功耗场景,支持tickless机制,支持定时器对齐。同时提供端云协同能力,集成了LwM2M、CoAP、mbedtls、LwIP全套IoT互联协议栈,且在LwM2M的基础上,提供了Agent Tiny模块,用户只需关注自身的应用,而不必关注LwM2M实现细节,直接使用Agent Tiny封装的接口即可简单快速实现与云平台安全可靠的连接。
RTX
RTX是ARM公司的一款嵌入式实时操作系统,使用标准的C结构编写,运用RealView编译器进行编译。不仅仅是一个实时内核,还具备丰富的中间层组件,不但免费,而且代码也是开放的。
RTX的主要功能除了对任务(进程)的开始和终止以外,还支持进程通信,例如任务的同步、共享资源(外设或内存)的管理、任务之间消息的传递。开发者可以使用基本函数去开启实时运行器,去开始和终结任务,以及去传递任务间的控制(轮转调度)。开发者可以赋予任务优先级。
RTX的主要特点包括:支持时间片,抢占式和合作式调度。不限制数量的任务,每个任务都具有254的优先级。不限制数量的信号量,互斥信号量,消息邮箱和软定时器。支持多线程和线程安全操作。使用MDK基于对话框的配置向导,可以很方便的完成MDK的配置。
FreeRTOS
FreeRTOS是一种小型实时操作系统内核,具有源码公开、可移植、可裁减的特点。在嵌入式领域中,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。但是由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。
截图源自FreeRTOS官网
作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。FreeRTOS内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。
嵌入式领域,FreeRTOS是不多的同时具有实时性,开源性,可靠性,易用性,多平台支持等特点的嵌入式操作系统。目前,FreeRTOS已经发展到支持包含X86,Xilinx,Altera等多达30种的硬件平台,其广阔的应用前景已经越来越受到业内人士的瞩目。
Fuchsia
Fuchsia系统是谷歌自主打造的一款精简、安全、基于微内核设计、为物联网时代打造的全新操作系统,谷歌希望通过Fuchsia系统统一安卓和Chrome OS,其支持多达4个程序同屏同时运行(平板模式下),并且主页以直列的方式显示各种故事卡、应用集、系统组件等,有点类似多任务、多标签页的做法,但更简洁。
图片来自Google
据悉,Fuchsia系统不同于安卓使用的Linux内核,而是采用的比较新的Zircon的内核。该系统与当下Android相比,无论是存储器还是内存之类的硬件要求都大幅降低,可以看出这是一款面向物联网的家用电器用的系统。Fuchsia系统支持32位和64位的ARM处理器和64位PC处理器。Fuchsia支持多种编程语言,包括C/C++、Dart、Go、Rust和Python,此外还有一种名为FIDL的接口定义语言。据悉,Fuchsia可以用于手机、电脑、智能手表、车载娱乐系统和其他嵌入式设备。
VxWorks
VxWorks诞生于1983年,由美国风河系统(Wind River System,简称WRS)公司设计开发,它是一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。
图片来自VxWorks
VxWorks之所以能在嵌入式实时操作系统领域占据一席之地,其良好的持续发展能力、高性能的内核以及友好的用户开发环境被认为了其中的几点原因。
VxWorks支持几乎所有现代市场上的嵌入式CPU,包括x86系列、ARM、MIPS、LoongISA、 PowerPC、Freescale ColdFire、Intel i960、SPARC、SH-4、StrongARM以及xScale CPU。
VxWorks以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等前沿、尖端及实时性要求极高的领域中,例如卫星通讯、军事演习、弹道制导、飞机导航等。
据悉,美国的F-16、F/A-18战斗机、B-2隐形轰炸机和爱国者导弹,火星探测器如1997年7月登陆的火星探路者号,2008年5月登陆的凤凰号、2012年8月登陆的好奇号、2018年登陆的洞察号等,都使用了VxWorks操作系统。
风河公司公司还推出有的一套名为Tornado的实时操作系统开发环境,类似MicrosoftVisual C,但是提供了更丰富的调试、仿真环境和工具。
风河公司持续致力于开拓嵌入式计算,技术成果据称已应用于20亿+产品之中。
Mbed OS
Mbed OS由ARM联合它的技术合作伙伴,以及Mbed开发者社区打造,它是一个平台、一个操作系统,也是主打物联网的一整套软件解决方案。Mbed OS被用于基于32位ARM Cortex-M系列芯片的物联网设备,围绕Mbed OS,形成了一个嵌入式开源生态。
针对不同类型、不同资源配置的物联网设备,ARM推出了两款不同的操作系统:Mbed OS和Mbed Linux OS。
据ARM物联网服务集团中国区负责人陈曦2019年的介绍,Mbed OS面向一些资源比较受限,希望能够用简单快捷的方式满足连接、安全以及应用开发需求的设备,Mbed Linux OS则面向网关、摄像头、工业电脑这类资源配置更加丰富的设备,方便用户集中开发高附加值的功能。
作为一个开源的OS,Mbed OS已经和160多种不同的芯片平台做好了预集成,大幅降低了开发难度,缩短开发时间。
Mbed OS的核心软件平台由核心贡献者和伙伴公司开发,由mbed团队维护。在Apache许可证2.0下,这个核心平台提供的所有核心通用软件构件,加上HAL迁移性允许mbed透明的运行在不同制造商的微控制器上,和TOOLCHAIN迁移性允许开发使用不同的嵌入式工具链。
Mbed OS的构件数据库由各公司和更广泛的社区开发,它提供对各种外设构件、传感器、无线广播、协议和云服务API的支持,这也是在Apache许可证2.0或其它创立者选择的许可证下贡献的,也由这些个体公司和开发开发者社区支持。
RIOT
RIOT 操作系统的低内存占用特性使其更适用于物联网设备,它背后没有某个公司的支持,而完全是由社区驱动。它的官方口号是:If your tiny IoT device can't run Linux, use RIOT,可见其定位。此外,在其官网上,迎面展示的也是这样一句话:The friendly Operating System for the Internet of Things。
图片来自RIOT
RIOT操作系统最初由柏林自由大学(FU Berlin)、法国国家信息与自动化研究所(INRIA),以及汉堡应用科技大学(HAW Hamburg)共同开发,其内核基本从FireKernel继承,而这个内核原本为传感器网络开发。
RIOT基于微内核架构。与其他低内存占用的系统(如TinyOS和Contiki)不同, RIOT允许使用C语言和C++语言编写应用程序,而且提供完整的多线程和实时响应解决方案。
RIOT可以在8位单片机(如AVR ATMega),16位单片机(如MSP430)和32位单片机(如ARM的Cortex)上运行,也可以作为一个Linux或macOS进程运行,能使用诸如GNU编译器合集(GCC),GNU调试器,Valgrind,Wireshark等标准调试工具。
RIOT符合一部分POSIX标准,提供多种通信协议栈,包括了IPv6、6LoWPAN和内容中心网络,还支持RPL、UDP、TCP和CoAP。
AliOS-Things
据官方介绍,AliOS Things是面向IoT领域的轻量级物联网嵌入式操作系统,是 阿里巴巴AliOS家族旗下、面向IoT领域的、高可伸缩的物联网操作系统。
图片来自AliOS官网
AliOS Things致力于搭建云端一体化IoT基础设备。具备极致性能,极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云Link,可广泛应用在智能家居、智慧城市、新出行等领域。
AliOS Things提供已通过认证的80+的硬件平台和100+的传感器给潜在客户选择,也为用户提供包括MQTT,Http/Https,Coap,LwM2M,LoRaWAN在内的多种物联网协议组件支持。
据官方展示,AliOS Things目前已用于智能家居、智能办公、智能厨房、空气环境等领域。
Tizen RT
Tizen RT是三星电子2011年推出的基于Linux的操作系统,它适用于移动应用程序和小型嵌入式系统。
图片来自三星
Tizen RT的目标是将Tizen平台的设备覆盖范围扩展到低端设备。Tizen已在智能电视、智能手机、可穿戴设备(Gear S,Gear Fit)、车辆和智能家电中商业化。三星电子主要将此操作系统用于物联网开发。
Tizen RT是基于RTOS的轻量级平台,使用C语言,C ++和Html5作为开发语言,它可以适合这些的设备:它们通常配备具有MPU,小于2MB RAM和小于16MB Flash的Cortex-M / R处理器。
典型的基于RTOS的开发环境有几个限制。首先,它无法在运行时加载其他模块。其次,它可能不如Linux环境。为了解决这些限制,Tizen RT采用Linux风格的开发环境,包括POSIX API,BSD Socket API,Shell和Kconfig构建配置。这有助于Linux开发人员轻松地在Tizen RT之上构建其业务逻辑。
TizenRT使用称为「Tizen Common」的共享基础架构来维持物联网开发的主要目的。TizenRT的开发方式使移动运营商可以根据某个地区的人口需求定制其产品。