江西白癜风微信交流群 http://www.guannews.com/yiliao/155957.html作者/沈建华华东师范大学计算机科学与软件工程学院(上海)*本文源于“嵌入式系统联谊会主题讨论会(总第22次)——物联网操作系统现状与发展前景研讨会”上的报告。沈建华,副教授,网络研究所副所长,研究方向:物联网技术、嵌入式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物联网与IoTOS嵌入式系统开发的“散乱”问题,物联网有机会来改变。凡是和互联网相关的应用,发展速度都很快。从某种角度上说,物联网应用系统也可看作是嵌入式系统的网络应用,因为物联网系统中的“物”,基本上都是各种嵌入式设备。在20多年前有一句话,叫“计算机就是网络,网络就是计算机”,现在来看还是非常正确的。嵌入式系统放到物联网背景上来看也是类似的,也许再过个十年二十年,一个不联网的嵌入式设备也没什么用了。嵌入式小设备要联网,还要方便、快速地开发各种物联网应用,并考虑很多安全问题、系统效率问题,使用传统的RTOS加个网络协议栈是不够的。无论从哪个角度来看,使用一个合适的、相对标准化的物联网OS(IoTOS)是更好的选择。就像移动应用开发会选择Android系统,而不是Linux系统。3IoTOS技术大部分物联网设备的“物”,都是基于MCU的小设备。计算机技术发展到今天,针对MCU的RTOS的基本功能、技术都是成熟的。不同RTOS的内核和组件各自有一些小的特点,比如内核调度是用什么算法,任务堆栈怎么处理,任务之间的通信方式、支持的任务状态和任务数等,但是这些已经不重要,因为硬件性能提升很多,应用对这些特点基本无感知了。随着IoT应用系统的复杂化,应用更多