英特尔愿景中四个最具成长力的百亿美元部门分别是消费电子、移动互联网终端(MID)、上网本和嵌入式通讯,而其中最被看好、成长空间最大的是嵌入式通讯。英特尔为什么如此重视嵌入式通讯?原因是根据Intel的数据统计,目前世界上大概有20亿个设备可接入互联网,而到2020年将有150亿个设备可接入互联网。
据国际电信联盟(ITU)提出的一个设备互联概念,可分成四个阶段:第一个阶段是大型机、主机;第二个阶段是台式机、笔记本跟互联网相联;第三个阶段是近年的新现象,手机联上移动互联网;而第四个阶段则是更多样化的设备都可以联网,它们联网以后会是一个新的嵌入式设备互联网时代,也就是目前风靡一时的“物联网”的概念。
一.物联网概念已落地,核心技术有待突破
(1)什么是“物联网”时代?
对于大多数人来说,物联网是一个较为新鲜的概念。物联网(TheInternetofThing),就是“物物相连的互联网”。它是指通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,把任何物品与互联网连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络。据美国咨询机构FORRESTER预测,物联网将会是继计算机、互联网与移动通信网之后的世界信息产业第四次浪潮。目前物联网产业已被中国正式列为国家五大新兴战略性产业之一。
据有关资料介绍,发展物联网的关键在于射频标签、传感器、嵌入式系统及传输数据计算等领域。其中,嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。因此,嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括微处理器、存储器及外设器件和I/O端口等。软件部分包括操作系统软件(OS)和应用程序,应用过程控制着系统的运作和行为,而操作系统控制着应用程序与硬件的交互作用。
(2)物联网设备操作系统的特点
随着物联网应用的普及,智能化、网络化将会无所不在。随着价格低廉、结构小巧的CPU和连接稳定可靠的外设硬件大量使用,限制嵌入式系统发展的瓶颈就突出表现在软件方面。因此,一旦嵌入式处理器和外围硬件选定了,那么工作最多的就集中在嵌入式软件的选择和研发,嵌入式软件的嵌入式操作系统和应用软件就成了重中之中。而嵌入式操作系统是与应用环境密切相关的,因此物联网设备需要的是一套高度简练、界面友善、质量可靠、易开发、多任务,并且价格低廉的操作系统。
在嵌入式软件只中最核心的莫过于RTOS(RealTimeOperatingSystem,实时操作系统)。所以,无论是嵌入式Linux、VxWorks系统或者WindowsCE操作系统,想要在物联网嵌入式操作系统市场大展身手,首先必须是要强化可裁剪性。就是因为物联网设备的硬件和软件都必须要更高效率地设计,量体裁衣、去除冗余,力争在小型设备上实现更高的性能,才能更具有竞争力。
二.为什么嵌入式系统关注可剪裁性?
嵌入式技术之所以能够快速发展,一个重要的原因就是嵌入式技术具有技术可剪裁的灵活性。无论是软件嵌入可剪裁还是硬件嵌入可剪裁,采用可剪裁技术都可以把复杂的系统设计变为独立模块的设计。但也正因为可剪裁技术的飞速发展,使得现有嵌入式系统设计平台面临着各种不同的挑战。
(1)量体裁衣,轻松应对设备软件的特殊挑战
一般来说,软件与硬件必须相辅相成的。但对于服务器、桌面或者笔记本PC来说,软件与硬件的协调是比较容易做到的,因为这些设备的硬件环境都是标准化的;而对于物联网设备来说,硬件环境则是千差万别的,因此也造成了软件环境的千差万别。因此,物联网嵌入式系统被描述为:以应用为中心、软件硬件可裁剪的、适应应用系统对功能、可靠性、成本、体积、功耗等严格综合性需要的专用电脑系统。它由嵌入式硬件和嵌入式软件两部分组成。嵌入式操作系统位于硬件和应用软件之间,为上层应用提供基础服务,是嵌入式系统的核心和灵魂。
例如,从硬件环境来看,桌面操作系统具有标准化的CPU、存储和I/O架构,而嵌入式环境中的RTOS硬件环境只有标准化的CPU,没有标准化的存储、I/O和显示器架构,因此许多模块在特定的硬件中并不会用到。从应用环境来看,桌面操作系统面向复杂多变的应用,而RTOS面向单一设备的单一应用,操作系统中的许多部件因此可以裁剪掉,以便节省内存,在降低成本的同时提高可靠性。因此,考虑到物联网设备的多样性,为适应不同的要求,无论在硬件方面还是在软件方面,嵌入式系统必须具有很强的可裁剪性,并且便于修改。
(2)什么是操作系统的可裁剪性?
由于物联网设备目标系统的多样性,致使在设计中经常出现需要通过裁剪来获得一个满意的操作系统。因为可裁剪性带给用户的一个最直接的好处是硬件成本降低,这对于成本敏感的应用具有重要的现实意义。由于设备中只包含应用程序用到的那部分操作系统功能,这就使得系统变得简单、易把握,从而提高系统的可靠性。但有人认为,嵌入式开发者如果拥有了软件的源代码,就可以按照自己的需求对其进行任意裁剪,就等于拥有了可裁剪性,这是一个很大的误解。删掉部分源代码之后,将会给整个系统带来什么影响,这是很难预估的,也可能会给系统的可靠性带来极大的隐患。所以如果一个软件平台只能依靠手工的方式去掉一些源代码,这根本就不是可裁剪性。
因此,操作系统的可裁剪性是指一个规模大且功能齐全的操作系统,在结构上保证了用户可在其中有选择地保留某些模块,而删减掉一些模块的性能。简单的说,是指以优秀的模块化设计为基础,随时利用软件配置方法实现软件构件的“即插即用”。因此,操作系统的可裁剪性也常被叫做操作系统的可配置性。配置方法一般有两种:一种是在系统进行编译连接时进行配置;另一种是在系统运行时进行配置。
在编译连接时的配置方法一般都是通过条件编译来实现的,即在操作系统中都有一个配置文件,在这个文件中系统的设计者可通过对一些配置常数的设置来选择使用或不使用的模块。也就是说,在对系统编译连接时,编译系统会按配置常数的设置值对与之对应的模块进行编译或不编译;那些不被编译的模块就自然地不包含在系统中而被删掉了,这样可以大大减小系统所占用的内存。条件编译是实现系统裁剪的有效手段,但这需要一个前提条件,即用户要获得待裁剪的操作系统的源代码。
在运行时对系统进行配置,是指依靠系统在初始化运行阶段执行一些条件转移语句来实现的。只不过这些条件语句是根据事先由目标系统开发人员编写的配置文件中的一些参数来跳转的。这样就可实现了系统功能上的裁剪,但不是物理上的裁剪。也就是说,被裁剪的模块的代码仍然还存在,只不过未被执行。所以,这种方法不能减少系统所占用的内存,只是使运行速度有某种程度的提高。但这种裁剪方法的优点是,目标系统开发人员可以没有源代码,并且操作起来很方便,因此是商品软件经常采用的方法。