新闻中心

EEPW首页 > 专题 > 物联网操作系统研究与思考

物联网操作系统研究与思考

作者:何小庆时间:2017-12-26来源:电子产品世界收藏
编者按:探讨了为什么需要物联网操作系统,物联网操作系统的内涵与外延,物联网操作系统的现状,及发展建议。

作者 / 何小庆 嵌入式系统联谊会秘书长(北京 100191)

本文引用地址:http://www.eepw.com.cn/article/201712/373589.htm

何小庆,著名的嵌入式系统专家,麦克泰软件公司创始人,《单片机与嵌入式系统应用》编委会副主任。*本文来源于“嵌入式系统联谊会主题讨论会(总第22次)——现状与发展前景研讨会”上何小庆老师的报告,已经过作者确认。该会议主办方:嵌入式系统联谊会,时间:2017年11月12日,地点:北京航空航天大学。

摘要:探讨了为什么需要的内涵与外延,物联网操作系统的现状,及发展建议。

1 物联网操作系统的产生

1.1 的发展历史

  提到物联网操作系统(物联网OS),肯定离不开嵌入式操作系统,更离不开(实时多任务操作系统)。因为嵌入式操作系统的内核大都使用来实现,当然也有不用RTOS来实现的物联网OS,例如谷歌 Things、微软Windows 10 IoT Core等。

  RTOS始于上世纪七十年代,最早始于北美,截至2017年约有30年的发展历史。兴盛时有几百家,即使在今天在全世界范围当中也有几十家RTOS公司,中国也有几家RTOS公司。

  表1列举了一些依然活跃的公司(注:指有商业公司对RTOS进行商业运作,以提供产品或服务的公司),并以时间排序,也标注了近况,例如有些已经被收购了,诸如风河(Wind River)在2009年被英特尔(Intel)收购,但其产品依然还在;还有些产品被收购了,但产品基本上不存在了,诸如VRTX已经不在了,pSoS被Wind River收购后也不在了。表1下面几列是几家较新的企业,例如Zephyr、Nuttx等是新一代的开源嵌入式操作系统,也基本属于RTOS操作系统。

  值得说明的是,中国也有几家不错的RTOS,除了熊谱翔先生创立的RT-Thread之外,中国最近有一家叫Sylix的RTOS公司,在一些军工的项目非常活跃[1]

1.2 嵌入式操作系统的演进之路

  在我的《嵌入式操作系统风云录》书[1]中,有1/3的章节详解了RTOS 的历史,其结论是:嵌入式操作系统(也有称为设备操作系统,device OS)(注:含手机)从1980年开始计算,每隔十年大概会有一次革命,会产生一代具有标志性的嵌入式操作系统(如图1)。其中,上世纪80年代是RTOS kernel(内核),代表产品有uC/OS和FreeRTOS。上世纪90年代有RTOS,代表产品有Vxwork,因为Vxwork出来时没有把kernel单独拿出来,它把文件系统、网络、shelll、甚至工具IDE(集成开发环境)都配置好了,打包给用户,让用户使用起来非常方便。


  但进入2000年之后,以为代表,通用OS(GOS)进入嵌入式领域,是通用型的甚至开源的。当然微软嵌入式Windows(注:指Windows 10 IoT Core)也是GOS。 2010年之后是以(安卓)为代表。是面向移动应用的操作系统,因为Android最早的设计来自Andy Rubin,就是定位于使用操作系统做手机,而在之前也有许多人为手机做过操作系统,例如Montavista,但是做得不是很好,甚至做起来非常困难。Android出来之后,其实也不是很容易,但到现在基本占了手机操作系统的八成的市场份额[2]

  最新的是物联网操作系统。如果按十年为一个周期,2020年或许会有几家知名或者流行的面向物联网的操作系统出现。

1.3 为什么需要物联网操作系统?

  无论是传统嵌入式的还是通用的OS,都无法满足物联网的需求,因为物联网太复杂了,需要一个从端到云的整套解决方案。

  2016年在德国纽伦堡举办的“嵌入式世界”大会上,风河公司在会议发言中列出了物联网设备有8大需求:模块可升级的架构,不同级别的设备软件可伸缩,物联网设备安全,虚拟化,性能和可靠性,连接性,丰富的UI,认证。这说明需要一种新型操作系统,或者需要在现有的嵌入式操作系统上进行改造,来满足物联网操作系统的需求。  目前市面上多数产品能够部分满足这8大需求,例如“模块可升级架构”,传统嵌入式OS是不能满足的;“UI”方面,RT-Thread的UI非常好;再有“认证”,目前很多国内OS产品还没有通过认证,因此如果用在工业领域里,这些产品可能还有距离。

  物联网操作系统的概念始于2014年,但是直到2016-2017年才得到广泛的关注,根据Gartner预测的2017-2018年10大IoT技术,物联网操作系统(IoT Operating System)也位列其中(如图2),这说明至少从产业界对此有一个共识:物联网操作系统需要有人去做。

