物联网操作系统是运行在物联网设备上的提供物物相连能力的操作系统,其核心在于能够将各种物体连接到互联网,并提供数据通信能力。
如果我们把常见的操作系统按照其应用场景进行分类,可主要分为桌面操作系统、移动操作系统和物联网操作系统,各个领域主要操作系如图下图所示。
到目前为止,桌面操作系统和移动操作系统目前市场占比都形成了比较稳定的格局。相比之下,物联网操作系统领域的碎片化问题则非常严重,并没有哪几个操作系统占据绝对优势,正处于“百花齐放、百家争鸣”的阶段。
大部分物联网操作系统是从嵌入式操作系统发展而来的,像uC/OS、FreeRTOS等,也有一些是从Linux、Android等大型系统裁剪而来,像RT Linux、Android Things等,而AliOS Things则是专门为物联网应用场景而研发的。
下面简单介绍一下国内外比较有名的物联网操作系统。
1. uC/OS
如下图所示,uC/OS最早于1992年正式发布,1998年发布了uC/OS-II版本,最新的版本则是uC/OS-III,国内比较流行的是uC/OS-II。除任务管理、时间管理、内存管理、通信与同步等操作系统基本功能外,uC/OS还提供了TCP/IP、USB、CAN和Modbus等功能组件,但其网络功能相对来说比较薄弱。uC/OS采用的是开源不免费的策略,商业使用它需要缴纳授权费用。从其在国内的发展过程来看,2010年是uC/OS的鼎盛时期,可能也正是因为“开源不免费”的策略导致它在2010年后迅速地被FreeRTOS超越。uC/OS在2016年的时候被Silicon Labs公司收购了。
2. FreeRTOS
如图下图所示,FreeRTOS嵌入式操作系统诞生于2003年,采用MIT License,开源免费,适用于任何商业或非商业场合。在ARM在2004年推出Cotex-M3系列架构的IP之后,TI,ST,NXP,Atmel等国外芯片公司在约2006年的时候都相继推出基于Cotex-M3的MCU,这些芯片默认搭载的都是FreeRTOS操作系统,这就直接促使了FreeRTOS在2010年的时候迅速超越uC/OS成为第一大嵌入式操作系统。FreeRTOS在2016年被Amazon公司正式收购,Amazon将自己的AWS服务内嵌到FreeRTOS系统中,并于2017年推出了集成无线连接、安全、OTA等功能的物联网操作系统。
Amazon FreeRTOS的内核具有简单、轻量、可靠性好、可移植性好等诸多优点,有着广泛的用户基础,已经在多个行业中进行商业应用。Amazon FreeRTOS版本提供了跟AWS相关的软件库,方便用户将物联网功能集成到设备中去。其提供的软件库还支持 TLS V1.2 协议,可以帮助设备安全地连接到云。
除此之外,Amazon FreeRTOS设备可以直接连接到AWS IoT Core等云服务,也可以连接到AWS Greengrass等本地边缘服务。
3. LiteOS
LiteOS是华为公司推出的轻量级物联网操作系统,它目前已经适配了众多的通用MCU以及NB-IoT集成开发套件。它是面向IoT领域构建的轻量级物联网操作系统,遵循BSD-3开源许可协议,可广泛应用于智能家居、个人穿戴、车联网、城市公共服务、制造业等领域。
4. RT-Thread
RT-Thread诞生于2006年,是一款以开源、中立、社区化发展起来的物联网操作系统,它主要采用C语言编写,浅显易懂,且具有方便移植的特性。
RT-Thread有完整版和Nano版,对于资源受限的微控制器(MCU)系统,可通过简单易用的工具,裁剪出仅需要 3KB Flash、1.2KB RAM 内存资源的 NANO 内核版本;而相对资源丰富的物联网设备,可使用RT-Thread完整版,通过在线的软件包管理工具,配合系统配置工具实现直观快速的模块化裁剪,并且可以无缝地导入丰富的软件功能包,实现更加复杂的功能。
5. Linux
人们通常所说的Linux大多数时候是指Linux内核,但只有内核并不是一个完整的操作系统。实际上,Linux是一套开放源代码、可以自由传播的类Unix操作系统。它是一个基于POSIX的多用户、多任务并且支持多线程和多CPU核心的操作系统。人们常说的Linux系统包含Linux内核、GNU项目组件和应用程序(数据库、网络、图形界面、音频等)等。
Linux内核最初是由Linus Torvalds在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版UNIX操作系统Minix太难用了,于是决定自己开发一个操作系统。自从Linus Torvalds于1991年底发布了Linux内核的0.02版本之后,全世界的开源爱好者们共同推进着Linux系统的发展。
Linux的标志和吉祥物为一只名叫Tux的企鹅-Torvalds' Unix。
常见的Linux的系统结构如下图所示。
Linux从诞生到现在经过30多年的发展,在服务器、桌面操作系统、嵌入式、云计算和大数据等领域占据了广阔的市场。据统计,在全球服务器市场,Linux已经占有超过75%的市场份额。在桌面操作系统领域,基于Linux的比较有代表性的是Ubuntu操作系统,虽然其普及程度还远落后于Windows,但满足日常办公及娱乐需求是没有问题的。Android系统(Google推出的移动端操作性系统)底层也是基于Linux修改而来。
除了在服务器、大数据、人工智能等领域的广泛应用,在国内物联网操作系统被广泛应用之前,Linux是物联网应用中使用最广泛的操作系统。Linux系统一般都比较大,为了适应物联网领域的应用场景,很多开源组织和商业公司对Linux进行了很多的裁剪,RT Linux和uClinux是两个比较有代表性的基于Linux的物联网操作系统:
- RT Linux(Real Time Linux)
它最初是由新墨西哥矿业及科技学院的V. Yodaiken开发,现在已被WindRiver公司收购。RT Linux是将Linux的内核代码做了一些修改,将Linux本身的任务以及Linux内核作为优先级很低的任务,而将负责物联网应用的实时任务作为优先级最高的任务来执行。这样就可以既享受到Linux丰富的软硬件生态的便利性,也能满足业务层对实时性的需求。
- uClinux(Micro Control Linux)
uClinux是Lineo公司的主打产品,同时也是开放源码的嵌入式Linux的典范之作。它是从Linux 2.0/2.4内核派生而来,沿袭了Linux的绝大部分特性。它是专门针对没有MMU(内存管理单元)的CPU,并且为嵌入式系统做了许多小型化的工作。它通常用于具有很少内存或Flash的嵌入式操作系统。在GNU通用许可证的保证下,运行uClinux操作系统的用户可以使用几乎所有的Linux API函数。由于经过了裁剪和优化,它形成了一个高度优化,代码紧凑的嵌入式Linux。它具有体积小、稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持以及丰富的API函数等优点。
6. AliOS Things
AliOS Things 是阿里巴巴公司2017年推出的面向物联网领域的轻量级操作系统,致力于搭建云端一体化IoT基础设施,具备极致性能、极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云物联网平台。目前在智能家居、智慧城市、智能制造、新出行等领域大量使用。从诞生之初到现在为止,其主要经历了如下图所示的几个阶段。
- 2017年AliOS Things V1.1版本正式发布,除了rhino内核外,还集成了常用的MQTT/CoAP等非常适合物联网行业的协议和TEE安全组件,所以AliOS Things天生就是为物联网行业而生的。
- 2019年2月份,AliOS Things开始支持RISC-V体系结构的芯片,并且增加了电源管理功能,为低功耗应用场景打下了基础;针对物联网系统升级慢的问题设计了OTA差分升级的方案大大提高了系统升级的效率。
- 2020年4月份,V3.1版本正式发布,在这版本上设计了应用程序的开发框架,并且引入了组件式开发模型,组件中比较值得提到的是用于实时传输的RTP协议及可以防止HTTP网络劫持的HTTPDNS协议,为物联网的安全性提升了一个等级。
- 2021年5月份,AliOS Things正式发布V3.3版本,在这个版本中真正做到了基于弹性内核的积木式开发方案,并且支持Python和JavaScript的轻应用开发新模式。
- AliOS Things采用分层体系结构和组件式结构,如下图所示。
AliOS Things轻应用的开发模式自推出以来就受到开发者的极大支持,目前在智慧家庭、智能工业、智慧农业等行业有了广泛的应用,真正做到了“JS/Python也能轻松开发智能硬件”。