2.2 主流嵌入式操作系统简介
目前,市场上有数十种嵌入式操作系统,如VxWorks、pSOS、Palm OS、QNX、Windows CE、μC/OS-II和Linux等。这些嵌入式操作系统广泛应用于控制领域,每一种都有自身的特色。这里首先简单介绍一下各个嵌入式操作系统的基本特色。
2.2.1 VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。它的良好的持续发展能力、高性能的内核及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。VxWorks是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC等。
VxWorks以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,VxWorks的主要特点如下。
· 可靠性。VxWorks具有非常高的可靠性,被广泛应用于军事、航空、航天等对系统要求极高的环境。
· 实时性。VxWorks的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。
· 多任务。VxWorks提供的多任务机制中对任务的控制采用了优先级抢占(Preemptive Priority Scheduling)和轮转调度(Round-Robin Scheduling)机制。
· 可裁剪性。VxWorks由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。VxWorks内核最小为8KB,即便加上其他必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。由于它的高度灵活性,用户可以很容易地对这一操作系统进行定制或适当开发,来满足自己的实际应用需要。
· 大多数的VxWorks API是专有的。采用GNU的编译和调试器。
· VxWorks还具有高效的任务管理,灵活的任务间通信。
· VxWorks具有微秒级的中断处理。
· VxWorks支持POSIX 1003.1b实时扩展标准。
· VxWorks支持多种物理介质及标准的、完整的TCP/IP网络协议等特点。
· 价格昂贵。收费的操作系统,通常需花费数十万元人民币以上才能建起一个可用的开发环境。另外还需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。
2.2.2 pSOS
pSOS最早由美国加州的集成系统公司(Integrated Systems Inc)设计,后该公司被WindRiver公司收购。现在pSOS是美国WindRiver公司的产品。这个系统是一个模块化、高性能的实时操作系统,专为嵌入式微处理器设计,提供一个完全多任务环境,在定制的或商业化的硬件上提供高性能和高可靠性。可以让开发者根据操作系统的功能和内存需求定制成每一个应用所需的系统。开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系统。
pSOS的主要组成部分如下:实时多任务核心pSOS+、TCP/IP协议堆栈pNA+、远程过程调用库pRPC+、文件系统管理pHILE+、ANSI C标准库pREPC+、调试功能模块pROBE+、系统信息实时分析工具pMONT+等。pSOS系统的主要特点如下。
· pSOS先进的模块化体系结构,包括一个实时多任务核心pSOS+和一系列的公司软件部件和连接库。
· 系统中的每个部分都是封闭式的,相互之间既独立又密切协作。
· 支持范围相当广泛的CPU和驱动器等硬件产品。
· 集成了TCP/IP协议,使基于pSOS的嵌入式设备具有天生的因特网访问能力。
· 快速、精确的系统核心为应用提供优化的运行环境。
· 运行高效稳定,多处理器支持。
· 文件系统支持包括ISO9660、MS-DOS兼容文件系统和高性能嵌入式文件系统。
2.2.3 Palm OS
Palm OS是3Corn公司的产品,其是一种32位的嵌入式操作系统,具有开放的操作系统应用程序接口(API),开发商可以根据需要自行开发所需要的应用程序。
Palm OS一套专门为掌上电脑开发的操作系统。Palm OS占有非常小的内存,极适合掌上电脑内存相对较小的情况。另外,基干Palm OS编写的应用程序占用的空间也非常小(通常只有几十KB)。所以,基于Palm OS的掌上电脑(虽然只有几MB的RAM)可以运行众多应用程序。
Palm OS的主要特点如下。
· 提供了串行通信接口和红外线传输接口;利用它可以方便地与其他外部设备通信、传输数据。
· Palm OS是一套具有极强开放性的系统,拥有开放的OS应用程序接口,开发商可根据需要自行开发所需的应用程序。
· Palm OS具有节能功能,可以将系统设备进入半休眠(doze)的状态,如果应用程序停止活动一段时间,则系统自动进入休眠(sleep)状态;
· Palm OS具有合理的内存管理,方便了数据存储和程序运行。
· Palm OS的数据是以数据库(database)的格式来存储的。
· Palm OS可以与同步软件结合,使掌上电脑与PC上的信息实现同步。
· Palm具有丰富的外围硬件,例如数码相机、GPS接收器、调制解调器、GSM无线电话、数码音频播放设备、便携键盘、语言记录器、条码扫描、无线寻呼接收器、探测仪等。
2.2.4 QNX
QNX是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,如POSIX.1b实时扩展。它提供了一个很小的微内核及一些可选的配合进程。其内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其他OS服务,都实现为协作的用户进程。这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或包括几百个处理器的超级虚拟机操作系统。QNX系统的主要特点如下:
· QNX提供了多种资源管理器,包括各种文件系统和设备管理,支持多个文件系统同时运行,包括提供完全POSIX.1及UNIX语法的POSIX文件系统,支持多种闪存设备的嵌入式文件系统,支持对多种文件服务器(如Windows NT、LAN Manager等)的透明访问的SMB文件系统、DOS文件系统、CDROM文件系统等。
· 支持TCP/IP,独有的高性能、容错型QNX网络——FLEET,使得所有连入网络的计算机变成一个逻辑上的超级计算机。FLEET网络处理与消息传递和进程管理原语的集成,将本地和网络IPC统一起来,使得网络对IPC而言是透明的。
· QNX内核非常小巧(QNX4.x大约为12KB)而且运行速度极快。
· QNX支持多种CPU、总线和外设。
· QNX提供UNIX特色的编译器、调试器、X Window和TCP/IP,这些都是UNIX / Linux程序员所熟悉的。
2.2.5 OS-9
Microwave的OS-9是为微处理器的关键实时任务而设计的操作系统,广泛应用于高科技产品中,包括消费电子产品、工业自动化、无线通信产品、医疗仪器、数字电视/多媒体设备。它提供了很好的安全性和容错性。与其他的嵌入式系统相比,它的灵活性和可升级性非常突出。
2.2.6 LynxOS
Lynx Real-time Systems的LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。LynxOS支持线程概念,提供256个全局用户线程优先级;提供一些传统的、非实时系统的服务特征;包括基于调用需求的虚拟内存,一个基于Motif的用户图形界面,与工业标准兼容的网络系统及应用开发工具。
2.2.7 Windows CE
Windows CE是微软旗下的一个32位嵌入式操作系统。得益于Windows系统优秀的图形用户界面,Windows CE的图形用户界面也相当出色,与桌面版的Windows基本一致。这样就给用户带来十分宜用的体验。在Windows CE中,C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)。目前最新的Windows CE为Windows CE 6.0。
Microsoft Windows CE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200KB的ROM。Windows CE系统的主要特点如下:
· Windows CE具有模块化、结构化和基干Win32应用程序接日及与处理器无关等特点。
· Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows上的编程工具(如Visual Basic、Visual C++等)、使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植,就可以在Windows CE平台上继续使用。
· Windows CE的API是Win32 API的一个子集,支持近1500个Win32 API。有了这些API,足可以编写任何复杂的应用程序。当然,在Windows CE系统中,所提供的API也可以随具体应用的需求而定。
· Windows CE具有灵活的电源管理功能,包括睡眠/唤醒摸式。
· Windows CE使用了对象存储(object store)技术,包括文件系统、注册表及数据库。它还具有很多高性能。
· Windows CE具有高效率的操作系统特性,包括按需换页、共享存储、交叉处理同步、支持大容量堆(heap)等。
· Windows CE拥有良好的通信能力。广泛支持各种通信硬件,也支持直接的局域网连接及拨号连接,并提供与PC、内部网及Internet的连接。
· Windows CE支持嵌套中断。允许更高优先级别的中断首先得到响应,而不是等待低级别的ISR完成。这使得该操作系统具有嵌入式操作系统所要求的实时性。
· Windows CE具有优秀的线程响应能力。对高级别IST(中断服务线程)的响应时间上限的要求更加严格,在线程响应能力方面的改进,帮助开发人员掌握线程转换的具体时间,并通过增强的监控能力和对硬件的控制能力帮助他们创建新的嵌入式应用程序。
2.2.8 μC/OS-II
μC/OS-II是一种开源但不免费的实时操作系统,具有可剥夺实时内核。从名称上可知,μC/OS-II是μC/OS的升级版,µC/OS首先在1992年发布。目前,μC/OS-II已经被移植到40多种不同结构的CPU上,运行在从8位到64位的各种系统之上。
μC/OS-II的源代码结构合理清晰易读,不仅成功应用在众多的商业项目中,而且被很多大学采纳,作为教学的范例,同时也是嵌入式系统工程师学习和提高的绝好材料。μC/OS-II系统的主要特点如下。
· μC/OS-II内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。
· μC/OS-II主要适合小型控制系统,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB。
· μC/OS-II还包含全部功能(信号量、消息邮箱、消息队列及相关函数),全部编译后的μC/OS-II内核仅有6~10KB。
· μC/OS-II系统本身并没有对文件系统的支持。但是μC/OS具有良好的扩展性能,如果需要,也可自行加入文件系统的内容。
2.2.9 嵌入式Linux
谈到Linux几乎无人不知,无人不晓。Linux最早由芬兰人Linus Torvalds创立于1991年,经过短短十几年的发展,Linux已成为一个功能强大、稳定可靠的操作系统。典型的Linux系统由Red Hat、Ubuntu、Red Flag(红旗)等。
而这里我们要讲的嵌入式Linux是标准Linux在嵌入式系统上的移植,其继承了标准Linux的优良特征,是近年来发展的热点。嵌入式Linux的特点如下。
· 嵌入式Linux最大的特点是源代码公开并且遵循GPL协议,人们可以任意修改以满足自己的应用。有大量优秀的开发工具,且同样遵循GPL协议。
· 高性能、可裁剪的内核,运行时所需资源少,而且稳定高效。
· 独特的模块机制可以将用户的模块动态地插入内核或卸载,能够应付复杂的任务需求。
· 嵌入式Linux支持所有标准的网络协议,并且很容易移植到目标系统。
· 具有丰富的应用,例如RT-Linux、uCLinux、Embedix和红旗嵌入式Linux等。
2.2.10 FreeRTOS
FreeRTOS是一个可移植的、开源的小型实时内核,可以免费下载并且可以免费用于商业软件。FreeRTOS支持多种处理器架构,包括ARM7、ARM9、Cortex-M3、AVR、PIC和MSP430等。FreeRTOS系统的主要特点如下:
· 完全免费,使用没有限制。
· 支持完全占先。
· 支持多优先级。
· 具有灵活的多任务切换的调度。
· 支持上下文切换。
· 可以实现实时应用和实时调度。