物联网操做系统

物联网是新一代信息技术的重要组成部分。其英文名称是IOT(Internet Of Things)。由此,顾名思义,“物联网就是物物相连的互联网”。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通讯。所以,物联网的定义是经过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相链接,进行信息交换和通讯,以实现对物品的智能化识别、定位、跟踪、监控和管理的一种网络。物联网与互联网的不一样在于,互联网关注的是“人与人”之间的信息交换和共享,而物联网则进一步扩展,实现“物与物”、“人与物”之间的信息交换和共享。
下图示意了物联网的分层体系结构:
物联网大体可分为感知层、网络层(进一步分为网络接入层和核心层)、设备管理层、应用层等四个层次。其中最能体现物联网特征的,就是物联网的感知层。感知层由各类各样的传感器、协议转换网关、通讯网关、智能终端、刷卡机(POS机)、智能卡等终端设备组成。这些终端大部分都是具有计算能力的微型计算机。运行在这些终端上的最重要的系统软件-操做系统,就是所谓的物联网操做系统。
与传统的我的计算机或我的智能终端(智能手机、平板电脑等)上的操做系统不一样,物联网操做系统尤为独特的特征。这些特征是为了更好的服务物联网应用而存在的,运行物联网操做系统的终端设备,可以与物联网的其它层次结合的更加紧密,数据共享更加顺畅,可以大大提高物联网的生产效率。程序员

物联网操做系统的做用除具有传统操做系统的设备资源管理功能外,物联网操做系统还具有下列功能:
一、 物联网生态环境培育:拉通物联网产业的上下游,培育物联网硬件开发、物联网系统软件开发、物联网应用软件开发、物联网业务运营、网络运营、物联网数据挖掘等分离的商业生态环境,为物联网的大发展创建基础。相似于智能终端操做系统(iOS、Andriod等)对移动互联网的生态环境培育做用;
二、 下降物联网应用开发的成本和时间:物联网操做系统是一个公共的业务开发平台,具有丰富完备的物联网基础功能组件和应用开发环境,可大大下降物联网应用的开发时间和开发成本;
三、 提高数据共享能力:统一的物联网操做系统具有一致的数据存储和数据访问方式,为不一样行业之间的数据共享提供了可能。物联网操做系统可打破行业壁垒,加强不一样行业之间的数据共享能力,甚至能够提供“行业服务之上”的服务,好比数据挖掘等;
四、 为物联网统一管理奠基基础:采用统一的远程控制和远程管理接口,即便行业应用不一样,也可采用相同的管理软件对物联网进行统一管理,大大提高物联网的可管理性和可维护性,甚至能够作到整个物联网的统一管理和维护。web

物联网操做系统的体系架构物联网操做系统由内核、辅助外围模块(文件系统、图形用户界面、通讯协议栈、各种常见设备的驱动程序等)、集成开发环境等组成,基于此,可衍生出一系列面向行业的特定应用,下图展现了这个概念:
物联网操做系统与传统的我的计算机操做系统和智能手机类操做系统不一样,它具有物联网应用领域内的一些独特特色,现说明以下。安全

