Hello China可以应用到各类智能终端设备中,比如支持智能控制的各类仪器仪表、各类交互式专用终端等。当然,也可以把Hello China应用于智能手机,但至少目前来说,其在这个领域的竞争力是比不上Android和iOS的。
另外一个重点应用领域是发展得如火如荼的物联网领域。Hello China定位于物联网的控制网关、智能传感节点等设备的应用上,这也是正在规划的Hello China V1.90的主要应用场景。下面相对详细地介绍一下这个应用场景,使读者对Hello China的特点有更深入的认识。首先引入物联网操作系统的概念。
1.物联网操作系统
物联网的概念和特征,在这里就不详细说明了,有兴趣的读者可以到网上搜索了解。我们大致提一下物联网的整体结构,物联网大致可分为感知层、网络层(即用于信息传输的基础网络)、设备管理层、应用层等四个层次。其中最能体现物联网特征的,就是物联网的感知层。感知层由各种各样的传感器、协议转换网关、通信网关、智能终端、刷卡机(POS机)、智能卡等终端设备组成。这些终端大部分都是具备计算能力的微型计算机。运行在这些终端上的最重要的系统软件——操作系统,就是所谓的物联网操作系统。
与传统的个人计算机或个人智能终端(智能手机、平板电脑等)上的操作系统不同,物联网操作系统有自己的特征。这些特征是为了更好地服务物联网应用而存在的,运行物联网操作系统的终端设备,能够与物联网的其他层次结合得更加紧密,数据共享更加顺畅,能够大大提升物联网的生产力。
2.物联网操作系统的架构
物联网操作系统由内核、通信组件支持、辅助外围模块(文件系统、图形用户界面、事件管理、XML解析、Java虚拟机等)、集成开发环境等组成,基于此,可衍生出一系列面向行业的特定应用。图1-7展示了这个概念。
图1-7 物联网操作系统的大致架构
3.物联网操作系统的特点
物联网操作系统与传统的个人计算机操作系统和智能手机类操作系统不同,它具备物联网应用领域内的一些独特特点,现说明如下。
(1)内核尺寸伸缩性强,能够适应不同配置的硬件平台。比如,一个极端的情况下,内核尺寸必须维持在10KB以内,以支撑内存和CPU性能都很受限的传感器,这时内核具备基本的任务调度和通信功能即可。在另外一个极端的情况下,内核必须具备完善的线程调度、内存管理、本地存储、复杂的网络协议、图形用户界面等功能,以满足高配置的智能物联网终端的要求。这时的内核尺寸必然大大增加,可以达到几百KB甚至MB级。这种内核尺寸的伸缩性,可以通过两个层面的措施来实现:重新编译和二进制模块选择加载。重新编译措施很简单,只需要根据不同的应用目标,选择所需的功能模块,然后对内核进行重新编译即可。这个措施应用于内核定制非常深入的情况,比如要求内核的尺寸小于10KB的场合。而二进制模块选择加载,则用在对内核定制不是很深入的情况。这时候维持一个操作系统配置文件,文件里列举了操作系统需要加载的所有二进制模块。在内核初始化完成后,会根据配置文件,加载所需的二进制模块。这需要终端设备有外部存储器(如硬盘、Flash等),以存储要加载的二进制模块。
(2)内核的实时性必须足够强,以满足关键应用的需要。大多数物联网设备要求操作系统内核具备实时性,因为很多关键动作必须在有限的时间内完成,否则将失去意义。内核的实时性包含很多层面的意思,首先是中断响应的实时性,一旦外部中断发生,操作系统必须在足够短的时间内响应中断并做出处理。其次是线程或任务调度的实时性,一旦任务或线程所需的资源或进一步运行的条件准备就绪,必须能够马上得到调度。显然,基于非抢占式调度方式的内核很难满足这些实时性要求。(www.xing528.com)
(3)内核架构可扩展性强。物联网操作系统的内核,应该设计成一个框架,这个框架定义了一些接口和规范,只要遵循这些接口和规范,就很容易在操作系统内核上增加新的功能和新硬件支持。因为物联网的应用环境具备广谱特性,要求操作系统能够扩展以适应新的应用环境。内核应该有一个基于总线或树结构的设备管理机制,可以动态加载设备驱动程序或其他核心模块。同时内核应该具备外部二进制模块或应用程序的动态加载功能,这些应用程序存储在外部介质上,这样就无需修改内核,只需要开发新的应用程序,就可满足特定的行业需求。
(4)内核应足够安全和可靠。可靠性就不用说了,物联网应用环境具备自动化程度高、人为干预少的特点,这要求内核必须足够可靠,以支撑长时间的独立运行。安全对物联网来说更加关键,甚至关系到国家命脉。比如一个不安全的内核应用到国家电网控制当中,一旦被外部侵入,造成的损失将无法估量。为了加强安全性,内核应支持内存保护(VMM等)、异常管理等机制,以在必要时隔离错误的代码。另外一个安全策略,就是不开放源代码,或者不开放关键部分的内核源代码。不公开源代码只是一种安全策略,并不代表不能免费使用内核。
(5)节能省电,以支持足够的电源续航能力。操作系统内核应该在CPU空闲的时候,降低CPU运行频率,或干脆关闭CPU。对于周边设备,也应该实时判断其运行状态,一旦进入空闲状态,则切换到省电模式。同时,操作系统内核应最大程度地降低中断发生频率,比如在不影响实时性的情况下,把系统的时钟频率调到最低,以节约电源。
(6)支持操作系统核心、设备驱动程序或应用程序等的远程升级。远程升级是物联网操作系统的最基本特征,这个特性可大大降低维护成本。远程升级完成后,原有的设备配置和数据能够继续使用。即使在升级失败的情况下,操作系统也应该能够恢复原有的运行状态。远程升级和维护是支持物联网操作系统大规模部署的主要措施之一。
(7)支持常用的文件系统和外部存储,比如支持FAT32/NTFS/DCFS等文件系统,支持硬盘、U盘、Flash、ROM等常用存储设备。在网络连接中断的情况下,外部存储功能会发挥重要作用。比如可以临时存储采集到的数据,在网络恢复后再上传到数据中心。但文件系统和存储驱动的代码,要与操作系统核心代码有效分离,能够做到容易裁剪。
(8)支持远程配置、远程诊断、远程管理等维护功能。这里不仅包含常见的远程操作特性,如远程修改设备参数、远程查看运行信息等,还应该包含更深层面的远程操作,比如可以远程查看操作系统内核的状态,远程调试线程或任务,异常时的远程dump内核状态等功能。这些功能不仅需要外围应用的支持,更需要内核的天然支持。
(9)支持完善的网络功能。物联网操作系统必须支持完善的TCP/IP协议栈,包括对IPv4和IPv6的同时支持。这个协议栈要具备灵活的伸缩性,以适应裁剪需要。比如可以通过裁剪,使得协议栈只支持IP/UDP等协议功能,以减小代码尺寸。同时也支持丰富的IP协议族,比如Telnet/FTP/IPSec/SCTP等协议,以适应智能终端和安全可靠性要求高的应用场合。
(10)对物联网常用的无线通信功能要内置支持。比如支持GPRS/3G/HSPA/4G等公共网络的无线通信功能,同时要支持Zigbee/NFC/RFID等近场通信功能,支持WLAN/Ethernet等桌面网络接口功能。这些协议要能够相互转换,能够把从一种协议获取的数据报文,转换成为另外一种协议的报文并发送出去。除此之外,还应支持短信息的接收和发送、语音通信、视频通信等功能。
(11)内置支持XML文件解析功能。物联网时代,不同行业之间,甚至相同行业的不同领域之间,会存在严重的信息共享壁垒。而XML格式的数据共享可以打破这个壁垒,因此XML标准在物联网领域会得到更广泛的应用。物联网操作系统要内置对XML解析的支持,所有操作系统的配置数据,统一用XML格式进行存储。同时也可对行业自行定义的XML格式进行解析,以完成行业转换功能。
(12)支持完善的GUI功能。图形用户界面一般应用于物联网的智能终端中,完成用户和设备的交互。GUI应该定义一个完整的框架,以方便图形功能的扩展。同时应该实现常用的用户界面元素,比如文本框、按钮、列表等。另外,GUI模块应该与操作系统核心分离,最好支持二进制的动态加载功能,即操作系统核心根据应用程序需要,动态加载或卸载GUI模块。GUI模块的效率要足够高,从用户输入确认,到具体的动作开始执行之间的时间(可以叫做click-launch时间)要足够短,不能出现用户点击了确定按钮但任务的执行却等待很长时间的情况。
(13)支持从外部存储介质中动态加载应用程序。物联网操作系统应提供一组API,供不同应用程序调用,而且这组API应该根据操作系统所加载的外围模块实时变化。比如在加载了GUI模块的情况下,需要提供GUI操作的系统调用,但是在没有GUI模块的情况下,就不应该提供GUI功能调用。同时操作系统、GUI等外围模块、应用程序模块应该二进制分离,操作系统能够动态地从外部存储介质上按需加载应用程序。这样的一种结构,就使得整个操作系统具备强大的扩展能力。操作系统内核和外围模块(GUI、网络等)提供基础支持,而各种各样的行业应用通过应用程序来实现。最后在软件发布的时候,只发布操作系统内核、所需的外围模块、应用程序模块即可
后续版本的Hello China,将根据上述特性需求做进一步的针对性开发,以打造出一个高效通用的物联网操作系统。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。