物联网操作系统只是单纯两者的碰撞吗?它的发展历程又是怎样的?
扫描二维码
随时随地手机看文章
早在1982年,一群卡内基梅隆大学的学生开发出网络可乐机,它可以告知冰箱里的存货以及新放入的饮料是不是已经变冰,这台机器被称为第一个网络家电。这群大学生没想到自己的一番操作,成了物联网的先驱。目前来看,“物联网+”概念产生了很多新生代词汇,比如智慧医疗、智慧城市、智慧工厂等。但是,不知道你有没有听说过“物联网+操作系统”这种组合?
物联网操作系统(简称物联网OS)的诞生就是单纯两者的碰撞?显然没这么简单,这件事得从科技发展角度来讲。
中国软件行业协会嵌入式系统分会副理事长何小庆的《嵌入式操作系统风云录:历史演进与物联网未来》一书中提到了物联网OS的产生背景:首先互联网为物联网系统搭建了无处不在的互联管道,云计算和大数据的发展为物联网数据处理和分析提供了技术支撑。在嵌入式设备端,32位MCU技术已经成熟,价格趋于与8位/16位MCU接近,其不仅在网关设备上使用,也在传感和执行单元上普遍使用。在MCU市场里,ARM Cortex M系列的MCU占有最主要的份额。ARM完善的生态环境大大帮助了物联网OS在内的嵌入式软件的发展。
中国软件行业协会嵌入式系统分会副理事长 何小庆
可以想象,设备端的小型化、低功耗、安全性的趋势,通信协议之间的灵活转换,应用层对云计算能力的要求,更加复杂的设备软件,这些都成了物联网操作系统被孕育出来的必要条件。
翻阅历史,起初是美国加州大学伯克利分校的TInyOS和瑞士计算机科学学院网络系统小组开发的ConTIki,这两款传感器OS都是最早具备物联网OS特征的存在。随后的2010年,欧洲诞生了RIOT(实时多任务操作系统),不仅可以运行在小型MCU上,也支持MPU。
直到2014年2月,德国纽伦堡的嵌入式世界大会上,风河公司发布了其基于VxWorks 7的物联网OS,随后也在官网上给出了产品介绍和白皮书。微软和风河这两家操作系统系统大公司加入,使得物联网OS呼之欲出。
技术角度来讲,物联网操作系统的内核技术与现在的嵌入式操作系统很接近,Arm、华为采用实时多任务操作系统,谷歌Android Thing的内核则从安卓系统中进行裁剪。何小庆老师在接受与非网记者采访时表示:“物联网操作系统并没有做一个特别的内核,而是沿用了嵌入式操作系统中的技术, 目前可以将该技术分为两种,一种是实时的,一种是通用型的。”
“物联网”三个字勾起了资本的欲望,挑起了从芯片到终端厂商的战争,也点燃了物联网操作系统战场的战火。国内外巨头企业、本土的“小而美”企业纷纷拉到了一个舞台上开始角逐。
战火前的黎明
“现在物联网操作系统的产品和应用都处于初期的探索和打磨阶段,估计到2020年,有几家公司产品的技术形态和商业模式已经受到产业界的认可。”这句话是何小庆老师对当下物联网操作系统所处时代的一个判定。
那处于探索期的物联网操作系统,各家都有怎样的产品呢?
ARM mbedOS
2016年,Arm公司320亿全资被软银收购,其物联网操作系统Arm Mbed经过几年的发展具有强大的生态系统支持,又因为Arm Cortex-M内核使用的巨大影响力,Arm Mbed操作系统的应用很容易在具体芯片上开发。
就在上个月,ARM收购了Stream Technologies,这是一家专注于帮助企业优化其物联网设备通信方式的软件提供商。ARM物联网云服务部门负责人Hima Mukkamala在博客文章中详细介绍了ARM对该工具套件的一些愿景设想。他写道,收购Stream旨在创建一个“端到端的物联网平台,用于管理、连接、配置和更新设备”。这个一站式商店的价值定位,很大程度上是源于Stream软件几乎可以兼容所有类型的物联网系统,以及很多不同类型的网络。
在安全性方面,Arm也颇为重视。推出了PSA安全构架其基于现有的安全技术,如芯片、软件做系统化整理,会形成不同的安全级别;整理出有效的安全实践,加入PSA指导意见中,形成IO级安全指导。
说到不足,何老师用“使用复杂”几个简言概括。其实Arm Mbed的发展并不是特别顺利,初期到现在经历了一些变化,比如开始内核并不提供实时性。但目前也有一些平台在用,比如研华。
Huawei LiteOS
在Huawei LiteOS官方首页“招聘”两个字显得格外引人注目,官网资料也给出了LiteOS的发展历程(如下图)。 2015年5月20日,在2015华为网络大会上,华为发布了敏捷网络3.0,主要包括最轻量级的物联网操作系统LiteOS、敏捷物联网关、敏捷控制器三部分。华为战略MarkeTIng总裁徐文伟介绍:“LiteOS体积只有10KB级,而且实行开源,使智能硬件开发变得更加简单。”
官方资料显示,Huawei LiteOS自开源社区发布以来,围绕NB-IoT物联网市场从技术、生态、解决方案、商用支持等多维度使能合作伙伴,构建开源的物联网生态,目前已经聚合了30+ MCU和解决方案合作伙伴,共同推出一批开源开发套件和行业解决方案,帮助众多行业客户快速的推出物联网终端和服务,客户涵盖抄表、停车、路灯、环保、共享单车、物流等众多行业,加速物联网产业发展和行业数字化转型。
NB-IoT技术是华为最早推进的联网技术,华为围绕该技术打造生态似乎如鱼得水。据今年1月份一篇来源《通信世界》的文章显示,Huawei LiteOS已支持华为内部产品累计出货量超过5000万台。2016年第四季度以来,使用Huawei LiteOS的智能猫眼、智能门铃、安防摄像头等智能家居产品出货量已经超过10万台。
AliOS
阿里云IoT事业部物联网操作系统首席架构师谢琳峰在接受与非网记者采访的时候,介绍了其产品:“不同于市面上众多从传统RTOS衍生却打上‘物联网操作系统’标签的产品或开源项目,AliOS Things是一款为现代物联网应用量身打造的操作系统。除了提供高度可伸缩,实时,安全的内核,AliOS Things还原生提供了包括云端一体设备和应用管理,安全系统和应用升级,高精度定位,传感器数据上云和本地分析,动态安全漏洞诊断等众多物联网时代所亟需的高阶能力,以及包括云化部署的一站式应用开发环境等强大丰富的开发工具。针对典型的物联网场景,AliOS Things进行了端对端的优化,使得对于同样的功能集合,基于AliOS Things打造的应用解决方案可以实现最好的性能和最低的资源消耗。”
关于发展历程,官网上只有三行简单的话:
2017年9月28日,阿里巴巴宣布升级操作系统战略,发布全新的AliOS品牌及口号:驱动万物智能 。
2017年10月13日,AliOS携手斑马网络与神龙汽车就未来汽车智能化达成战略合作,即将陆续推出搭载AliOS的智联网汽车,首款车型将落地东风雪铁龙。
2017年10月20日,AliOS家族旗下面向IoT领域的轻量级物联网嵌入式操作系统AliOS Things正式开源。
说到优势,就是其云计算在企业级应用上的优势,这个是先天的。吐槽点也是挺多的,有开发者在论坛上写道:“阿里的RTOS好几处参考了uCOS的实现,这将是AliOS最大的槽点。作为物联网系统最重要的网络协议栈,他们没有做到原创,使用的是大家熟知的LwIP,而文件系统也是用的开源FatFS。如果是这样的话,怎么能自信的与ARM推出的mbed os进行PK,这差距稍大了些。”虽说阿里也在与ST合作,积极布局自己的生态,但打造一个让开发者能够迅速适应的环境,自己不断的保持内核的升级和问题的维护也是阿里的挑战。
FreeRTOS
作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。
FreeRTOS有许多应用,采用Linux开源方式,生态环境好,受众群体非常广泛。在EETIme杂志每次的嵌入式操作系统市场研究报告中,FreeRTOS都名列前茅。
去年年底有个大新闻就是,FreeRTOS作者加入亚马逊AWS任首席工程师,正式推出Amazon FreeRTOS。由于Amazon FreeRTOS基于FreeRTOS内核,嵌入式开发者理解起来就非常容易,开发环境本身没有什么变化。NXP、ST这几家物联网芯片公司的开发板都有移植好的端到端的介入,所以接受度比较高。
RT-Thread
RT-Thread诞生于2006年,由国人自主开发,是一个集RTOS内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,它已成为国内最成熟稳定和装机量最大的开源嵌入式操作系统。RT-Thread也是一个组件完整丰富、简易开发、高可扩展性和高安全性的IoT OS。上海睿赛德是RT-Thread背后的服务公司,负责RT-Thread的维护、运营和核心组件开发等
睿赛德科技COO邹诚在接受与非网记者采访时,提到了RT-Thread的特点:“占用资源极小,最小资源占用:1.2KB RAM和2.5KB flash;实时性性能极好,中断响应时间在1us以内;支持芯片众多,超过30款主流芯片;已经建立起初步良好的软件生态,目前软件包当中的软件数量超过50个。”
左一:吴洋勇,左二:邱祎,中间:熊谱翔,右二:邹诚,右一:朱天龙
同时邹诚还表示:“作为一个OS平台,生态建设是一项非常耗时的工作,时间的紧迫性是我们遇到的最大瓶颈。当然,文档和书籍的相对欠缺、相对FreeeRTOS的装机量还比较小等都是我们不得不面对的挑战。”
未来
去年何老师在接受媒体的采访时表示:“最后能剩下的操作系统也就只有少数的几个。”在众多产品拼杀的时候,哪些特质才是物联网操作系统的关键所在呢?何老师总结出了六点特征。
管理物的能力:从嵌入式系统视角看,“物”是网络上发送和接受信息的一个个嵌入式计算小设备(或称为深嵌入式系统),比如家庭或者工业现场的智能传感器。现在嵌入式系统设计的一个共识就是降低功耗,常见的方法是系统尽可能快地执行,然后立即进入睡眠模式。现在的处理器核心架构,在低性能状态下,可以做到基本上不消耗任何电力。
可伸缩和扩展性的架构:随着 32 位 MCU 的价格下降,Linux 又无法支持没有 MMU 的 MCU,RTOS 理所当然地成为运行在 MCU 的物联网 OS 的首选,原因是基于 RTOS 的设计运行更灵活和可扩展的软件运行在这些系统中。
泛在互联网功能:支持物联网常用的无线和有线通信功能,比如支持GPRS/3G/HSPA/4G 等公共网络的无线通信功能,同时要支持 ZigBee/NFC/RFID/WiFi/Bluetooth 等近场通信功能,还要支持 Ethernet/CAN/USB 有线网络功能,以及广受关注的窄带通信技术NB-IoT 和LoRa。在这些不同的物理和链路层接口之上的协议之间要能够相互转换,能够把从一种协议获取到的数据报文,转换成为另外一种协议的报文发送出去,最后要能够迁移到互联网协议。
系统的安全性:物联网设备中很大一部分是使用 MCU 和资源有限的微处理器,与大型设备相比,这些小型设备更容易保护,不易受同类型威胁的攻击,更安全。
云计算后台:物联网设备区别于传统的设备的标志就是这些设备将产生海量的数据,如何管理和处理这些数据是摆在物联网企业面前的一个难题,云计算无疑是解决这个难题的最有效的技术手段。选择支持物联网系统的云计算平台需要考虑一下的技术因素:
1)支持云计算和物联网协议(Websocket、RESTful、MQTT和CoAP等)。
2)灵活的标准和设备管理方式。
3)支持安全的远程固件升级。
4)Web/移动应用开发的能力。
5)高效和可靠数据存储能力。
先进的编程语言:用于传统的嵌入式系统的编程语言多数是C和C++。因为物联网设备的特点,互联网编程技术将进入物联网设备,优化后的互联网编程语言可以低功耗的MCU上运行,比如Java、Java和Python。需要注意的是,Java总是运行在操作系统之上,所以你的选择不是C/C++或Java两者之一,而是C/C++和Java都会使用。
其实物联网操作系统要有长足的发展,与学术界、高校的合作也必不可少。毕竟高校对待技术的视角与商业界是完全不一样的,商业公司更倾向于立竿见影的产生效益,而高校则追求把技术系统的肢解,更加利于学生学习。这点来说,高校的参与会给物联网操作系统的发展带来很大的好处。