物联网操做系统的特色物联网操做系统内核的特色一、 内核尺寸伸缩性强,可以适应不一样配置的硬件平台。好比,一个极端的状况下,内核尺寸必须维持在10K之内,以支撑内存和CPU性能都很受限的传感器,这时候内核具有基本的任务调度和通讯功能便可。在另一个极端的状况下,内核必须具有完善的线程调度、内存管理、本地存储、复杂的网络协议、图形用户界面等功能,以知足高配置的智能物联网终端的要求。这时候的内核尺寸,不可避免的会大大增长,能够达到几百K,甚至M级。这种内核尺寸的伸缩性,能够经过两个层面的措施来实现:从新编译和二进制模块选择加载。从新编译措施很简单,只须要根据不一样的应用目标,选择所需的功能模块,而后对内核进行从新编译便可。这个措施应用于内核定制很是深刻的状况下,好比要求内核的尺寸达到10K如下的场合。而二进制模块选择加载,则用在对内核定制不是很深刻的状况。这时候维持一个操做系统配置文件,文件里列举了操做系统须要加载的全部二进制模块。在内核初始化完成后,会根据配置文件,加载所需的二进制模块。这须要终端设备要有外部存储器(好比硬盘、Flash等),以存储要加载的二进制模块;
二、 内核的实时性必须足够强,以知足关键应用的须要。大多数的物联网设备,要求操做系统内核要具有实时性,由于不少的关键性动做,必须在有限的时间内完成,不然将失去意义。内核的实时性包涵不少层面的意思,首先是中断响应的实时性,一旦外部中断发生,操做系统必须在足够短的时间内响应中断并作出处理。其次是线程或任务调度的实时性,一旦任务或线程所需的资源或进一步运行的条件准备就绪,必须可以立刻获得调度。显然,基于非抢占式调度方式的内核很难知足这些实时性要求;
三、 内核架构可扩展性强。物联网操做系统的内核,应该设计成一个框架,这个框架定义了一些接口和规范,只要遵循这些接口和规范,就能够很容易的在操做系统内核上增长新的功能的新的硬件支持。由于物联网的应用环境具有广谱特性,要求操做系统必须可以扩展以适应新的应用环境。内核应该有一个基于总线或树结构的设备管理机制,能够动态加载设备驱动程序或其它核心模块。同时内核应该具有外部二进制模块或应用程序的动态加载功能,这些应用程序存储在外部介质上,这样就无需修改内核,只须要开发新的应用程序,就可知足特定的行业需求;
四、 内核应足够安全和可靠。可靠性就不用说了,物联网应用环境具有自动化程度高、人为干预少的特色,这要求内核必须足够可靠,以支撑长时间的独立运行。安全对物联网来讲更加关键,甚相当系到国家命脉。好比一个不安全的内核被应用到国家电网控制当中,一旦被外部侵入,形成的影响将没法估量。为了增强安全性,内核应支持内存保护(VMM等机制)、异常管理等机制,以在必要时隔离错误的代码。另一个安全策略,就是不开放源代码,或者不开放关键部分的内核源代码。不公开源代码只是一种安全策略,并不表明不能免费适用内核;
五、 节能省电,以支持足够的电源续航能力。操做系统内核应该在CPU空闲的时候,下降CPU运行频率,或干脆关闭CPU。对于周边设备,也应该实时判断其运行状态,一旦进入空闲状态,则切换到省电模式。同时,操做系统内核应最大程度的下降中断发生频率,好比在不影响实时性的状况下,把系统的时钟频率调到最低,以最大可能的节约电源。网络

