深入解析物联网操作系统(架构、功能与实例分析)
物联网(IoT)是目前最新最热的技术热点之一,也是这个信息化时代的重要发展节点。相对于互联网而言,物联网的本质在于“万物相连” 。物联网的核心和基础仍然是互联网,是在互联网基础上延伸和扩展的网络;其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,也就是物物相息。
物联网操作系统概述:
尽管物联网的发展形态受到普遍看好和关注,但是“连接、区别、识别、沟通、操作”这五大问题一直如影随形,可以说只有这些问题得到很好的解决和兼顾,才能继续应对安全性、易用性、低成本等问题。在互联网“人与人”之间的信息交换和共享基础上,进一步扩展实现“物与物”“人与物”之间的信息交换和共享。
在这样的大背景下,我们发现物联网操作系统与传统的个人计算机操作系统和智能手机类操作系统不同,它具备物联网应用领域内的以下特点:
1、内核尺寸伸缩性以及整体架构的可扩展性。
物联网的发展即将进入一个小的爆发期,所以面对一轮轮的技术革新甚至换代时,整体架构的灵活性和可扩展性可以说决定了一个企业的商业命脉。同时,为了适应不同的应用场景下的技术要求,内核尺寸的伸缩性也是需要面对的问题。
2、内核的实时性。
对于非抢占式调度方式的内核很难满足关键性动作的实时性要求,比如常见的中断响应和多任务调度等情况下,操作系统的实时性便有了更高的要求,特别是对于大多数的物联网应用而言,有意义的响应时间决定了市场的接受度。
3、高可靠性 。
在物联网的应用环境下,面对海量节点可以说设备一经投入使用,就很难再去维护。所以平均无故障运行时间和在一些严苛环境下的性能表现就显得尤为重要。而在一向很注重信息安全的机密机构的数据安全性,引发了业内关于开源机制、VMM机制等的广泛讨论。
4、低功耗。
由于物联网的应用场景和网络节点的数量增多,低功耗是一个非常关键的指标。所以在整体架构设计的时候,就需要加入一些休眠模式、节能模式、降频模式等逻辑判断,以延长续航能力。
物联网操作系统整体架构和功能:
在最低层的硬件平台之上,有物联网操作系统内核和外围功能模块,加上集成开发环境,这些子系统之间相互配合,共同组成一个完整的面向各种各样物联网应用场景的软件基础平台,一起支撑了物联网的具体应用。
图2是最抽象的一个物联网操作系统描述。
具体地说,物联网操作系统除具备传统操作系统的设备资源管理功能外,还具备下列功能:
1、屏蔽物联网碎片化的特征,提供统一的编程接口;
2、物联网生态环境培育;
3、降低物联网应用开发的成本和时间;
4、为物联网统一管理奠定基础。
针对物联网操作系统的外围功能模块,也有一些特殊的要求:
1、支持应用程序的远程升级。
上文说到,因为物联网的种种应用环境和条件限制,远程升级是物联网操作系统在升级方式上的唯一选择,当然同时也是最为低成本的选择。
2、外部存储。
支持硬盘、USB stick、Flash、ROM等常用存储设备,以便在网络连接中断的情况下,起到临时存储数据的作用。
3、对物联网常用的无线通信功能要内置支持。
在公共网络、近场通信、桌面网络接口之间,要能够相互转换,能够把从一种协议获取到的数据报文,转换成为另外一种协议的报文发送出去。除此之外,还应支持短信息的接收和发送、语音通信、视频通信等功能;
4、 网络功能。
物联网操作系统必须支持完善的TCP/IP协议栈,包括对IPv4和IPv6的同时支持。但TCP/IP协议栈是面向互联网设计的通信协议栈,由于物联网本身特征与互联网有很大差异,TCP/IP协议栈在应用到物联网的时候,面临许多问题和挑战,需要对TCP/IP协议栈做一番优化改造。
5、支持完善的GUI功能。
图形用户界面一般应用于物联网的智能终端中,完成用户和设备的交互。GUI应该定义一个完整的框架,以方便图形功能的扩展。同时应该实现常用的用户界面元素,比如文本框、按钮、列表等。
物联网操作系统实例分析
RT-Thread
由中国开源社区主导开发的开源嵌入式实时操作系统,它包含实时嵌入式系统相关的各个组件:实时操作系统内核,TCP/IP协议栈、文件系统、libc接口、图形引擎等。
从图中对比上文提到的物联网操作系统抽象架构,可以发现RT-Thread包括了:
1、底层移植、驱动层,这层与硬件密切相关,由Drivers和CPU移植相构成。
2、硬实时内核,这层是RT-Thread的核心,包括了内核系统中对象的实现,例如多线程及其调度,信号量,邮箱,消息队列,内存管理,定时器等实现。
3、组件层,这些是基于RT-Thread核心基础上的外围组件,例如文件系统,命令行shell接口,lwIP轻型TCP/IP协议栈,GUI图形引擎等。
Ostro Linux
英特尔这款基于Yocto Project的操作系统Ostro Linux符合IoTivity,支持众多的无线技术,还提供一种传感器框架。它非常注重物联网安全,提供操作系统、设备、应用程序和数据等层面的保护,包括加密和MAC。
在上图的整体架构中,值得一提的是:
1、编程接口: 编程接口是Ostro提供给应用程序开发者使用的,用于开发各种各样的物联网应用程序。当前来说,Ostro提供了多种多样的编程接口供程序员根据自己的喜好和特定应用场景调用。
2、物联网协同框架: Ostro内置了对IoTivity的支持。IoTivity 是一个开源的软件框架,用于无缝的支持设备到设备的互联,以及人与设备的简便互联。其主要是为了满足物联网开发的需要,构建物联网的生态系统,使得设备和设备之间可以安全可靠的连接。而IoTivity 通过提供一系列框架和服务来加速设备的互联应用开发。该项目由 Open Interconnect Consortium (OIC) 组织赞助,相当于是 OIC 标准的一个参考实现。
3、Ostro服务: Ostro服务主要是指系统级的一些进程或线程,这些进程或线程负责管理网络连接,加载必要的支撑服务,以及提供进程间通信(IPC)支持等。在Ostro操作系统中,保留了大部分Linux操作系统所支持的systemd,D-Bus等。
华为LiteOS
身为中国物联网技术尤其是NB-IoT的先驱,华为在物联网操作系统上也大有作为。其发布的基于Linux的LiteOS甚至是目前世界上最轻量级的物联网操作系统,其系统体积轻巧到 10KB 级,具备零配置、自组网、跨平台的能力,可广泛应用于智能家居、穿戴式、车联网、工业等领域。
LiteOS应用广泛,从基于MCU的设备,到与安卓兼容的应用程序处理系统,不一而足。这款可定制的操作系统拥有诸多功能,比如零配置、自动发现、自动联网、快速启动和实时操作,它提供广泛的无线支持,包括LTE和网状网络。LiteOS随华为的敏捷物联网解决方案交付,它驱动窄带物联网(NB-IoT)解决方案。
中兴物联网操作系统
既然提到了华为,那么顺便说一下在2016年中兴提出的物联网操作系统方案。
当时宣称的亮点包括:
1、连接 ——操作系统集成常见的网络协议栈(TCP/IP、ZigBee、蓝牙、WiFi等);
2、远程管控和简易配置 ——操作系统集成设备管理协议(典型的是LWM2M),使得通过管理平台,可以对不同厂商的智能硬件设备进行统一的管理;
3、沟通和互操作 ——操作系统通过集成设备互联互通框架(典型的是AllJoyn精简核心库),能够在物和物之间进行沟通和互操作;云端的管理和操作使得物与物、物和人之间的互联互通不再是障碍;
4、在线开发调试 ——通过中兴CDSP云平台(Cloud Development & Support Platform),支持物联网OS软件的在线开发、编译和调试,还可以通过CDSP云平台对终端设备在线升级;实现多种厂商终端设备的支持。
结语
目前物联网操作系统的市场情况是:十几种物联网操作系统都处在发展初期,产业链生态环境对此并未做出积极反映,目前还很少看到和听到国内外企业在使用某种物联网操作系统的信息。同时,开源Linux和RT操作系统还是主流,活跃在物联网市场。
操作系统是物联网时代的战略制高点,今天PC和手机时代的操作系统霸主未必能在物联网时代延续霸业。操作系统产业的规律是:当垄断已经形成,后来者就很难颠覆,只有等待下一次产业浪潮。如今,一个全新的、充满想象空间的操作系统市场机会正在开启。