三.主流嵌入式操作系统可剪裁性的比较
物联网嵌入式操作系统EOS(Embedded Operating System)并不是简单嵌入的操作系统,它除了具有通用操作系统的基本特点外,在小巧、可装卸等方面必须要有突出的特点。作为在嵌入式操作系统市场上通用的三种系统:Linux、VxWorks、Windows CE在可剪裁性方面有自己的特点。下面在这里对这几种系统的特点做一一分析。
(1)VxWorks操作系统
VxWorks操作系统是风河公司开发的一种嵌入式实时操作系统。VxWorks的可裁剪性特点是开发者可以根据自己应用程序的需要来选择操作系统中的部件,用户没用到的功能模块都可以去掉。VxWorks之所以具有良好的可裁剪性和可扩展性,是因为VxWorks采用了精心设计的三层结构:最小内核、基本内核和基本操作系统,以简洁的微内核作为最底层,逐层扩展到完整的VxWorks配置。
随着层次的上升,相应配置所支持的功能逐渐复杂多样,这些配置工作可以采用风河公司Workbench或者vxpri实现。其原因是VxWorks的设计是以构件和参数的形式进行的,只是其中的构件都是以预先编译库的形式存在,通过符号参照表与系统连接起来。例如,VxWorks允许软件开发人员剔除操作系统中当前应用软件不会用到的部分,甚至可以用其它第三方的模块来取代操作系统中的某个模块。除了部件和部件捆绑,VxWorks中还有“Profile”可以用来对VxWorks进行配置,这是一个重要的特色。Profile提供了一种便捷的方式,来构成操作系统的不同配置基础,以便适应不同的物联网设备产品开发。
(2)Windows CE系统
Windows CE是微软开发的一个紧凑的、高效和可扩展的操作系统。WinCE的可剪裁特点是利用模块化设计方法。Wince的模块化设计使得它能够在大量的平台上定制使用,开发者可以使用满足平台系统需求的最小软件模块和组件集合来设计嵌入式系统平台,从而使内存用量最小并最大可能地提供操作系统的性能。它的模块化设计允许开发者对设备进行定制。但从技术角度上讲,Windows CE作为嵌入式操作系统有很多的缺陷:没有开放源代码,使应用开发人员很难实现产品的真正定制;在效率、功耗方面的表现并不出色,而且和Windows一样占用过多的系统内存。另外,版权许可费也是厂商不得不考虑的因素。
(3)嵌入式Linux系统
Linux是 Unix操作系统的克隆,遵循 GPL声明可以自由修改和传播,是一个自由的操作系统。因此,Linux能在嵌入式系统方面大放光芒,这与 Linux具有良好的内核可剪裁开源特性是分不开的。例如,Linux在内核结构的设计中就考虑适应系统的可裁减性的要求,而Windows CE在内核结构的设计中并未考虑适应系统的高度可裁减性的要求。加上Linux源代码是公开的,它让你能够深入到系统底层,可以任意修改以满足自己的应用,并且查错也很容易,如果你愿意并且有这个能力的话。这为开发者编写和剪裁属于自己专有硬件的程序带来很大的方便。
但在运行Linux时的一个缺点是Linux体系提供实时性能时需要添加实时软件模块,而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断异常和执行程序的部分。由于这些实时软件模块是在内核空间运行的,因此代码错误可能会破坏操作系统从而影响整个系统的可靠性,这对于物联网嵌入式设备在可剪裁应用时将是一个非常严重的弱点。