1.4 物联网OS的起源和发展过程

  物联网操作系统起源于传感网的两个开源OS——TinyOS和Contiki。今天的IoT对二者有相当的继承性。至今还有个别的学校物联网专业仍在讲传感网的OS。Contiki项目目前依然还很活跃,因为其作者是Adam Dunkels,是为名人,他原来是瑞典工学院计算机研究所的博士,后来创立了Thingsqure公司,是LWIP/uIP项目的作者,这个项目现在一直是他在维护。欧洲一些高校关于传感网的课程还是基于该系统在讲。TinyOS是美国加州大学伯克利分校的开源项目,至今已经停止维护了。

  2010年欧洲有了面向物联网的OS——RIOT,但影响力很小。

  2014年物联网OS开始热闹起来。《连线杂志》(Wired)和IEEE的《频谱》杂志2014年对物联网操作系统都有报道。为什么是在此时?因为两家有影响力的公司推出了产品,它们是:Arm的Mbed OS,微软的Windows 10 IoT Core。2014年10月陆续有一些小公司推出产品,包括Micrium公司的物联网方案Spectrum(基于uC/OS)、庆科发布MiCO OS。但有些产品还是换汤不换药,即把自己原有的RTOS增加一些功能组件,然后再对接一下亚马逊云或微软云等,就成为一套物联网的软件解决方案。  2015年华为发表了LiteOS,不过影响力有限。影响力最大的是2015年初谷歌在其“I/O 开发者大会”上宣布的Brilo OS。其诞生的背景是之前刚把智能家居设备公司Nest收购,因此很快能推出Brillo OS。现在谷歌要把Brilo OS改名为Android Things。这时业界热闹起来,大家都觉得物联网OS一定是下一个风口,一定要跟风冲。所以在此之后,阿里也有YunOS(注:不主要针对物联网市场,开始是手机,后来手机不成,就转做汽车)。2016年基金会推出Zephry。我国的海尔在2017年1月CES(美国消费电子展)上展出了基于UIhome OS的大冰箱,冰箱上镶了一个大平板(人机界面),海尔在冰箱旁边有了一个很大的宣传牌:Your Home OS。2017年10月,阿里在云栖大会上宣布支持IoT的AliOS。

1.5 物联网OS的分类  物联网OS涵盖从设备到网关、再到服务器、最后再到终端,只要有服务器/云和终端的地方都可以使用。由图3可见,一大类是嵌入式操作系统,另一类是Linux开源去做,还有一些是Android和苹果iOS(注:在此包含了手机)。

  但是很有意思的是,据2016年IoT Developers Survey报告,Linux占70%以上的份额,其他小OS也不少,没有用操作系统的也很多。可见Linux和Android的占有率是很高的。另外如果去看RTOS的机会,未来应该是通用OS的3倍,因为多数物联网设备将使用MCU 作为主控单元,MCU 无法运行Linux OS。

  以上可见,目前物联网世界中是多种OS并存的。

2 什么是一个物联网操作系统?

  目前在学术界很难找到物联网操作系统的定义。ELSEVIER出版社的杂志《Next Generation Computing System》计划出版IoT专辑——Special Issue on Internet of Things,该专辑的征稿说明中定义了物联网OS (IoT OS)的一些关键特性,诸如协议设计和验证技术,还有模块、能耗、调度(基于能耗的调度)、硬件支持、架构、网络、协议栈、可靠性(即互通性)、通用API、实时性的能力等。

  在产业界,微软网站称之为:The operating system built for Internet of Things(为物联网打造的操作系统),谷歌网站的Android Things谈的不是OS,而是“Build connected devices for a wide variety of consumer,retail,and industrial applications,”大意是针对所面向的应用。Arm认为是开源的嵌入式的操作系统,是针对Thing(物)的设计,当然一定是包含Arm Cortex-M的物。

  《嵌入式操作系统风云录》一书[1]对物联网操作系统做出了一个基本定义,就是具备低功耗、实时性和安全的传感、连接、云端管理服务软件平台。前三个(低功耗、实时性和安全性)是技术,后三个(传感、连接和云端管理)是指从端到云的一套方案。