物联网操做系外围模块的特色外围模块指为了适应物联网的应用特色,操做系统应该具有的一些功能特征,好比远程维护和升级等。同时也指为了扩展物联网操做系统内核的功能范围,而开发的一些功能模块,好比文件系统、网络协议栈等。物联网操做系统的外围模块(或外围功能)应该至少具有下列这些:
一、 支持操做系统核心、设备驱动程序或应用程序等的远程升级。远程升级是物联网操做系统的最基本特征,这个特性可大大下降维护成本。远程升级完成后,原有的设备配置和数据可以得以继续使用。即便在升级失败的状况下,操做系统也应该可以恢复原有的运行状态。远程升级和维护是支持物联网操做系统大规模部署的主要措施之一;
二、 支持经常使用的文件系统和外部存储,好比支持FAT32/NTFS/DCFS等文件系统,支持硬盘、USB stick、Flash、ROM等经常使用存储设备。在网络链接中断的状况下,外部存储功能会发挥重要做用。好比能够临时存储采集到的数据,再网络恢复后再上传到数据中心。但文件系统和存储驱动的代码,要与操做系统核心代码有效分离,可以作到很是容易的裁剪;
三、 支持远程配置、远程诊断、远程管理等维护功能。这里不只仅包涵常见的远程操做特性,好比远程修改设备参数、远程查看运行信息等。还应该包涵更深层面的远程操做,好比能够远程查看操做系统内核的状态,远程调试线程或任务,异常时的远程dump内核状态等功能。这些功能不只仅须要外围应用的支持,更须要内核的自然支持;
四、 支持完善的网络功能。物联网操做系统必须支持完善的TCP/IP协议栈,包括对IPv4和IPv6的同时支持。这个协议栈要具有灵活的伸缩性,以适应裁剪须要。好比能够经过裁剪,使得协议栈只支持IP/UDP等协议功能,以下降代码尺寸。同时也支持丰富的IP协议族,好比Telnet/FTP/IPSec/SCTP等协议,以适用智能终端和高安全可靠的应用场合;
五、 对物联网经常使用的无线通讯功能要内置支持。好比支持GPRS/3G/HSPA/4G等公共网络的无线通讯功能,同时要支持Zigbee/NFC/RFID等近场通讯功能,支持WLAN/Ethernet等桌面网络接口功能。这些不一样的协议之间,要可以相互转换,可以把从一种协议获取到的数据报文,转换成为另一种协议的报文发送出去。除此以外,还应支持短信息的接收和发送、语音通讯、视频通讯等功能;
六、 内置支持XML文件解析功能。物联网时代,不一样行业之间,甚至相同行业的不一样领域之间,会存在严重的信息共享壁垒。而XML格式的数据共享能够打破这个壁垒,所以XML标准在物联网领域会获得更普遍的应用。物联网操做系统要内置对XML解析的支持,全部操做系统的配置数据,统一用XML格式进行存储。同时也可对行业自行定义的XML格式进行解析,以完成行业转换功能;
七、 支持完善的GUI功能。图形用户界面通常应用于物联网的智能终端中,完成用户和设备的交互。GUI应该定义一个完整的框架,以方便图形功能的扩展。同时应该实现经常使用的用户界面元素,好比文本框、按钮、列表等。另外,GUI模块应该与操做系统核心分离,最好支持二进制的动态加载功能,即操做系统核心根据应用程序须要,动态加载或卸载GUI模块。GUI模块的效率要足够高,从用户输入确认,到具体的动做开始执行之间的时间(能够叫作click-launch时间)要足够短,不能出现用户点击了肯定、但任务的执行却等待很长时间的状况;
八、 支持从外部存储介质中动态加载应用程序。物联网操做系统应提供一组API,供不一样应用程序调用,并且这一组API应该根据操做系统所加载的外围模块实时变化。好比在加载了GUI模块的状况下,须要提供GUI操做的系统调用,可是在没有GUI模块的状况下,就不该该提供GUI功能调用。同时操做系统、GUI等外围模块、应用程序模块应该二进制分离,操做系统可以动态的从外部存储介质上按需加载应用程序。这样的一种结构,就使得整个操做系统具有强大的扩展能力。操做系统内核和外围模块(GUI、网络等)提供基础支持,而各类各样的行业应用,经过应用程序来实现。最后在软件发布的时候,只发布操做系统内核、所需的外围模块、应用程序模块便可。架构

物联网操做系统集成开发环境的特色集成开发环境是构筑行业应用的关键工具,物联网操做系统必须提供方便灵活的开发工具,以开发出适合行业应用的应用程序。开发环境必须足够成熟并获得普遍适用,以下降应用程序的上市时间(GTMT)。集成开发环境必须具有以下特色:
一、 物联网操做系统要提供丰富灵活的API,供程序员调用,这组API应该可以支持多种语言,好比既支持C/C++,也支持Java、Basic等程序设计语言;
二、 最好充分利用已有的集成开发环境。好比能够利用Eclipse、Visual Studio等集成开发环境,这些集成开发工具具有普遍的应用基础,能够在Internet上直接得到良好的技术支持;
三、 除配套的集成开发环境外,还应定义和实现一种紧凑的应用程序格式(相似Windows的PE格式),以适用物联网的特殊须要。经过对集成开发环境进行定制,使得集成开发环境生成的代码,能够遵循这种格式;
四、 要提供一组工具,方便应用程序的开发和调试。好比提供应用程序下载工具、远程调试工具等,支撑整个开发过程。框架

能够看出,上述物联网操做系统内核、外围模块、应用开发环境等,都是支撑平台,支撑更上一层的行业应用。行业应用才是最终产生生产力的软件,可是物联网操做系统是行业应用得以茁壮生长和长期有效生存的基础,只有具有了强大灵活的物联网操做系统,物联网这棵大树才能结出丰硕的果实。svg

物联网操做系统的开发当前尚无一个比较完善的可商业应用的物联网操做系统。不过许多操做系统,都在朝这个方向发展。好比国产操做系统Hello China,已具有物联网操做系统的大体雏形(完善的内核、文件系统、网络功能、GUI、开发工具等),进一步完善后,可做为典型的物联网操做系统进行推广。进一步的信息,请参考“扩展阅读”相关内容。工具