嵌入式操作系统EOS(EmbeddedOperatingSystem)又称实时操作系统RTOS(RealTimeOperationSystem)是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器Browser等。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、调度、控制、协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。
在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。但是,使用嵌入式实时操作系统还需要额外的ROM/RAM开销,2~5%的CPU额外负荷。
到目前为止,商业化嵌入式操作系统的发展主要受到用户嵌入式系统的功能需求、硬件资源以及嵌入式操作系统自身灵活性的制约。而随着嵌入式系统的功能越来越复杂,硬件所提供的条件越来越好,选择嵌入式操作系统也就越来越有必要了。到了高端产品的阶段,可以说采用商业化嵌入式操作系统是最经济可行的方案,而这个阶段的应用也为嵌入式操作系统的发展指出了方向现在主流的嵌入式操作系统包括Linux、VxWorks、WindowsCE、µC/OSⅡ等。
(一)嵌入式Linux
这是嵌入式操作系统的一个新成员,其最大的特点是源代码公开并且遵循GPL协议,在近一年多以来成为研究热点,据IDG预测嵌入式Linux将占未来两年的嵌入式操作系统份额的50%。
由于其源代码公开,人们可以任意修改,以满足自己的应用,并且查错也很容易。遵从GPL,无须为每例应用交纳许可证费。有大量的应用软件可用。其中大部分都遵从GPL,是开放源代码和免费的。可以稍加修改后应用于用户自己的系统。有大量的免费的优秀的开发工具,且都遵从GPL,是开放源代码的。有庞大的开发人员群体。无需专门的人才,只要懂Unix/Linux和C语言即可。随着Linux在中国的普及,这类人才越来越多。所以软件的开发和维护成本很低。优秀的网络功能,这在Internet时代尤其重要。稳定——这是Linux本身具备的一个很大优点。内核精悍,运行所需资源少,十分适合嵌入式应用。支持的硬件数量庞大。嵌入式Linux和普通Linux并无本质区别,PC上用到的硬件嵌入式Linux几乎都支持。而且各种硬件的驱动程序源代码都可以得到,为用户编写自己专有硬件的驱动程序带来很大方便。
在嵌入式系统上运行Linux的一个缺点是Linux体系提供实时性能需要添加实时软件模块。而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断异常和执行程序的部分。由于这些实时软件模块是在内核空间运行的,因此代码错误可能会破坏操作系统从而影响整个系统的可靠性,这对于实时应用将是一个非常严重的弱点。
(二)VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是Tornado嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌人式实时操作系统领域逐渐占据一席之地。
VxWorks具有可裁剪微内核结构;高效的任务管理;灵活的任务间通讯;微秒级的中断处理;支持POSIX1003.1b实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。
然而其价格昂贵。由于操作系统本身以及开发环境都是专有的,价格一般都比较高,通常需花费10万元人民币以上才能建起一个可用的开发环境,对每一个应用一般还要另外收取版税。一般不通供源代码,只提供二进制代码。由于它们都是专用操作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。支持的硬件数量有限。
(三)WindowsCE
WindowsCE与Windows系列有较好的兼容性,无疑是WindowsCE推广的一大优势。其中WinCE3.0是一种针对小容量、移动式、智能化、32位、了解设备的模块化实时嵌人式操作系统。为建立针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,它能在多种处理器体系结构上运行,并且通常适用于那些对内存占用空间具有一定限制的设备。它是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200KB的ROM。由于嵌入式产品的体积、成本等方面有较严格的要求,所以处理器部分占用空间应尽可能的小。系统的可用内存和外存数量也要受限制,而嵌入式操作系统就运行在有限的内存(一般在ROM或快闪存储器)中,因此就对操作系统的规模、效率等提出了较高的要求。从技术角度上讲,WindowsCE作为嵌入式操作系统有很多的缺陷:没有开放源代码,使应用开发人员很难实现产品的定制;在效率、功耗方面的表现并不出色,而且和Windows一样占用过的系统内存,运用程序庞大;版权许可费也是厂商不得不考虑的因素。
(四)μC/OS一Ⅱ
μC/OS一Ⅱ是著名的源代码公开的实时内核,是专为嵌入式应用设计的,可用于8位,16位和32位单片机或数字信号处理器(DSP)。它是在原版本μC/OS的基础上做了重大改进与升级,并有了近十年的使用实践,有许多成功应用该实时内核的实例。它的主要特点如下:公开源代码,容易就能把操作系统移植到各个不同的硬件平台上;
可移植性,绝大部分源代码是用C语言写的,便于移植到其他微处理器上; 可固化;
可裁剪性,有选择的使用需要的系统服务,以减少斗所需的存储空间;占先式,完全是占先式的实时内核,即总是运行就绪条件下优先级最高的任务;
多任务,可管理64个任务,任务的优先级必须是不同的,不支持时间片轮转调度法;
可确定性,函数调用与服务的执行时间具有其可确定性,不依赖于任务的多少;
实用性和可靠性,成功应用该实时内核的实例,是其实用性和可靠性的最好证据。
由于μC/OS一Ⅱ仅是一个实时内核,这就意味着它不像其他实时存在系统那样提供给用户的只是一些API函数接口,还有很多工作需要用户自己去完成。完成开发原代码,可免费用于学校用于教学。但如果用于商用,则需要付费。
补充:
1)Nucleus
Nucleus实时操作系统是AcceleraterTechnology公司开发的嵌入式RTOS,产品只需一次性购买Licenses就可以获得操作系统的源码,并且免产品版税。Nucleus的另一大好处是程序员不用写板级
支持软件包BSP,因为操作系统已经开放给程序员,不同的目标板在操作系统BOOT时可以通过修改源码进行不同的配置。Nucleus对CPU的支持能力比较强,支持当前流行的大多数RISC、CISC、DSP处理器,比如80x86实时保护模式68xxx,PowerPC,i960,MIPS,SH,ARM,ColdFire等几百种CPU。
Nucleus内核非常小巧,只有4K~20K之间,稳定性高。Nucleus内核采用了软件组件的方法,每个组件具有单一而明确的目的,通常由几个C及汇编语言模块构成,提供清晰的外部接口,对组件的引用就是通过这些接口完成。除了少数一些特殊情况外,不允许从外部对组件内的全局进行访问。由于采用了软件组件的方法,Nucleus各个组件非常易于替换和复用。Nucleus除提供功能强大的内核外,还提供种类丰富的功能模块,例如用于通讯系统的局域和广域网络模块,支持图形应用的实时化Windows模块,支持Internet网的WEB产品模块,工控机实时BIOS模块,图形化用户接口以及应用软件性能分析模块等,用户可以根据自己的应用来选择不同的应用模块。另外Nucleus得到许多第三方工具厂商和方案提供商的支持,如ARM,Lauterbach,TI,Infineon,高通,IAR,Tasking等。
目前Nucleus在国内得到广泛的应用,如终端设备、工控、医疗、汽车电子、导航、通信等领域。特别是在手机制造行业,几乎所有的手机厂商都采用了Nucleus解决方案。
2)OSE
OSE主要是由ENEADataAB下属的ENEAOSESystemsAB负责开发和技术服务的。它是新生代实时操作系统,中国于2000年引进。OSE集中了最先进的RTOS设计理念,OSE相对其它传统的操作系统具有显著不同的特点: 高处理能力内核中实时性严格的部分都由优化的汇编来实现,特点是使用信号量指针,使数据处理非常迅速、快捷。真正适合开发复杂的分布式系统
OSE支持多种CPU和DSP,为开发商开发不同种处理器组成的分布式系统提供了最快捷的方式。传统的RTOS是基于单CPU,它虽然可以改进成分布式系统,但用户需要在应用程序中做很多工作。而OSE不同于传统的RTOS,首先是因为它的结构体系有了很大改变,它以消息传递作为主要手段完成CPU间的通信,还把传统的RTOS必须在应用程序中完成的工作,做到了核心系统中。对于复杂的并行系统来说,OSE提供了一种简单的通信方式,简化了多CPU的处理。
强大的容错功能。系统支持不中断实时系统,允许从硬件或软件错误中恢复。OSE是适用于有容错要求,非间断,以及有安全性要求的分布式系统。例如在实时的情况下完成设备的硬件的安装和软件的配置,系统错误的恢复等等。
OSE获得了广泛的认证。如:IEC61508,SIL3认证;DO-178B(levelsA-D);EN60601-4等。它的客户深入到电信,数据,工控,航空等领域,尤其在电信方面,被诸如爱立信,诺基亚,西门子等知名公司广泛的采用。
3)QNX
QNX是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,如:POSIX.1b实时扩展。它提供了一个很小的微内核以及一些可选的配合进程。其内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX内核非常小巧(QNX4.x大约为12Kb)而且运行速度极快。这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或是包括几百个处理器的超级虚拟机操作系统。