3 物联网OS的现状

  物联网OS目前的情况还是大公司在布局,小公司在投石问路[3-5]。这是因为技术和产品好做,商业模式还需要很多摸索。

  物联网OS可以分成两类:一类是为物联网而生的OS,即针对物联网去做的OS,之前并没有,代表产品是Mbed OS、MiCO OS、Android Things等,它们还可以再分成支持MCU和支持MPU(嵌入式处理器)的两种,如图4。  第二类是以嵌入式OS为基础,把它扩展成支持物联网应用的,这一类的最大市场份额是Linux和Android。除此之外,FreeRTOS经过加固、改造也能用于物联网应用[6],最近亚马逊推出Amazon FreeRTOS,uC/OS-III、ThreadX也可以用,例如瑞萨的Arm MCU平台——Synergy就是基于ThreadX。Vxwork称也有自己的嵌入式OS。Nucleus和RT-Thread 3.0等也都是适合物联网的OS。

  但是目前市场上十余种物联网OS都处于发展初期。例如Arm Mbed OS已出了三个版本——1.0/2.0、3.0和5.0(最新是5.6.3)版本,但如果浏览Arm Mbed的官方网站,其中会有一句中文提示:Mbed操作系统仍处于开发阶段。说明Arm还是在摸索和发展中。

  庆科MiCO OS的市场定位还处于调整期。MiCO OS商标没有了,之后庆科的MiCO SDK(软件开发包)是以什么样的市场品牌出来?大家正在观望。因为如果只为自己的智能硬件模块提供SDK,不能称作物联网OS。一个操作系统要求能够支持不同的硬件平台,这是操作系统的最基本条件。

  Windows 10 IoT Core在向云端发展。我参加过多次微软研讨会,认为微软更强调“云管端”的云,即上面的云怎么对IoT设备进行控制,而淡化操作系统在设备端的作用。

  AliOS正在进入IoT市场。AliOS开始和恩智浦(NXP)和ST等公司合作。

  MCU厂商在2015年之后与物联网OS的互动较少,例如ST没怎么宣传要支持Mbed,但是最近比较积极地表示要支持AliOS。

  只有市场互动起来,才可能带动更多的用户来用。华为LiteOS也做了黑客松大赛,但目前用户和合作伙伴规模相对较小,依靠NB-IoT 发展的策略偏于单调。

  本节的结论是:很少看到和听到国内和国外企业宣传在使用某种物联网OS(注:这里指原生态的,诸如 Arm Mbed,而不是指本节开始所提到的第二类,诸如RT-Thread。因为第二类在物联网出现之前已经有了,因此已积累了很多应用和用户),传统的RTOS和Linux还是主流。当然,被用户接纳是一个漫长的过程,但如果这个过程有了,那么后期客户会愿意主动地用它,这种前仆后继的浪潮就会产生,像海浪似的一浪推着一浪。

4 思考与建议

  第一,无论是物联网操作系统还是其他操作系统,一个操作系统的普及,需要很长时间的市场引导,用户不太会在短时间决定选用哪一种,也不会轻易更换。即客户换多家公司的芯片可能也比换一个操作系统容易,所以一旦用起来,操作系统的黏性/忠诚度是很高的。

  第二,目前物联网OS的内涵和外延还不是很清晰。有一种趋势是厂商都想做大,那么对于规模相对较小的团队,就要由小到大、由简到繁地展开,而不要什么都做、一步到位。例如RT-Thread的创始人熊谱翔先生称并没有做安全,这是一个很好的选择,因为安全又是另外一类技术,没有相当的技术储备和积累不一定能做,或许你可以从外部引入一些安全技术。  第三,重视物联网OS的安全研究。因为安全是物联网中必备的功能,所以如果有一套安全方案,还是会很吸引用户的。例如FreeRTOS也没有现成的安全方案,如果增加了安全功能,会更易吸引人们去使用这套物联网操作系统。

  第四,高校对物联网操作系统的研究和关注还要加强。2017年我曾在几次物联网教育会议上介绍过物联网操作系统,认为反响不太大。传统的嵌入式操作系统的课程改进目前处于窗口期了,未来可能升级,现在有些学校也开始考虑开设基于RTOS的嵌入式课程。实际上物联网OS是有机会进入到高校的,因为进到高校之后才可能影响产业界,高校计划企业要积极主动。

  最后,企业要想将物联网操作系统普及开来,需要注意以下两点。首先确定好物联网OS的边界,不要什么都做。其次还要坚持,例如有些企业做着做着就不开源了;有些企业刚开始时热热闹闹地做生态,之后不做了,因为做生态投资投入很大,很难短时间见到产出,因此一些企业做几次开发者大会后就停下了,回头还是去做大客户。

5 结论

  随着物联网应用落地和逐渐成熟,物联网OS正在兴起,目前处于百花齐放的繁荣期,产业届需要耐心培育。

  参考文献:

  [1]何小庆.嵌入式操作系统风云录[M].北京:机械工业出版社,2016

  [2]Kantar:2017年中国智能手机市场Android份额高达87%[R/OL].(2017-5-12).http://tech.sina.com.cn/roll/2017-05-13/doc-ifyfecvz1148686.shtml

  [3]江文瑞,何小庆.嵌入式计算设备[J].单片机与嵌入式系统应用,2014(9)

  [4]何小庆.物联网操作系统浅析[J].单片机与嵌入式系统应用,2015(1)

  [5]江文瑞,何小庆.物联网与实时操作系统[J].单片机与嵌入式系统应用,2014(12)

  [6]何小庆.谈谈FreeRTOS及其授权方式[J].单片机与嵌入式系统应用,2015(10)

  本文来源于《电子产品世界》2018年第1期第27页,欢迎您写论文时引用,并注明出处。



评论


相关推荐

技术专区

关闭