三种通用嵌入式操作系统的分析与比较
扫描二维码
随时随地手机看文章
摘要:本文介绍了三种通用的嵌入式操作系统 VxWorks、Windows CE、Linux以及它们的各自的特点,并通过比较他们的优缺点分析他们各自适应的领域。
1嵌入式操作系统
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。作为嵌入式系统的重要组成部分,嵌入式操作系统 EOS(Embedded Operating System)是随着嵌入式系统的发展而出现的,是嵌入式系统发展到一定阶段的产物。嵌入式操作系统的出现,大大提高了嵌入式系统的开发效率,同时也促进了嵌入式的发展。
嵌入式操作系统并不是简单嵌入的操作系统,它除了具有通用操作系统的基本特点外,在小巧、实时性、可装卸、可固化代码、强稳定性、弱交互性、具备统一接口等方面有突出的特点。 2三种典型 EOS分析
作为在嵌入式操作系统市场通用的三种系统,Linux 、VxWorks 、Windows CE在实时性、内核大小、调度算法、通信能力和开发环境等方面都有自己的特点,下面就对这几种系统的特点做一分析。
2.1 VxWorks
VxWorks操作系统是美国 WindRiver公司于 1983年设计开发的一种嵌入式实时操作系统,依据其良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。应用实例包括美国的 F-16、FA-18战斗机、B-2 隐形轰炸机、火星探测器、爱国者导弹等。
VxWorks的特点有:
1)高实时性实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件作出响应的能力。实时性的强弱是以完成规定功能和作出响应时间的长短来衡量的。
VxWorks 的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。 VxWorks 的任务调度策略以可抢占式调度( Preemptive Priority Scheduling)为基础,辅以时间轮转调度算法( Round-Robin Scheduling)机制。这一调度算法使得 VxWorks 能够及时响应高优先级的任务。而同级任务间则可选择时间片轮转法使多个同优先级的任务并发执行。
2)可裁剪性 VxWorks的可裁剪性,可以使开发者根据自己应用程序的需要来选择操作系统中部件,用户没用到的功能模块都可以去掉。
VxWorks 由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。 VxWorks 内核最小为 8kB,即便加上其它必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。由于它的高度灵活性,用户可以很容易地对这一操作系统进行定制或作适当开发,来满足自己的实际应用需要。
3)友好的开发调试环境
VxWorks的开发环境 Tornado是一个友好的开发环境,它可以运行在多种主机上,包括 Sun、HP、Dec、MIPS等,主机的操作系统则支持 Unix、Windows NT等。系统使用的流行图形界面方便使用者较快地理解和掌握。 VxWorks支持应用程序的动态链接和动态下载,使开发者省去了每次调试都将应用程序与操作系统内核进行链接和下载的步骤,缩短了编辑调试的周期。而 VxWorks具有的可视化图形界面的调试工具,也很大程度地方便了开发者的调试工作。
2.2 Windows CE
Windows CE(下称 Wince)是微软开发的一个源码开放的、紧凑的、高效和可扩展的操作系统,适用于各种嵌入式系统和产品。它拥有多线程、多任务、确定性的实时、完全抢先式优先级的操作系统环境,专门面向只有有限资源的硬件环境。同时,它的模块化设计方式使得系统开发人员和应用开发人员能够为多种多样的产品来定制它,例如手持电脑、专用的工业控制器以及消费用电子产品等。
Wince除了具有 Windows系统的许多共性外,又具有嵌入式系统所要求的实时性、内存小等特性。同时 Embedded Visual C++给嵌入式系统应用程序的开发提供了极大的方便。因此,利用 Wince开发嵌入式系统或装置不仅可以获得最好的性能,而且可以缩短开发周期和降低技术风险。
Wince的特点有:
1)实时性支持
Wince的实时性支持包括以下内容:支持嵌套的中断,这可以让高优先级的中断立即被响应;更好的线程响应,高优先级的中断服务线程调度延迟的上限更加紧了,这可以让开发人员知道线程调度转换发生的时间,通过提高监视和控制硬件的能力开发新的嵌入式应用程序;更多的优先级别, 256个优先级别给予开发人员更大的灵活性来控制嵌入式系统的调度;以及更好的控制,对线程时间片级的控制可以支持对调度机制更大的控制。
2)内核大小
WinCE的内核可以很小,最小内核可以不足 350kB,因为系统的大部分功能都在各自的功能模块中实现。不过,它是 WinCE操作系统真正的核心,主要完成 6类功能,即处理器调度、内存管理、异常处理、系统内的通信机制、为其他部分提供核心调用例程、为系统范围内的调试提供支持。
3)拥有良好的通信能力
Wince对通信的支持是十分灵活的,可完成的通信任务包括:从网络或台式机下载文件;基于Wince的设备之间的信息交换;发送和接收电子邮件;向服务器发送数据;浏览Internet;阅读条形码等。为了实现这些不同的通信要求,Wince能支持多种通信硬件,如串行电缆、红外线收发器,无线收发器、调制解调器和条形码阅读器等。 Wince支持两种基本的通信技术:串行通信和网络通信。
4)支持超过 1400个 Win32 API
有了这些 API,开发者就能利用大量其他的编程资源、工具、软件例子以及文档来进行开发工作,降低了培训成本,缩短了进入市场的时间。
5)模块化设计方法
Wince的模块化设计使得它能够在大量的平台上定制使用,开发者可以使用满足平台系统需求的最小软件模块和组件集合来设计嵌入式系统平台,从而使内存用量最小并最大可能地提供操作系统的性能。
2.3 Linux
Linux是 Unix操作系统的克隆,可以免费使用,遵循 GPL声明,可以自由修改和传播,是一个自由的操作系统。Linux起源于芬兰一个名为 Linus Torvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。从 1991年问世到现在, Linux已发展成为一个功能强大、设计完善的操作系统,不仅能够运行于 PC平台,还在嵌入式系统方面大放光芒,这与 Linux具有的良好特性是分不开的。简单的说,嵌入式 Linux操作系统具有以下主要特性:
1 )内核可裁剪,多任务支持、多用户支持,性能高、稳定性好。
2 )开放的源代码,丰富的软件资源,广泛软件开发者的支持,价格低廉。
3)良好的可移植性。可移植性是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,为运行 Linux的不同计算机平台与其他任何机器进行准确有效的通信提供了手段,不需要另外增加特殊的通信接口。
4)可以运行在许多硬件平台上。目前 Linux已经可以在数十种 32位和 64位芯片中运行,他们包括 Intel X86、Intel XScale、ARM、PowerPC、MIPS、ALPHA、SPARC等。而且能支持对称多处理器(SMP)的机器。
5)不仅可以运行许多自由发布的应用软件,还可以运行许多商品化的应用软件。目前有越来越多的应用程序厂商支持 Linux,而且通过各种仿真软件, Linux系统还可以运行许多其他操作系统的应用软件,如 Windows等。
6)可靠的系统安全。 Linux采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。
7)强大的网络功能。 Linux诞生、成长于网络,自身的网络功能相当强大,具有内置的 TCP/IP协议栈,可以提供 FTP、PPP、Telnet、WWW等服务;同时还可以通过应用程序向其他系统提供服务,例如向其他 Windows用户提供类似于网络邻居的 Samba文件服务。
8)常用嵌入式芯片的驱动集,支持大量的周边硬件设备,驱动丰富。
9)针对嵌入式的存储方案,提供实时版本如 RT Linux和完善的嵌入式解决方案。完善的中文支持,强大的技术支持,完整的文档。 3三种嵌入式操作系统的比较
Linux与嵌入式 VxWorks的比较
VxWorks作为嵌入式实时操作系统,其在通信、国防和工业上的应用有着很大的优势,但是其昂贵的费用也一定程度上使用户望而却步。我们从下面六个方面对 Linux和 VxWorks进行比较。
1)实时性
VxWorks实时性在三种操作系统中是最强的,Linux的实时性需要改进,可用 RT-Linux及 RTAI等模块弥补。
2)内核大小VxWorks内核最小为 8kB,即便加上其它必要模块,所占用的空间也很小,Linux核心从几十 KB到500KB。整个嵌入式环境最小才 100KB左右,并且以后还将越来越小。
1 )购买费用 Linux是免费的,可以从网上下载内核,而VxWorks必须购买,且价格不菲。
2 )技术支持
Linux有全世界的自由软件开发者提供支持,而 VxWorks由开发商一家提供有限的技术支持。
5)应用软件移植
Linux比较容易,代码开放,有许多应用软件支持,而 VxWorks因为许多是封闭系统,所以应用软件移植方面较差。
6)应用领域
由于 Linux内核结构及功能等原因,嵌入式Linux 应用领域非常广泛,特别适于进行信息家电的开发,VxWorks作为嵌入式实时操作系统,其在通信、国防和工业上的应用有着很大的优势。
Linux与嵌入式 Wince的比较 Linux与 Wince在实际的嵌入式系统应用上有各自的优势,下面从九个方面对它们进行比较:
1)开源方面
Linux是开放源代码的,不在存黑箱技术,遍布全球的众多 Linux爱好者都是 Linux开发者的强大技术支持者,Linux的源代码随处可得,注释丰富,文档齐全,易于解决各种问题;而 Windows CE是非开放性OS,使第三方很难实现产品定制。
2)内核大小
Linux的内核小、效率高;而 Windows CE在这方面是笨拙的,占用过多的RAM,应用程序庞大。
3)费用方面
Linux是开放源代码的OS,在价格上极具竞争力,适合中国国情。Windows CE的版权费用是厂家不得不考虑的因素。
4)支持平台
Linux不仅支持 x86芯片,还是一个跨平台的系统。到目前为止,它可以支持20~30种CPU。
5)网络功能
Linux内核的结构在网络方面是非常完整的,它提供了对包括十兆位、百兆位及千兆位的以太网络,还有无线网络、Token ring(令牌环)和光纤甚至卫星的支持。
6)可裁剪性
Linux在内核结构的设计中考虑适应系统的可裁减性的要求,Windows CE在内核结构的设计中并未考虑适应系统的高度可裁减性的要求。
1 )开发难度 Linux开发难度较高,需要很高的技术实力。
2 )调试工具 Linux调试工具不全,调试不太方便,尚没有很好的用户图形界面。
3 )占用内存
嵌入式 Linux占用较大的内存,当然,人们可以去掉部分无用的功能来减小使用的内存,但是如果不仔细,将引起新的问题。
4 结论
随着嵌入式系统应用的持续升温,嵌入式操作系统得到了蓬勃发展,Linux、Wince、VxWorks这三种嵌入式操作系统也凭借着自身的特点,不同的用途在嵌入式市场上各显神通。在中国,嵌入式操作系统可分为两大类型:一类是自主版权的操作系统,如“女娲Hopen”、桑夏2000、DeltaOS操作系统等,另一类是基于 Linux的操作系统。近年来,嵌入式 Linux在中国发展很快,其中,中软Linux、红旗Linux、东方 Linux是业界的代表。如今嵌入式操作系统尚未形成统一的国际标准,而 Linux凭借着源代码的开放性,众多的技术支持,低廉的价格等一系列特征为我们开发国产的嵌入式操作系统提供了方便,因此,我国本土的操作系统也有机会在这个未成熟的市场上与国外抗衡,占领越来越多的市场份额。
本文创新点:本文研究的是基于世界目前上三种通用的嵌入式操作系统,关于它们各自的特点以及应用的场合在国内国外的研究已经非常成熟,但是将三种系统进行比较从而使人更好地对嵌入式操作系统的选择有个清晰的了解则很少人对此进行研究,本文正是基于这点不足而进行的。