1. VxWorks
VxWorks是美国风河公司(WindRiver)于1983年设计开发的一种实时嵌入式操作系统(RTOS),是目前嵌入式系统中使用最广泛、市场占有率最高的操作系统。它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC等,大多数的VxWorks API是专有的。
VxWork以其良好的持续发展能力、高性能的内核、友好的用户开发环境、高可靠性和实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。
VxWorks 的实时性做得非常好,其系统本身的开销也很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,延迟很短。VxWorks 提供的多任务机制中对任务的控制采用了占先式(preemptive priority scheduling)和轮转调度(round-robin scheduling)机制,充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为应用的开发留下了更大的余地。
由于VxWorks的高度灵活性,用户可以很容易地对这一操作系统进行定制或做适当开发,来满足自己的实际应用需要。
2. Nucleus
Nucleus实时操作系统是Accelerater Technology 公司开发的嵌入式RTOS,产品只需一次性购买Licenses 就可以获得操作系统的源码,并且免产品版税。Nucleus 的另一大好处是程序员不用写BSP 。因为操作系统已经开放给程序员,不同的目标板在操作系统启动时可以通过修改源码进行不同的配置。
Nucleus对CPU的支持能力比较强,支持当前流行的大多数RISC、CISC、DSP 处理器,比如80x86实时保护模式、68xxx、PowerPC、i960、MIPS、SH、ARM、ColdFire等几百种CPU。Nucleus内核非常小巧,只有4KB~20KB,稳定性高。
Nucleus PLUS 采用了软件组件的方法,每个组件具有单一而明确的目的,通常由几个C及汇编语言模块构成,提供清晰的外部接口,对组件的引用就是通过这些接口完成。由于采用了软件组件的方法,Nucleus PLUS各个组件非常易于替换和复用。
Nucleus PLUS 除提供功能强大的内核操作系统外,还提供种类丰富的功能模块,例如用于通信系统的局域和广域网络模块、支持图形应用的实时化Windows模块、支持Internet的Web产品模块、工控机实时BIOS 模块、图形化用户接口以及应用软件性能分析模块等,用户可以根据自己的应用来选择不同的应用模块。
另外,Nucleus得到许多第三方工具厂商和方案提供商的支持,如ARM、Lauterbach、TI、Infineon、高通、IAR、Tasking等。目前Nucleus在国内得到广泛的应用,特别是在手机制造行业,几乎所有的手机厂商都采用了Nucleus解决方案。
3. Windows CE
Microsoft Windows CE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。
Windows CE操作系统的基本核心需要至少200KB的ROM。它支持Win32 API的子集,支持多种的用户界面硬件,同时提供熟悉的开发模式和工具。
Windows CE有五个主要的模块。
●内核模块:支持像进程、线程处理及内存管理这样的的基本服务。
●内核系统接口模块:允许应用软件访问操作系统提供的服务。
●文件系统模块:支持DOS等格式的文件系统。
●图形窗口和事件子系统模块:控制图形和Windows相关的外貌。
●通信模块:允许同其他的设备进行信息交换。
Windows CE操作系统提供与PC类似的界面和主要应用程序,使熟悉PC机Windows系统的用户能很快学会它的使用。
4. 嵌入式Linux
自由免费软件Linux是一个类似于Unix的操作系统。嵌入式Linux由于代码开放及强大的网络功能,在嵌入式产品的开发中具备巨大的潜力。
嵌入式Linux的优点如下:
●Linux是由很多体积小且性能高的微内核系统组成。在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己的应用需要方便地对内核进行改造,以低成本设计开发出满足自己需要的嵌入式系统。
●Linux诞生于因特网时代并具有Unix的特性,强大的网络功能保证了它支持所有标准的因特网协议,可以利用Linux的网络协议栈开发嵌入式的TCP/IP网络协议栈。此外,Linux还支持ext2、fat16、fat32、romfs等文件系统,为开发嵌入式系统打下了很好的基础。
●Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。Linux也符合IEEE POSIX.1标准,使应用程序具有较好的可移植性。
●传统的嵌入式程序调试和调试工具是用在线仿真器(ICE)实现的。它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,完成监视和调试程序,但一般价格比较昂贵。使用嵌入式Linux,一旦软硬件能够支持正常的串口功能,即使不用仿真器,也可以很好地进行开发和调试工作,从而节省一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链。它利用GNU的gcc做编译器,用gdb、kgdb、xgdb做调试工具,能够很方便地实现从操作系统到应用软件各个级别的调试。
●Linux具有广泛的硬件支持特性。无论是RISC还是CISC、32位还是64位等各种处理器,Linux都能运行。Linux支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行(如μCLinux)。这意味着嵌入式Linux未来将具有更广泛的应用前景。
嵌入式Linux也存在着一些不足:
●实时性是嵌入式操作系统的基本要求。由于Linux还不是一个真正的实时操作系统,内核不支持事件优先级和占先实时特性,所以在开发嵌入式Linux的过程中,首要问题是扩展Linux的实时性能。
●Linux内核的所有部分都集中在一起,而且所有的部件在一起编译连接。这样虽然能使系统的各部分直接沟通,有效地缩短任务之间的切换时间,提高系统的响应速度和CPU的利用率,但在系统比较大时体积也比较大,与嵌入式系统容量小、资源有限的特点不符。
●Linux需要占用较多存储器。虽然这可以通过减少一些不必要的功能来弥补,但可能会很浪费时间,而且容易带来很大的麻烦。许多Linux的应用程序都要用到虚拟内存,这在许多嵌入式系统中是没有价值的。
●提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的。Linux在基于图形界面的特定系统定制平台的研究上,与Windows操作系统相比还存在差距。因此,要使嵌入式Linux在嵌入式操作系统领域中的优势更加明显,整体集成开发环境还有待提高和完善。
5. QNX
QNX是加拿大QNX公司的一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,如POSIX.1b的实时扩展。它提供了一个很小的微内核以及一些可选的配合进程。其内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其他OS服务,都实现为协作的用户进程,因此QNX内核非常小巧(QNX4.x大约为12KB)而且运行速度极快。这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或是包括几百个处理器的超级虚拟机操作系统。
6. μC/OS-II
μC/OS-II 是一种可移植、可固化、可裁剪及可剥夺的多任务实时内核。本书将以μC/OS-II为例介绍嵌入式操作系统,关于μC/OS-II将在第5章中作进一步介绍。