嵌入式系统设计与实践:Linux篇
上QQ阅读APP看书,第一时间看更新

1.3 嵌入式操作系统

嵌入式操作系统EOS(Embedded Operating System)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌入式系统的全部软、硬件资源的分配、调度,控制、协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点。相对于一般操作系统而言,EOS除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下特点:

(1)可装卸性。开放性、可伸缩性的体系结构。

(2)强实时性。EOS实时性一般较强,可用于各种设备控制当中。

(3)接口统一。统一的接口,提供各种设备驱动接口。

(4)图形界面。操作方便、简单、提供友好的图形GUI,易学易用。

(5)强大的网络功能。支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。

(6)强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。

(7)固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统。

(8)更好的硬件适应性,也就是良好的移植性。

国际上用于信息电器的嵌入式操作系统有40种左右。现在,市场上非常流行的EOS产品,包括3Com公司下属子公司的Palm OS,全球占有份额达50%,而Microsoft公司的Windows CE(简称Win CE)不过29%。在美国市场,Palm OS更以80%的占有率远超Win CE。这都归功于开放源代码的Linux很适于做信息家电的开发。

1.3.1 DOS

微软一开始选用了以帕特森的Q-DOS(Quick and Disk Operating System)为基础再扩充功能而成的MS-DOS,主要采用由IBM公司提供的使用8088微处理器的计算机作开发平台。它是单用户单任务操作系统,由于系统小所以特别适合一些功能简单的装置使用,如LED看板。

1.3.2 Windows CE

虽然微软Windows系统已经称霸了PC桌面环境,但是对于嵌入式系统这块大饼,微软也是垂涎已久。桌面Windows操作系统对于嵌入式系统来说自然是太过于庞大,于是微软推出精简版的Windows CE作为进攻嵌入式系统的主力。但是跟微软一系列Windows系统一样,Windows CE也承袭了原有的缺点:太耗系统资源、不稳定、效率不佳等。不过新版本整个架构重新改写后的确改进了不少缺点。目前Windows CE多数用于PDA、Thin Client等。

1.3.3 Palm OS

Palm Computing公司的嵌入式操作系统,目前最主要应用在PDA,是市场占有率较高的PDA操作系统。Palm操作系统架构非常简洁,因裁减很多功能,如内存管理、多任务等,使得Palm可以几乎不耗系统资源,硬件需求低,整体耗电量可压缩到非常低,因此采用Palm操作系统的PDA具有待机时间长的优点。

1.3.4 EPOC

它是由英国手持装置大厂Psion所开发,常用于PDA与手机结合的场合。最有名的例子是Nokia 9110系列手机,它就是采用EPOC系统。

1.3.5 VxWorks

VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。其拥有良好的持续扩展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导、飞机导航等。在美国的F-16、FA-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。

1.3.6 μC/OS

μC/OS简单易学,提供了嵌入式系统的基本功能,其核心代码短小精悍,如果针对硬件进行优化,还可以获得更高的执行效率。但是μC/OS相对商用嵌入式系统来说还是过于简单,而且存在开发调试困难的问题。

μC/OS的出现和应用也只是近年来的事,其迅猛的发展证明了开放源码软件的巨大生命力。相信经过广大用户的不断丰富和完善,μC/OS的功能将日趋成熟,应用也会更加广阔。

1.3.7 ucLinux

ucLinux是免费软件运动的产物,包含丰富的功能,包括文件系统、各种外调驱动程序、通讯模块、TCP/IP、PPP、HTTP,甚至WEB服务器的代码。在INTERNET上流传的ucLinux已经被移植到当前几乎所有的硬件平台上,功能与PC机上运行的Linux不相上下,其代码十分复杂,要完全移植没有必要也十分困难。但ucLinux的代码经过世界范围内的优化,稳定可靠而且高效,所有模块的代码都可以从INTERNET上获得,可以进行模块移植。

1.3.8 Linux

Linux操作系统不仅应用于网络服务器与集群系统,并占嵌入式市场50%以上的份额,那么究竟Linux操作系统有怎样独特的特点呢?

1.开放源代码、模块化设计

Linux采用GPL授权,除了把源代码公开以外,任何人都可以自由使用、修改、散布,而Linux核心本身采用模块化设计,让人很容易增减功能,例如若平台并不需要蓝牙的功能,只要不把这项功能加入即可,什么时候需要蓝牙功能,则把该功能模块加入,重新编译内核即可。由于这样的高弹性,就可以配置出最适合硬件平台的核心来。与Linux相比,Windows是走封闭源代码的路线,所以完全无法得知或修改它的核心部分。另外因为Linux是采用GPL授权自然就没有什么授权费或保密协议的约束。

2.稳定性

Linux不属于任何一家公司,但是它的开发人员却是全世界最多的,每天在全球都有无数的人参与Linux Kernel的改进、除错、测试,这样严苛的条件造就了高度稳定性的Linux。就因为如此,Linux虽不是商业的产物但是质量却不逊于商业产品。

3.网络功能强大

Linux的架构是参照UNIX系统而来,因此Linux也承袭了UNIX强大的网络功能。在这个每样事情都讲究网络的时代下,只能说是Linux大放异彩的年代。未来可能家里的电冰箱、冷气、电视机都会连上网络。如何增强这些家电的网络功能?Linux可以办到。

4.跨平台

Linux一开始是基于Intel 386机器而设计的,但是随着网络的普及,各式各样的需求涌现,因此就有许多工程师致力于各式平台的移植,造成了Linux可以在x86、MIPS、ARM、PowerPC、Motorola 68k、Hitachi SH3/SH4、Transmeta等平台上运作的盛况。这些平台几乎涵盖了所有嵌入式系统所需的CPU,因此选择Linux就可以把更多的硬件平台纳入考虑的范围。

嵌入式环境不如x86的PC机那样单纯,嵌入式环境所采用的CPU架构很多,使用Linux开发,就等于有更多硬件的选择。硬件成本是商业公司考虑的一大重点,选择多自然可以找到最合适的硬件,对于公司的竞争力是有极大帮助的。

5.应用软件众多

自由软件世界里有个很大的特色就是软件相当多,而且几乎都是符合GPL标准,换句话说,大家都可以自由取用,因为这些软件多半是由工程师业余空暇时间所开发,而且不以营利为目的,因此也不能保证这些软件完全没有BUG,但是仍旧有许多杀手级的软件出现,大家熟知的KDE与GNOME便是很好的证明,当然也有与嵌入式系统较为相关的,如arm-linux-gcc编译器、Kdevelop整合式开发环境等。

应用软件通常都会先在PC端模拟出嵌入式的环境,并直接在上面开发,因此用的工具也都与开发一般桌面软件类似,良好的工具能够提高开发的速度。

6.选择多样

多数公司有能力自己制作嵌入式Linux系统,因为程序代码全部都开放在那里,可以随心所欲地设计出自己想要的Embedded Linux系统,但是有更多的公司的业务重点不在于此,这时也可以选择购买商业版的Embedded Linux系统,如有名的Redhat公司、Lineo、MontaVista等,这些都是商业的Linux公司,购买他们的产品就可以得到完整的服务,因此商业或非商业取决于你的需求。