从RTOS 到 IoT OS

  作者:沈建华 时间:2018-02-27来源:电子产品世界

编者按:结合作者多年嵌入式系统和物联网应用开发与实践,探讨了物联网给嵌入式系统带来的影响,物联网操作系统的技术、产品化发展思路和建议,以及我国在物联网操作系统方面的机遇和挑战。

作者 / 沈建华 华东师范大学 计算机科学与软件工程学院(上海 200062)

  *本文源于“嵌入式系统联谊会主题讨论会(总第22次)——物联网操作系统现状与发展前景研讨会”上的报告。此会议主办方:嵌入式系统联谊会,时间:2017年11月12日,地点:北京航空航天大学。

  沈建华,副教授,网络研究所副所长,研究方向:物联网技术、嵌入式OS、嵌入式软件设计与优化、MCU/DSP应用系统等工作。

摘要:结合作者多年嵌入式系统和物联网应用开发与实践,探讨了物联网给嵌入式系统带来的影响,物联网操作系统的技术、产品化发展思路和建议,以及我国在物联网操作系统方面的机遇和挑战。

1 嵌入式系统与RTOS

  很多嵌入式应用都是基于微控制器(MCU/单片机)的小系统,其中大部分也不使用OS,稍微复杂一点的应用会考虑用一个RTOS,如μC/OS、MDK中的RTX、FreeRTOS等,它们基本上只是一个任务管理器,也是操作系统内核部分。因为早期的嵌入式系统,应用相对来说比较简单,主要是采集和控制,涉及到数据多一点、要和外部交互的,可能会用一个文件系统(如FAT文件系统)或GUI,涉及到网络应用就加个TCP/IP。很多RTOS是开源的,没有统一标准的API,应用程序要在不同的硬件和RTOS上移植是很困难的,一般都要从底层修改做到应用层。MCU有4位机、8位机、16位机、32位机,系统可为有RTOS或无RTOS,RTOS也非常多,开发也没有应用程序的基本框架,加上应用的多样性,传统嵌入式系统开发效率是非常低的。所以很多年前我曾说过:如果说Android开发是碎片化严重,那嵌入式开发就是粉末化的。这种情况对应到PC机或整个计算机发展史上去看的话,目前嵌入式系统的开发就像上世纪六、七十年代的计算机应用开发,每一个新硬件出来,硬件软件都是不通用、不兼容的,非常散乱。但后来PC和移动应用为什么发展这么快?就是标准化问题。物联网给嵌入式系统带来了巨大的机遇,但开发平台、开发工具的逐步标准化是必经之路。

2 物联网与IoT OS

  嵌入式系统开发的“散乱”问题,物联网有机会来改变。凡是和互联网相关的应用,发展速度都很快。从某种角度上说,物联网应用系统也可看作是嵌入式系统的网络应用,因为物联网系统中的“物”,基本上都是各种嵌入式设备。在20多年前有一句话,叫“计算机就是网络,网络就是计算机”,现在来看还是非常正确的。嵌入式系统放到物联网背景上来看也是类似的,也许再过个十年二十年,一个不联网的嵌入式设备也没什么用了。嵌入式小设备要联网,还要方便、快速地开发各种物联网应用,并考虑很多安全问题、系统效率问题,使用传统的RTOS加个网络协议栈是不够的。无论从哪个角度来看,使用一个合适的、相对标准化的物联网OS(IoT OS)是更好的选择。就像移动应用开发会选择Android系统,而不是Linux系统。

3 IoT OS技术

  大部分物联网设备的“物”,都是基于MCU的小设备。计算机技术发展到今天,针对MCU的RTOS的基本功能、技术都是成熟的。不同RTOS的内核和组件各自有一些小的特点,比如内核调度是用什么算法,任务堆栈怎么处理,任务之间的通信方式、支持的任务状态和任务数等,但是这些已经不重要,因为硬件性能提升很多,应用对这些特点基本无感知了。随着IoT应用系统的复杂化,应用更多关注的是“端到云”整个系统的快速实现和稳定,就像现在移动应用APP开发者并不会去关心Android里面的底层任务调度算法一样。IoT OS更多的要从整体系统架构上思考,而不是在某个技术细节上。有关OS内核与具体处理器的高效融合技术等,可以在处理器体系结构中去研究和实现,并可作为IoT OS中一个与处理器特征相关的组件。

  基于MCU的物联网应用需要一个操作系统(IoT OS),它是一个以传统操作系统(RTOS为主)为基础,针对物联网应用特征,扩充了必需的连接、安全、应用协议、应用框架等组件、软硬件协同的功耗管理等组件,同时应该支持多种主流的MCU和SoC芯片,以及国内外主流云平台接入协议的系统软件。

  IoT OS也一定是一个“端-云”一体化的OS。如果仅局限在“端”这个层面,那它一定不是一个完整的IoT OS。只有“端-云”深度结合,才能在整个系统层面做到高效、安全。

  与IoT OS相关的开发工具、编程语言,也会有变革。现在流行的开发环境,例如JS、Java,Python等,都是有时代特征和应用特点的,对IoT应用开发都不太合适。所以,整一个Java虚拟机放进MCU,想用Java来开发基于MCU的物联网应用或做个Demo验证,可能更多也是技术人员的想法,并不具有普遍实际意义。

  总之,作为一个IoT OS,技术重点不是OS内核,而是“端-云”一体化的系统架构。

