
1.3 嵌入式操作系统举例
嵌入式操作系统主要有商业版和开源版两大阵营,从长远来看,嵌入式系统开源、开发将是其发展趋势。
1.3.1 商业版嵌入式操作系统
下面简单地列举VxWorks、Windows CE两种商业版嵌入式操作系统。
1.VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它是在当前市场占有率最高的嵌入式实时操作系统。VxWorks的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,使得它们造成的延迟很短。VxWorks提供的多任务机制,对任务的控制采用了优先级抢占(Linux 2.6内核也采用了优先级抢占的机制)和轮转调度机制,这充分保证了可靠的实时性,并使同样的硬件配置能满足更强的实时性要求。另外,VxWorks具有高度的可靠性,从而保证了用户工作环境的稳定。同时,VxWorks还具有很完备强大的集成开发环境,这也大大方便了用户的使用。
但是,由于VxWorks的开发和使用都需要交高额的专利费,因此大大增加了用户的开发成本。同时,由于VxWorks的源码不公开,造成它部分功能的更新(如网络功能模块)滞后。
2.Windows CE
Windows CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。它是精简的Windows 95。Windows CE的图形用户界面相当出色,同时具有模块化、结构化和基于Win32应用程序接口及与处理器无关等特点。它不仅继承了传统的Windows图形界面,并且用户在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C++等),也可以使用同样的函数、同样的界面风格,从而使绝大多数Windows上的应用软件只需简单地修改和移植就可以在Windows CE平台上继续使用。但与VxWorks相同,Windows CE也是要收费的,但相对于VxWorks要经济很多。
1.3.2 开源版嵌入式操作系统
嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几千字节或者几兆字节的存储器芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux,这与它自身的优良特性是分不开的。
嵌入式Linux同Linux一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地适应嵌入式领域的开发,嵌入式Linux还在Linux的基础上做了部分改进。
1.改善的内核结构
Linux内核采用的是整体式结构(Monolithic),整个内核是一个单独的、非常大的程序,这样虽然能够使系统的各个部分直接沟通,提高系统响应速度,但与嵌入式系统存储容量小、资源有限的特点不相符合。因此,在嵌入式系统中经常采用的是另一种称为微内核(Microkernel)的体系结构,即内核本身只提供一些最基本的操作系统功能,如任务调度、内存管理、中断处理等,而类似于文件系统和网络协议等附加功能则运行在用户空间中,并且可以根据实际需要进行取舍。这样就大大减小了内核的体积,便于维护和移植。
2.提高的系统实时性
由于现有的Linux是一个通用的操作系统,虽然它也采用了许多技术来加快系统的运行和响应速度,但从本质上来说并不是一个嵌入式实时操作系统。因此,利用Linux作为底层操作系统,在其上进行实时化改造,从而构建出一个具有实时处理能力的嵌入式系统,如RT-Linux已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等领域。
嵌入式Linux同Linux一样,也有众多的版本,其中不同的版本分别针对不同的需要在内核等方面加入了特定的机制。嵌入式Linux的主要版本如表1-2所示。
表1-2 嵌入式Linux的主要版本