本节将介绍嵌入式操作系统。
嵌入式系统通常是指内部包含智能控制器的设备,它具有集成度高、体积小、反应速度快、智能化、稳定及可靠性强等特点。嵌入式实时控制系统必须要非常仔细地研究实时性的保证实施。
嵌入式系统应具有的特点是高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌入式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力;嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行的;嵌入式系统中的软件代码要求高质量、高可靠性,一般都固化在只读存储器或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。
嵌入式软件(Embedded Software),从广义上讲是计算机软件的一种,它也是由程序及其文档组成的。嵌入式软件是嵌入在设备内部并控制设备行为的一种专用软件,其最基本的特点是软件固态化存储在存储芯片或单片机中,而不是存储于磁盘等载体中。嵌入式软件一般在设备启动时自动运行,无须人工干预。通常要求具有实时响应能力,一般不要求复杂的用户界面,也不需用户进行二次开发。
嵌入式软件可分成系统软件、支撑软件(中间件)、应用软件三类,最低层即系统软件,包括操作系统及数据库管理系统。下面定义的嵌入式操作系统、嵌入式数据库、嵌入式中间件、嵌入式应用软件,必须同时符合上述嵌入式软件的定义。
嵌入式操作系统(Embedded Operating System,EOS)是以应用为中心,以计算机技术为基础,软硬件可裁减,对功能、可靠性、成本、体积、功耗有严格要求的专用性计算机系统。嵌入式操作系统是设备信息系统的核心,管理、监控和维护设备硬件和软件资源,支持和调度各种应用软件的运行,实现处理机管理、内存管理、I/O设备管理、文件管理及作业管理。
目前,已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而言的,它除了具备一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等,还有以下特点。
● 可装卸性。开放性、可伸缩性的体系结构。
● 强实时性。EOS实时性一般较强,可用于各种设备控制当中。
● 统一的接口。提供各种设备驱动接口。
● 操作方便、简单,提供友好的图形界面,追求易学易用。
● 提供强大的网络功能,支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。
● 强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多地干预,这就要求负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。
● 固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统。
● 更好的硬件适应性,也就是良好的移植性。
国际上用于信息电器的嵌入式操作系统有40种左右。现在,市场上非常流行的EOS产品,包括3Com公司下属子公司的Palm OS,Microsoft公司的Windows CE和开放源代码的Linux。
Palm OS是一种32位的嵌入式操作系统。Palm提供了串行通信接口和红外线传输接口,利用它可以方便地与其他外部设备通信、传输数据;拥有开放的OS应用程序接口,开发商可根据需要自行开发所需的应用程序。Palm OS是一套具有强开放性的系统,现在有大约数千种专门用Palm OS编写的应用程序,从程序内容上看,小到个人管理、游戏,大到行业解决方案。
Palm OS是一套专门为掌上电脑开发的OS。在编写程序时,Palm OS充分考虑了掌上电脑内存相对较小的情况,因此它只占有非常小的内存。由于基于Palm OS编写的应用程序占用的空间也非常小,所以,基于Palm OS的掌上电脑可以运行众多应用程序。
由于Palm产品的最大特点是使用简便、机体轻巧,因此决定了Palm OS应具有以下特点。
● 操作系统的节能功能。由于掌上电脑要求使用的电源尽可能小,因此在Palm OS的应用程序中,如果没有事件运行,则系统设备进入半休眠的状态;如果应用程序停止活动一段时间,则系统自动进入休眠状态。
● 合理的内存管理。Palm的存储器全部是可读写的快速RAM,动态RAM类似于PC上的RAM,它为全局变量和其他不需永久保存的数据提供临时的存储空间;存储RAM类似于PC上的硬盘,可以永久保存应用程序和数据。
● Palm OS的数据是以数据库的格式来存储的,为保证程序处理速度和存储器空间,在处理数据的时候,Palm OS不是把数据从存储堆拷贝到动态堆后再进行处理,而是在存储堆中直接处理。
● Palm OS与同步软件结合可以使掌上电脑与PC上的信息实现同步,把台式机的功能扩展到了掌上电脑上。
Windows CE也是一个开放的、可升级的32位嵌入式操作系统,是基于掌上电脑类的电子设备操作。Windows CE的图形用户界面相当出色。其中,CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)。与Windows 95/98、Windows NT不同的是,Windows CE是所有源代码全部由微软自行开发的嵌入式新型操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于Win32 API重新开发的、新型的信息设备平台。Windows CE具有模块化、结构化和基于Win32应用程序接口及与处理器无关等特点。Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C++等),使用同样的函数,使用同样的界面网格,使绝大多数的应用软件只需简单修改和移植就可以在Windows CE平台上继续使用。
Windows CE的设计目标是:模块化及可伸缩性、实时性能好,通信能力强大,支持多种CPU。它的设计可以满足多种设备的需要,这些设备包括了工业控制器、通信集线器及销售终端之类的企业设备,还有像照相机、电话和家用娱乐器材之类的消费产品。一个典型的基于Windows CE的嵌入系统通常为某个特定用途而设计,并在不联机的情况下工作。它要求所使用的操作系统体积较小,内有对中断的响应功能。
Windows CE有如下特点。
● 具有灵活的电源管理功能,包括睡眠/唤醒模式。
● 使用了对象存储技术,包括文件系统、注册表及数据库。它还具有很多高性能、高效率的操作系统特性,包括按需换页、共享存储、交叉处理同步、支持大容量堆等。
● 拥有良好的通信能力。广泛支持各种通信硬件,亦支持直接的局域连接及拨号连接,并提供与PC、内部网及因特网的连接,还提供与Windows 9x/NT的最佳集成和通信。
● 支持嵌套中断。允许更高优先级别的中断首先得到响应,而不是等待低级别的ISR完成。这使得该操作系统具有嵌入式操作系统所要求的实时性。
● 更好的线程响应能力。对高级别IST(中断服务线程)的响应时间上限的要求更加严格,在线程响应能力方面的改进,帮助开发人员掌握线程转换的具体时间,并通过增强的监控能力和对硬件的控制能力帮助他们创建新的嵌入式应用程序。
● 256个优先级别。可以使开发人员在控制嵌入式系统的时序安排方面有更大的灵活性。
● Windows CE的API是Win32 API的一个子集,支持近1 500个Win32 API。有了这些API,足
可以编写任何复杂的应用程序。当然,在Windows CE系统中,所提供的API也可以随具体应
用的需求而定。
Linux是一个类似于UNIX的操作系统,Linux系统不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,在各种嵌入式Linux OS迅速发展的状况下,Linux OS逐渐形成了可与Windows CE等EOS进行抗衡的局面。嵌入式Linux OS的特点如下。
● 精简的内核,性能高、稳定,多任务。
● 适用于不同的CPU,支持多种体系结构,如X86、ARM、MIPS、ALPHA、SPARC等。
● 能够提供完善的嵌入式GUI及嵌入式X-Windows。
● 提供嵌入式浏览器、邮件程序、MP3播放器、MPEG播放器、记事本等应用程序。
● 提供完整的开发工具和SDK,同时提供PC上的开发版本。
● 用户可定制,可提供图形化的定制和配置工具。
● 常用嵌入式芯片的驱动集,支持大量的周边硬件设备,驱动丰富。
● 针对嵌入式的存储方案,提供实时版本和完善的嵌入式解决方案。
● 完善的中文支持,强大的技术支持,完整的文档。
● 开放源码,丰富的软件资源,广泛的软件开发者的支持,价格低廉,结构灵活,适用面广。
嵌入式Linux OS与Windows CE相比的优点如下。
● Linux是开放源代码的,不存在黑箱技术,遍布全球的众多Linux爱好者都是Linux开发者的强大技术支持者;而Windows CE是非开放性OS,使第三方很难实现产品定制。
● Linux的源代码随处可得,注释丰富,文档齐全,易于解决各种问题。
● Linux的内核小、效率高;而Windows CE在这方面是笨拙的,占用过多的RAM,应用程序庞大。
● Linux是开放源代码的OS,在价格上极具竞争力,适合中国国情。Windows CE的版权费用是厂家不得不考虑的因素。
● Linux不仅支持x86芯片,还是一个跨平台的系统。到目前为止,它可以支持20~30种CPU,很多CPU(包括家电业的芯片)厂商都开始做Linux的平台移植工作,而且移植的速度远远超过Java的开发环境。如果今天采用Linux环境开发产品,那么将来更换CPU时就不会遇到更换平台的困扰。
● Linux内核的结构在网络方面是非常完整的,它提供了对包括十兆位、百兆位及千兆位的以太网络,还有无线网络、Token ring(令牌环)和光纤甚至卫星的支持。
● Linux在内核结构的设计中考虑适应系统的可裁减性的要求,Windows CE在内核结构的设计中并未考虑适应系统的高度可裁减性的要求。
嵌入式Linux OS与Windows CE相比的弱点如下。
● 开发难度较高,需要很高的技术实力。
● 核心调试工具不全,调试不太方便,尚没有很好的用户图形界面。
● 与某些商业OS一样,嵌入式Linux占用较大的内存,当然,人们可以去掉部分无用的功能来减小使用的内存,但是如果不仔细,将引起新的问题。
● 有些Linux的应用程序需要虚拟内存,而嵌入式系统中并没有或不需要虚拟内存,所以并非所有的Linux应用程序都可以在嵌入式系统中运行。
3Com公司的Palm OS是掌上电脑市场中较为优秀的嵌入式操作系统,是针对这一市场专门设计的系统。它有开放的操作系统应用程序接口(API),支持开发商根据需要自行开发所需的应用程序,具有十分丰富的应用程序。在掌上电脑市场上独占其霸主地位已久。
从技术层面上讲,Palm OS是一套专门为掌上电脑开发的操作系统,具有许多Windows CE无法比拟的优势;Windows CE过于臃肿,不适合应用在廉价的掌上电脑中。
Palm OS是一套具有极强开放性的系统。开发者向用户免费提供Palm OS的开发工具,允许用户利用该工具在Palm OS基础上方便地编写、修改相关软件。与之相比,Windows CE的开发工具就显得复杂多了,这使得一般用户很难掌握。这也是Palm OS与Windows CE的另一个主要区别。
Palm OS、Windows CE、Linux这三种嵌入式操作系统各有不同的特点,不同的用途;但Linux比Palm OS和Windows CE更小、更稳定,而且Linux是开放的OS,在价格上极具竞争力。