4 IoT OS产品化

  技术是无边界的、是发散的,技术必需与应用需求(场景)结合,输出了产品,技术才发挥出价值。IoT OS的用户是开发者,要被广大开发者所采用IoT OS需要产品化。

  第一,要有产品思维,要站在用户、开发者的角度考虑问题,尽量保持OS接口的一致性,不断地完善、抽象、迭代。

  第二,对新功能、新技术要有一个系统性的规划,也就是产品定义。做好这个IoT OS的产品定义,需要对物联网应用开发方式、开发者需求、系统架构等很多方面有充分的理解,不仅要有丰富的经验,而且要有系统性和前瞻性。

  第三,OS产品是用出来的。不要为出一个OS而去开发一个OS, OS一定是为了适应不同时期的应用需求,从简单到复杂、从不稳定到稳定,是应用拉动技术、不断开发完善出来的。应用需求的激增,使大量开发者寻找易用的开发环境,这就是OS的迭代之路。

  另外,作为一个产品,外围的东西也很重要——工具、文档。这方面我们中国的公司以往受制于现实条件,做的都不好。但是作为一个产品,特别是要推向全球的产品,必须把这些配套外围做好。

5 IoT OS商业化

  很多OS是科研院所、技术人员个人所为,可以采用一些免授权协议,不太考虑商业问题。但作为一个企业,不谈商务是不行的。任何一个OS早期是没有商业模式的,嵌入式OS的公司也都是很小的公司,更不要说在中国这样不太认可软件价值的环境下。目前,巨头纷纷入场,IoT发展快、应用离散、产品上市时间要求很高,作为一个企业,首先要生存下去。没有商业模式、怎么活下去?所以作为企业,还得想其他的商业模式。

  IoT OS要迭代、收敛的话,也需要生态支持。需要芯片厂商、IDH、开发者共同建设,但是这个生态建设的过程是非常漫长的。这个过程谁能够耗得起?要兼顾到公司自己的生存发展和生态建设,这对小公司来说是一件非常难以平衡的事情,商业化的路就更长了。Android到现在可能有一些商业模式了,毕竟大家都离不开它了。OS商业化过程漫长、需要很大的投入,肯定不是短期的商业行为。那么在这个过程当中该怎么办?可能还得借助所谓的互联网思维,“羊毛出在猪身上”,在这个点上没有出口,但总要找到一个出口。

  未来的物联网系统可能就是:AI +软件+硬件。

  AI是能力,但对绝大部分物联网应用开发而言,用好AI就可以了,云平台公司、芯片公司会提供这种能力。硬件是载体,各种技术、算法做的再好,终究都离不开硬件。软件是“粘合剂”,把各种硬件、AI能力整合在一起,实现各种具体IoT应用。有一句话叫“软件定义世界”,软件是核心竞争力。有了AI、有了硬件,最终用户的应用、服务都得靠软件去实现。如何帮助客户快速开发IoT应用软件?IoT OS是一个较好的平台。不断从各种应用中做共性抽象、丰富OS的内涵,这才是IoT OS发展的方向和路径。只有通过这样的方式,才可能慢慢形成一个真正的IoT OS。

6 结论

  应用拉动技术,技术推动应用发展。中国在物联网OS这个点上是有很大机会的,因为物联网时代目前是中国在引领,应用需求很大,会极大地拉动相关技术,包括IoT OS的发展。IoT OS是“端-云”一体化的产品,不断迭代,市场选择,最后可能成为事实标准。必需要有用户思维,OS的用户是开发者,所以需要充分了解物联网应用开发者的需求和感受。IoT OS商业化之路漫长,企业需要用互联网思维来考虑商业模式。

  参考文献:

  [1]何小庆.物联网操作系统研究与思考[J].电子产品世界,2018(1):27-31

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

关键词: RTOS IoT OS 技术 产品化 机遇 201803

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章


用户评论

请文明上网,做现代文明人
验证码:
查看电脑版