自己目前开发的嵌入式开发所用的 *** 作系统是VxWorks,以前读大学的时候用的最多的是linux *** 作系统,但是,对于这两种 *** 作系统之间到底有什么区别,还真没有真正去细心的总结过,被别人问起时,难免有些尴尬的感觉
Linux是一类Unix计算机 *** 作系统的统称。Linux *** 作系统的内核的名字也是“Linux”。Linux *** 作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的 *** 作系统。Linux得名于计算机业余爱好者Linus Torvalds。
Linux的应用
过去,Linux主要被用作服务器的 *** 作系统,因为它的廉价、灵活性及Unix背景。传统上,以Linux为基础的“LAMP(Linux, Apache, MySQL, Perl/PHP/Python的组合)”技术,除了已在开发者群体中广泛流行,它亦是现时提供网站服务供应商最常使用的平台。 基于其低廉成本与高度可设置性,Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及移动装置等。在移动电话上,Linux已经成为Symbian OS的主要竞争者;而在移动装置上,则成为Windows CE与Palm OS外之另一个选择。目前流行的TIVo数码摄影机使用了经过客制化后的Linux。此外,有不少硬件式的网络防火墙及路由器,例如部份LinkSys的产品,其内部都是使用Linux来驱动、并采用了 *** 作系统提供的防火墙及路由功能。 采用Linux的超级电脑亦愈来愈多,根据2008年11月的TOP500超级电脑列表,现时世上最快速的超级电脑使用Linux作为其 *** 作系统。而在表列的500套系统里,采用Linux为 *** 作系统的,占了439组(即87.8%)。
2006年开始发售的SONY PlayStaTIon 3亦可使用Linux的 *** 作系统,它有一个能使其成为一个桌面系统的Yellow Dog Linux。之前,Sony亦曾为他们的PlayStaTIon 2推出过一套名为PS2 Linux的DIY组件。Ubuntu自9.04版本,恢复了PPC支持(包括PlayStaTIon 3)。 而随着OLPC的XO-1,华硕的Eee PC等低价电脑的推行,许多人乐观的认为在低端PC市场,linux的市场占有率正在快速的增长。但在Windows进入此一市场后,Linux的市占率快速下滑。现在Windows系统在所有的PC市场中,都占有绝对优势。
VxWorks 是美国 Wind River System 公司( 以下简称风河 公司 ,即 WRS 公司)推出的一个实时 *** 作系统。Tornado 是WRS 公司推出的一套实时 *** 作系统开发环境,类似Microsoft Visual C,但是提供了更丰富的调试、仿真环境和工具。
嵌入式Vxworks系统的主要应用领域主要有以下几方面:
1.数据网络:如:以太网交换机、路由器、远程接入服务器等
2.远程通讯:如:电信用的专用分组交换机和自动呼叫分配器,蜂窝电话系统等
3.医疗设备:如:放射理疗设备
4.消费电子:如:个人数字助理等
5.交通运输:如:导航系统、高速火车控制系统等
6.工业:如:机器人
7.航空航天:如:卫星跟踪系统
8.多媒体:如:电视会议设备
总之,VxWorks的系统结构是一个相当小的微内核的层次结构。内核仅提供多任务环境、进程间通信和同步功能。这些功能模块足够支持VxWorks在较高层次所提供的丰富的性能的要求。
VxWorks主要应用于电信级别的数通等产品,而linux主要应用于消费类、工控产品等
微内核、宏内核内核中提供各种服务的成分与使用这种服务的进程之间形成一种client/server关系,这种服务并不一定非得留在内核中,它本身也可以被设计实现成“服务进程”,其中必须留在内核中的部分只有进程间的通信,如果把这些服务从内核转移到进程的层次上,那么内核本身的结构就可以大大减小和减化,而各个服务进程也可以单独设计、实现及调试。
微内核便是将服务转移到进程上的一种内核模式,主要应用在实时系统和嵌入式系统上,主要是因为通常这些系统都不带磁盘,整个系统必须都放在EPROM中,常常受到存储空间的限制,而且所需的服务也比较单一,如PSOS,VxWorks等。
宏内核是一种传统的内核结构,它将进程管理,内存管理等各项服务功能都放到内核中去,通常用在通用式内核上,如UNIX,linux等。
设备驱动部分的比较和分析由于linux *** 作系统和linux引导装载器在结构上的分离,使得它倆之间的设备驱动程序不能够通用,当然在芯片的硬件初始化一些硬件相关的代码上可以互相借鉴。而VxWorks的BOOTROM和运行版本的设备驱动是相同的,因为它的运行版本和BOOTROM的结构是一致的,使用同一 *** 作系统内核。linux *** 作系统的设备驱动运行在内核空间,用户进程运行在用户空间。在linux *** 作系统中,内核空间和用户空间的内存管理和映射方式是不同德,应用和设备驱动在数据交换时会涉及到不同的内存空间,会影响到一定效率,但这个问题可以通过修改系统内存空间配置等方法来解决。VxWorks *** 作系统没有分开内核空间和用户空间,设备驱动和应用都运行于同一空间,相互之间的内存都可以访问,数据交换非常方便,但是这种结构的稳定性就不如linux系统好,两种 *** 作系统都提供了很多设备驱动的资源和模板。但是由于linux的开源特性,它提供的设备驱动的种类和数量远远超过了VxWorks.
Linux优势更大,Linux的优点是你如果要入行相对可选择的余地更大。VxWorks用的公司相对不是太多,并且如果学会Linux,再学VxWorks并不困难,反过来则有一定困难。
VxWorks比Linux的优点是实时性好,在开发方面调试工具之类的比Linux好,但是国内你要找到一个很懂VxWorks的人不多,但懂Linux的就很多。
入门的话,学好C语言,试着移植一些驱动到VxWorks里即可,VxWorks兼容POSIX规范,我想你开发的难度应该不是特别大。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)