嵌入式操作系统VxWorks和Linux对比.docx
《嵌入式操作系统VxWorks和Linux对比.docx》由会员分享,可在线阅读,更多相关《嵌入式操作系统VxWorks和Linux对比.docx(13页珍藏版)》请在冰豆网上搜索。
嵌入式操作系统VxWorks和Linux对比
较之Vxworks系统
因为我先前的工作主要是基于Vxworks的,所以在此对Linux系统和Vxworks系统做一
个简单的比较,这个比较并非完全技术层面,而我对于Linux的了解也仅仅是“刚刚上路”,所以就是代表我的一家之言,仅供参考。
Linux和Vxworks相比,技术上有两个比较吸引人的特点,第一是内存管理,使得用户进程之间地址空间独立,从而可以避免应用程序漏洞导致系统崩溃的问题,而在基于Vxworks的系统中,内存操作相关问题,在系统致命问题中占有很高的比例。
第二是应用程序动态执行,这极大的提升系统扩展性能,减小现网运行设备的升级维护压力,电信级设备中,这应该是一项重要的性能指标。
当然,理论上Vxworks系统也能实现。
下面的表格是两者的综合比较。
比较项目
Linux
Vxworks
版权费用
GPL,免费
昂贵
技术支持方式
各Linux网络社区
WindRiver
网络资源
丰富,开源社区活跃
较少
系统复杂度
复杂
相对简单
核心稳定性
高
高
系统稳定性
高
对工程师能力依赖较大
调试难度
较大
小,系统基本上透明,且Tornado提供完善的调试手段,但对于内存问题,缺乏好的调试机制
实时性能
差,可改进,还是较差
高
安全性能
Linux上的hacker活跃
安全
扩展性能
强
弱,可改进,但难度大
网络特性支持
全,且免费
需要移植,开发,或者购买
管理特性支持
丰富
需要移植,开发,或者购买
人力资源
系统专家
少
较少,由于复杂度低,提升快
应用层专家
多,得益于Linux社区
较少
新手培训
系统复杂,上手慢,开发环境配置复杂,各种脚本学习复杂,所以培训周期长,难度大
由于有开发环境Tornado的支持,可以傻瓜式开发,所以培训周期短
linux:
linux其实我没有什么资格来说,因为以前一直是在使用之中,没有研究过他的内核,不过最近打算看看内核部分。
linux不是一个实是的操作系统,首先我们要搞清楚这一点。
它的中断出发的时候是放如到一个管理结构中去,然后由仲裁机构去判断让谁先处理。
所以在处理中存在一个处理的延时。
在对反应时间有严格要求的场合,linux是不能够胜任的。
linux的好处是代码公开,你可以去学习,研究,改进它。
这个比windows要好的多。
对驱动的支持也比较好,显示那部分用x11就可以了。
vxworks:
vxworks是这几种操作系统中最贵的一个,好象要20万左右的吧,具体不知道也没有买过,源码不公开,主要用于商业领域和科研领域。
飞到火星去的探测器上安装的就是这个系统。
实时性好。
linux,vxworks,wince均是可以用于嵌入式领域的操作系统,其功能跟PC上的windowsxp之类的作用类似,均是为了方便管理硬件和软件而使用的。
而ARM,是一家公司的名称,也是一大类型微控制器/微处理器的统称(均是以ARM公司提供的CPU核为基础开发)。
在ARM之外,还有MIPS,PowerPC等几种类型的CPU用在嵌入式领域,你可以把它们看作是PC平台的CPU,只是它们的使用领域不是桌面电脑而已,并集成了很多功能模块。
所以你的问题的回答:
1,有脱离ARM的,比如说在MIPS上开发做产品,也是属于嵌入式,嵌入式LINUX可以移植到MIPS上;WINCE和VXWORKS也是一样。
为什么我们听说ARM会比较多,那是因为它的推广工作做得好,价格功耗有优势,国际上的知名的半导体大厂都有使用了ARM内核的产品,所以可以说是百花齐放的一个程度。
2,嵌入式开发基本上使用C,也可以用C++但很少用。
在涉及到底层(硬件)部分,有需要用到少量的汇编(当然汇编格式与所使用的CPU类型有关).
3,在这个问题里,ARM是一个CPU,一个产品除了CPU外,还有别的部件,比如说温度传感器,各种通讯接口,这些都是硬件的东西,是实实在在的芯片构成的。
假如这个产品不复杂,但又用了ARM,一样可以不使用操作系统,直接用普通写法的程序去控制硬件(业内通俗说法叫:
裸奔);但是当这个产品的功能很复杂,又用了以太网,又用了界面,又用了很多高级的硬件,比如说智能手机,那么它就需要一个嵌入式的操作系统去控制手机,这样对于手机来说,产品的开发速度会加快,而且维护也相对容易,改进时的修改工作量也较少。
你在市面上见到的大部分智能手机都是基于WINDOWSMOBILE系统的,当然NOKIA的SYMBIAN也属于嵌入式操作系统,只是其是专用于手机,还有少部分的智能手机比如MOTO的部分智能手机就是用的嵌入式LINUX的系统。
所以,对于一个较复杂的产品,工程师是各司其职,有专门负责硬件电路部分的,有专门去修改操作系统的驱动的,有专门去编写上层的应用软件的,这样就有了嵌入式硬件工程师,嵌入式软件工程师之分了,很多中小公司很多工作都是一人做完的,所以分类就不是那么细了。
4,这个问题3中已经回答了一部分,跑上操作系统的,基本上都是你说的那样划分的,因为每一部分的工作都比较复杂,所以最好专人负责各自的部分,这样项目进度才能保证.
其实你问的这些,书上网上都有的,搜一搜就有了~~~~
风河强化VxWorks和Linux双操作系统平台战略
风河系统公司(WindRiverSystems)在日前举办的第六届全国嵌入式系统学术交流会上特别安排了Linux平台产品的演讲。
无独有偶,风河公司8月份也在美国硅谷地区举办了一系列Linux技术的系列研讨会。
通过参加这些研讨会,嵌入式软件开发人员可以深入了解,VxWorks和Linux分别具有什么特色,适用于哪些应用,以及各种选择的结果会为他们带来什么样的收益,同时他们又必须做出什么样的舍弃,同时也显示出风河公司的双操作系统平台为电子产品开发商提供更多的选择。
近年来,Linux在嵌入式软件领域十分活跃,为这个市场带来了新的机会。
但是,Linux本身仅仅只是一个操作系统,虽然得到许多嵌入式软件开发人员的青睐,但是在开发工具、方面和软件工程规范等方面却存在明显不足,由于采用开放源代码而获得的成本降低常常被开发效率的降低而抵消。
另一方面,VxWorks作为历经多年市场考验的主流嵌入式操作系统,在一些特定的应用领域仍然占据着不可替代的地位,而由此产生的开发工具、方法和流程则可帮助电子产品制造商更好地利用Linux及开放源代码技术。
市场调查研究表明,在电子产品制造商用于嵌入式软件开发的费用中,对各种嵌入式软件模块进行集成就占去了90%以上,而真正用来购买这些软件和服务的费用不到10%。
随着Linux这类开放源代码软件的普及,取得软件部件的成本将会更低,而企业花在开发与集成方面的费用比例将会更高。
风河公司的VxWorks操作系统以及以此为基础的嵌入式开发平台在嵌入式软件开发领域长期居于领导地位,同时在系统集成方面也积累了丰富的经验。
去年以来,风河公司开始与知名的Linux厂商和相关的社团组织展开合作,把自己的传统优势用于支持Linux环境中的嵌入式软件开发。
风河公司中国首席代表韩青先生指出:
“我们显然不会鼓励客户从VxWorks转向Linux,因为这对客户并不是适当的选择。
但是,基于我们对嵌入式软件开发的经验,我们有足够的能力帮助那些希望利用Linux来开发自己产品的电子产品制造商。
我们所举办的一系列研讨活动,旨在探讨如何实现传统In-House的RTOS向开放源代码平台的迁移,以及在此过程中设备软件开发者应该考虑的诸多决策性问题,包括成本控制、上市时间、硬件支持、性能优化以及知识产权等。
我们同时还向开发人员提供传统嵌入式软件开发向Linux环境迁移时的产品、技术与支持,其中包括开发工具、嵌入式Linux平台以及开放源代码技术、培训和社区资源。
更重要的是,我们将通过一系列的研讨活动把传统嵌入式软件开发方法推向DSO的阶段。
”
YankeeGroup分析报告显示,设备软件生命周期的发展趋势正在走向集成化、构件化、可重用、标准化、开源以及开发技能的归一化,这就是DSO(DeviceSoftwareOptimization)。
由于广泛而深入地吸收了过去20多年整个软件产业的经验,DSO可以更好地保证设备软件的质量和开发效率。
风河系统公司是最早宣布全面提供DSO平台支持的厂商。
面向电子设备市场,风河公司提供集成化的DSO解决方案,帮助电子设备制造厂商以更加简便、快速、低成本的方式开发可靠的电信设备和网络解决方案。
WindRiverWorkbench是业界第一也是唯一基于Eclipse的开放式设备专用软件开发解决方案,在顶级的集成开发环境中起到关键性作用。
更重要的是,Workbench集成开发环境同时支持基于VxWorks和流行的Linux操作系统的开发,可以在电子产品从设计、开发到售后服务整个过程中降低软件成本,从而提高企业的整体竞争力。
市场研究专家普遍认为,Linux在嵌入式软件领域的应用仍然处在十分年轻的阶段,开放源代码社区的生态环境比较有利于软件开发者个人的发展,但如何从电子产品制造商企业层面来提升软件开发效率、降低软件成本,仍然是其中最大的挑战。
风河公司的一系列研讨活动表明,该公司正在将其多年积累的嵌入式软件开发技术、工具和经验推展到Linux环境中,把VxWorks和Linux双操作系统平台战略推向新的阶段。
Linux和WinCE/Windows的优缺点。
让我们逐条分析评价Linux和WinCE/Windows的优缺点。
1.支持多种硬件平台由于嵌入式设备硬件平台的多样性,CPU芯片的快速更新,嵌入式操作系统要求支持常用的嵌入式CPU,如X86,ARM,MIPS,POWERPC等,并具有良好的可移植性。
另外还需要支持种类繁多的外部设备。
Linux支持以上几乎所有的主流芯片,并且还在不断的被移植到新的芯片上。
而在这方面,WinCE显然差得很远。
2.占有较少的硬件资源由于多数嵌入式系统具有成本敏感性,处理器速度较低,存储器空间较少,这要求嵌入式OS体积小,速度快。
Linux体系结构比较灵活,易于裁减,可以小到2Mflash,4MRAM。
而WinCE对资源的要求更高。
3.高可定制性由于不同的嵌入式应用对系统要求各不相同,这要求嵌入式OS具备高可定制性,能够根据需要方便的增加和减少各项功能模块。
这一点对于嵌入式领域至关重要,而Linux由于图形系统不在内核中,且支持模块机制,内核可根据需要加入或去掉功能。
其外围工具拥有众多选择,更由于可以自由修改源代码,具有极强的可定制性。
而WinCE/Windows根本无法做到这一点。
4.具有实时处理能力实时应用分为硬实时和软实时两大类,嵌入式OS需要明确是否支持实时和支持哪一类实时应用,需要提供最坏情况响应时间为多长。
Linux和WinCE/Windows最初设计时都没有考虑实时应用,但众多的实时Linux项目已使Linux具备了硬实时和软实时处理能力,硬实时有RT-Linux和RTAI,而2.6中加入了可抢占核心,使得Linux具备了软实时处理能力,此外还有Timsys和Montavista等实时Linux实现。
Linux自由开发模式的优点得到了充分的体现。
Windows虽然也有第三方提供类似于RT-linux的实时功能,但由于微软未提供这方面的支持,也由于Windows可靠性不能满足要求,很少有人在实时领域使用Windows。
但RT-linux已经在美国航天部门,印度军方等得到了广泛应用。
还有Montavista,Timsys的实时Linux都有很多成功案例。
5.具备强大的网络功能现在,越来越多的嵌入式设备需要具备网络功能。
这要求嵌入式OS支持常用的网络协议和可靠的网络功能。
Linux的网络功能经过几次改进,其效率,功能都很突出。
且具有众多的网络工具,支持几乎所有常见的网络协议。
这些使得Linux在网络设备中倍受青睐,很多防火墙,低端路由器等中使用的都是Linux。
而未闻WinCE/windows在这方面有什么应用。
6.高安全性和高可靠性嵌入式设备往往对安全性和可靠性要求很高,这要求作为基础软件的嵌入式OS具有高安全性和高可靠性。
如骨干网的路由器,交换机等。
Linux的可靠性是经过实践检验的,并进一步向高端发展,冲击Vxworks,Unix的市场。
安全性方面Linux病毒极少,并拥有众多安全增强,有的安全增强Linux达到了B1级别(红旗RFSOS通过了国家GB17859第三级,等同于TCSECB1级)。
而Windows病毒众多,漏洞不断,虽然微软大力宣传其通过了CC标准EAL4级,但是需要说明的是,EAL4仅仅说明Windows在多大程度上满足了它的安全目标,显然更为重要的是这个目标是什么,事实上,它通过的是CAPP的EAL4级,仍然相当于TCSECC2级,Win2000的可靠性比起98等来说有了明显提高,但尚不足以向高端冲击,其安全性问题也会大大影响它的可靠性,这二者是紧密联系的,不能孤立讨论。
7.具有完善的嵌入式GUI和嵌入式浏览器面向用户的嵌入式终端设备如SmartPhone等,都要求嵌入式OS具有功能完善,控件丰富的嵌入式GUI,并支持功能强大的嵌入式浏览器。
在这方面WinCE有完善的解决方案,Linux也有QT/Embedded等GUI,Opera等嵌入式浏览器,拥有众多的选择。
8.实现嵌入式日志文件系统,具备断电保护能力。
这些功能Linux和Windows都能达到。
9.能够提供完善的开发工具集。
Linux下的开发工具众多,但不如Windows开发工具易用。
不过Windows的开发工具不是为嵌入式领域设计的,功能也不完善。
10.能够快速启动启动速度二者差不多,但很多嵌入式设备并不需要图形界面,且由于Linux有源代码,在硬件固定的情况下可以加速启动,这时Linux就比WinCE/Windows启动快多了。
通过以上分析,可以很清楚地看到,总体比较而言,在嵌入式领域Linux比WinCE/Windows具有明显优势。
正因为如此,嵌入式Linux比WinCE/Windows应用领域要广泛的多。
WinCE的优势在于PC衍生产品,如PocketPC,高端PDA等。
但在其他众多的嵌入式领域中,WinCE就并不适合了。
在嵌入式领域,Linux与WinCE/windows均为后发,Windows不拥有在PC领域的垄断优势,二者公平竞争,这时更能清楚地看出他们的实用性差别和发展潜力。
嵌入式给了Linux一个自由广阔的天地,充分体现出了OpenSource的巨大优势,我们有理由相信:
未来是Open的世界!
三种通用嵌入式操作系统的分析与比较
本文介绍了三种通用的嵌入式操作系统VxWorks、WindowsCE、Linux以及它们的各自的特点,并通过比较他们的优缺点分析他们各自适应的领域
1嵌入式操作系统
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
作为嵌入式系统的重要组成部分,嵌入式操作系统EOS(EmbeddedOperatingSystem)是随着嵌入式系统的发展而出现的,是嵌入式系统发展到一定阶段的产物。
嵌入式操作系统的出现,大大提高了嵌入式系统的开发效率,同时也促进了嵌入式的发展。
嵌入式操作系统并不是简单嵌入的操作系统,它除了具有通用操作系统的基本特点外,在小巧、实时性、可装卸、可固化代码、强稳定性、弱交互性、具备统一接口等方面有突出的特点。
2三种典型EOS分析
作为在嵌入式操作系统市场通用的三种系统,Linux、VxWorks、WindowsCE在实时性、内核大小、调度算法、通信能力和开发环境等方面都有自己的特点,下面就对这几种系统的特点做一分析。
2.1VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统,依据其良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。
它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。
应用实例包括美国的F-16、FA-18战斗机、B-2隐形轰炸机、火星探测器、爱国者导弹等。
VxWorks的特点有:
1)高实时性实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件作出响应的能力。
实时性的强弱是以完成规定功能和作出响应时间的长短来衡量的。
VxWorks的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。
VxWorks的任务调度策略以可抢占式调度(PreemptivePriorityScheduling)为基础,辅以时间轮转调度算法(Round-RobinScheduling)机制。
这一调度算法使得VxWorks能够及时响应高优先级的任务。
而同级任务间则可选择时间片轮转法使多个同优先级的任务并发执行。
2)可裁剪性VxWorks的可裁剪性,可以使开发者根据自己应用程序的需要来选择操作系统中部件,用户没用到的功能模块都可以去掉。
VxWorks由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。
VxWorks内核最小为8kB,即便加上其它必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。
由于它的高度灵活性,用户可以很容易地对这一操作系统进行定制或作适当开发,来满足自己的实际应用需要。
3)友好的开发调试环境
VxWorks的开发环境Tornado是一个友好的开发环境,它可以运行在多种主机上,包括Sun、HP、Dec、Mips等,主机的操作系统则支持Unix、WindowsNT等。
系统使用的流行图形界面方便使用者较快地理解和掌握。
VxWorks支持应用程序的动态链接和动态下载,使开发者省去了每次调试都将应用程序与操作系统内核进行链接和下载的步骤,缩短了编辑调试的周期。
而VxWorks具有的可视化图形界面的调试工具,也很大程度地方便了开发者的调试工作。
2.3Linux
Linux是Unix操作系统的克隆,可以免费使用,遵循GPL声明,可以自由修改和传播,是一个自由的操作系统。
Linux起源于芬兰一个名为LinusTorvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。
从1991年问世到现在,Linux已发展成为一个功能强大、设计完善的操作系统,不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,这与Linux具有的良好特性是分不开的。
简单的说,嵌入式Linux操作系统具有以下主要特性:
1 )内核可裁剪,多任务支持、多用户支持,性能高、稳定性好。
2 )开放的源代码,丰富的软件资源,广泛软件开发者的支持,价格低廉。
3)良好的可移植性。
可移植性是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。
Linux是一种可移植的操作系统,为运行Linux的不同计算机平台与其他任何机器进行准确有效的通信提供了手段,不需要另外增加特殊的通信接口。
4)可以运行在许多硬件平台上。
目前Linux已经可以在数十种32位和64位芯片中运行,他们包括IntelX86、IntelXScale、ARM、PowerPC、MIPS、ALPHA、SPARC等。
而且能支持对称多处理器(SMP)的机器。
5)不仅可以运行许多自由发布的应用软件,还可以运行许多商品化的应用软件。
目前有越来越多的应用程序厂商支持Linux,而且通过各种仿真软件,Linux系统还可以运行许多其他操作系统的应用软件,如Windows等。
6)可靠的系统安全。
Linux采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。
7)强大的网络功能。
Linux诞生、成长于网络,自身的网络功能相当强大,具有内置的TCP/IP协议栈,可以提供FTP、PPP、Telnet、WWW等服务;同时还可以通过应用程序向其他系统提供服务,例如向其他Windows用户提供类似于网络邻居的Samba文件服务。
8)常用嵌入式芯片的驱动集,支持大量的周边硬件设备,驱动丰富。
9)针对嵌入式的存储方案,提供实时版本如RTLinux和完善的嵌入式解决方案。
完善的中文支持,强大的技术支持,完整的文档。
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的源代码随处可得,注释丰富,文档齐全,易于解决各种问题;而WindowsCE是非开放性OS,使第三方很难实现产品定制。
2)内核大小
Linux的内核小、效率高;而WindowsCE在这方面是笨拙的,占用过多的RAM,应用程序庞大。
3)费用方面
Linux是开放源代码的OS,在价格上极具竞争力,适合中国国情。
WindowsCE的版权费用是厂家不得不考虑的因素。
4)支持平台
Linux不仅支持x86芯片,还是一个跨平台的系统。
到目前为止,它可以支持20~30种CPU。
5)网络功能
Linux内核的结构在网络方面是非常完整的,它提供了对包括十兆位、百兆位及千兆位的以太网络,还有无线网络、Tokenring(令牌环)和光纤甚至卫星的支持。
6)可裁剪性