1.3 嵌入式操作系统
嵌入式操作系统的一个重要特性是实时性。所谓实时性,就是在确定的时间范围内响应某个事件的特性。操作系统的实时性在某些领域是至关重要的,如工业控制、航空航天等领域。想象飞机正在空中飞行,如果嵌入式系统不能及时响应飞行员的控制指令,那么极有可能导致空难事故。有些嵌入式系统应用并不需要绝对的实时性,如PDA播放音乐,个别音频数据丢失并不影响效果。这可以使用软实时的概念来衡量。
据调查,目前全世界的嵌入式操作系统已经有两百多种。从20世纪80年代开始,出现了一些商用嵌入式操作系统,它们大部分是为专有系统而开发的。随着嵌入式领域的发展,各种各样的嵌入式操作系统相继问世,有许多商业的嵌入式操作系统,也有大量开放源代码的嵌入式操作系统,其中著名的嵌入式操作系统有:μC/OS、VxWorks、Neculeus、Linux和Windows CE等。下面介绍一些主流的嵌入式操作系统。
1.Linux
Linux操作系统是UNIX操作系统的一种克隆系统。它诞生于1991年的10月5日(这是第一次正式向外公布的时间)。以后借助于Internet网,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长。如图1.1所示是业内人士对国内Linux软件市场的预测。
图1.1 2004~2008年国内Linux软件市场总量预测
根据IDC的报告,Linux已经成为全球第二大操作系统。预计在服务器市场上,Linux在未来几年内将以每年25%的速度增长,中国的Linux市场更是保持40%左右的增长速度。而在Linux操作系统方面,IDC对中国在2001~2006年的市场预测发现,其市场占有率从2001年的4.47%平稳地上升到2006年的26.77%。
嵌入式Linux版本还有多种变体,如RTLinux通过改造内核实现了实时的Linux;RTAI、Kurt和Linux/RK也提供了实时能力;μCLinux去掉了Linux的MMU(内存管理单元),能够支持没有MMU的处理器等。
2.μC/OS
μC/OS是一个典型的实时操作系统,该系统从1992年开始发展,目前流行的是第2个版本,即μC/OS-II。它的特点是:公开源代码,代码结构清晰,注释详尽,组织有条理,可移植性好;可裁剪,可固化;抢占式内核,最多可以管理60个任务。自从清华大学邵贝贝教授将Jean J. Labrosse的“μC/OS-Ⅱ:the Real Time Kernel”翻译后,在国内掀起了μC/OS-II的热潮,特别是在教育研究领域。该系统短小精悍,是研究和学习实时操作系统的首选。
3.Windows CE
Windows CE是微软的产品,它是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。Windows CE采用模块化设计,并允许它对于从掌上电脑到专用的工控电子设备进行定制。操作系统的基本内核需要至少200KB的ROM。从SEGA的DreamCast游戏机到现在大部分的高价掌上电脑都采用了Windows CE。
随着嵌入式操作系统领域的竞争日益激烈,微软不得不应付来自Linux等免费系统的冲击。微软在Windows CE.Net 4.2版中,将增加一项授权价仅3美元的精简版本WinCE.Net Core。WinCE.Net Core具有基本的功能,包括实时OS核心(Real Time OS Kernel)、档案系统;IPv4、IPv6、WLAN、蓝牙等联网功能;Windows Media Codec;.Net开发框架及SQL Server.ce。微软推出低价版本WinCE.Net,主要是看好语音电话、WLAN的无线桥接器和个性化视听设备的市场潜力。
4.VxWorks
VxWorks是WindRiver公司专门为实时嵌入式系统设计开发的操作系统软件,为程序员提供了高效的实时任务调度、中断管理,实时的系统资源及实时的任务间通信。应用程序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。该系统主要应用在单板机、数据网络(以太网交换机、路由器)和通信等多方面。其核心功能主要有以下几方面:
- 微内核wind。
- 任务间通信机制。
- 网络支持。
- 文件系统和I/O管理。
- POSIX标准实时扩展。
- C++及其他标准支持。
这些核心功能可以与WindRiver系统的其他附件和Tornado合作伙伴的产品结合在一起使用。谁都不能否认这是一个非常优秀的实时系统,但其昂贵的价格使不少厂商望而却步。
5.QNX
QNX是一款实时操作系统,由加拿大QNX软件系统有限公司开发,广泛应用于自动化控制、机器人科学、电信、数据通信、航空航天、计算机网络系统、医疗仪器设备、交通运输、安全防卫系统、POS机、零售机等任务关键型应用领域。20世纪90年代后期,QNX系统在高速增长的因特网终端设备、信息家电及掌上电脑等领域也得到了广泛应用。
QNX的体系结构决定了它具有非常好的伸缩性,用户可以把应用程序代码和QNX内核直接编译在一起,使之为简单的嵌入式应用生成一个单一的多线程映像。它也是世界上第一个遵循POSIX 1003.1标准从零设计的微内核,因此具有非常好的可移植性。
嵌入式操作系统的选择是前期设计过程的一项重要工作,这将影响到工程后期的发布及软件的维护。不管选用什么样的系统,首先应该考虑操作系统对硬件的支持,如果选择的系统不支持将来要使用的硬件平台,那么这个系统是不合适的;其次要考虑的是开发调试用的工具,特别是对于开销敏感和技术水平不强的企业来说,开发工具往往在开发过程中起决定性作用;最后要考虑的问题是,该系统能否满足应用需求。如果一个操作系统提供出来的API很少,那么无论这个系统有多么稳定,应用层也很难进行二次开发,这显然也不是开发人员希望看到的。由此可见,选择一款既能满足应用需求、性价比又可达到最佳的实时操作系统,对开发工作的顺利开展意义非常重大。