1.嵌入式操作系统特点及分类

嵌入式操作系统(Embedded Operating System,EOS)是一种支持嵌入式系统应用的实时操作系统,是嵌入式系统极为重要的组成部分。

1.1嵌入式操作系统的特点

目前存在很多种嵌入式操作系统,如VxWorks、μC/OS、嵌入式Linux和WinCE等,这些操作系统功能日益完善,在嵌入式系统中能实现很多桌面通用操作系统具备的功能。嵌入式操作系统除了具有通用操作系统的基本特点之外,更有其特殊的部分,如高实时性、可裁剪性、高可靠性、接口统一、网络功能强大、体积小巧、固化代码、操作简单易学等特点,其中重要的包括高实时性、可裁剪性和高可靠性等。

1)高实时性

大多数嵌入式操作系统工作在对实时性要求很高的场合,如监测控制、数据采集和信息处理等。这些过程往往是一个连续的过程,一个过程必须在一个定长的时间内完成,否则若逻辑和时序出现偏差,将会引起严重后果。因此,嵌入式操作系统中实时性是其重要特征之一。

2)可裁剪性

由于嵌入式系统是面向单一设备的单一应用,其环境复杂多变,如硬件环境中除CPU之外,其他硬件并没有标准化,而系统的应用对功能、可靠性、成本、体积和功耗等有一定需求。因此,嵌入式操作系统必须是开放的、可伸缩的体系结构,其中的很多部件必须具有很强的可裁剪性,便于修改,从而能适应不同嵌入式系统的需求。

3)高可靠性

高可靠性是嵌入式系统的基本特征之一,嵌入式系统中,出于安全方面的考虑,要求系统不能崩溃,而且还要有自愈能力。因此,作为嵌入式系统的最基本软件的操作系统,需要尽可能减少安全漏洞和不可靠的隐患,通过系统监控进程监视各进程的运行状况,在遇到异常情况时采取措施对其进行修复,实施有利于系统稳定可靠的方法将问题解决,从而从嵌入式系统的底层增强可靠性。

4)统一的接口

嵌入式操作系统可提供各种设备的驱动接口。随着各类嵌入式操作系统的开发,考虑到为嵌入式应用软件的设计者提供统一的服务接口,就必须约定嵌入式系统提供的接口,从而为嵌入式应用软件的运行提供无关性平台。

5)网络功能强大

嵌入式操作系统必须不仅能支持TCP/IP协议,还能支持其他如UDP/PPP协议等,并为嵌入式系统提供统一的MAC访问层接口,从而为各种移动计算设备预留接口,提供对更多的嵌入式系统的支持。

1.2嵌入式操作系统的分类

当前,常用的嵌入式操作系统可分为商用系统、专用系统以及开放系统三大类。

1)商用嵌入式操作系统

商用嵌入式操作系统功能较强大,辅助工具较齐全,可应用的范围也较广,在许多领域都有应用,例如Microsoft的WindowsCE、WindRiver的VxWorks、EPSON的ROS33、CoreTek的 DeltaOS、pSOS+、3Com的PalmOS以及中科院的Hopen等。

2)专用嵌入式操作系统

专用嵌入式操作系统一般不对用户公开,它是一些专业的公司针对该公司产品所特制的嵌入式操作系统。专用嵌入式操作系统功能相对较弱,但具有较强的针对性,而且比普通的商用嵌入式操作系统更加安全可靠。

3)开放嵌入式操作系统

开放嵌入式操作系统是近年来迅速发展的一类操作系统。因为应用系统的开发者可免费得到这些系统的源代码,因此开发难度低。但开放嵌入式操作系统的功能简单,技术支持以及系统的稳定性也相对较差,因此对应用系统开发者提出了较高的要求。

2.嵌入式操作系统的总体架构

嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面和标准化浏览器Browser等。随着嵌入式系统的发展,嵌入式操作系统的体系结构出现了单块结构、分层结构、微内核结构和构件化结构等多种。

1.单块结构

单块结构是最早出现的一种结构,该结构将整个嵌入式实时操作系统看成一个整块,内部分为若干个模块,模块之间直接相互调用,不分层次,形成网状调用模式,如图12.1所示。

嵌入式系统和嵌入式架构的区别和联系_嵌入式系统和嵌入式架构的区别和联系

由于单块结构本身具有强大功能的完整内核,能为嵌入式软件开发提供非常完整的平台,因此,其具有以下特点:

(1)可设置嵌入式芯片的通用接口。

(2)允许设备驱动器、网络服务器、防火墙等复用一些公共的代码或其他开源代码。

(3)根据功能进行系统的开发,避免实现多余功能以及额外的内存占用。

(4)用户运行的应用程序设计简洁、开发简单、易于调试、相对可靠。

(5)大多数嵌入式系统对实时性要求不高,单块结构可以实现快速响应。

(6)通过硬件的设计保证对请求的快速响应。

(7)对简单的小系统,单块结构有几乎最高的系统效率和实时性保障。

(8)通用RTOS系统的单位成本更低。

(9)对于复杂系统的应用,需大量硬件资源。

(10)内核的复杂性使系统的运行变得不可预测和不可靠。

(11)模块越多,模块之间的依赖越严重,在可裁剪性、可扩展性、可移植性和可维护性等方面存在明显缺陷,制约了该类结构RTOS 的应用。

单块结构常应用在WindowsCE和嵌入式系统中。

2.分层结构

分层结构是现今许多流行的嵌入式实时操作系统所采用的体系结构,在分层结构中,每一层对其上层好像一个虚拟计算机,下层为上层提供服务,上层使用下层提供的服务;在层与层之间定义良好的接口,上下层通过结构进行交互和通信;每一层中划分为一个或多个模块(组件),并可针对应用需求配置个性化RTOS。整个分层结构如图12.2所示。

嵌入式系统和嵌入式架构的区别和联系_架构_02

分层结构的实时多任务内核部分是整个分层结构的核心,其基本工作是任务切换,其运行与队列密不可分;分层结构中的其他部分是对整个嵌入式操作系统的有力支撑,包括存储管理、I/O设备管理(包括逻辑I/O和设备驱动)、嵌入式文件系统、网络系统和命令解释器等。

分层结构常用于VxWorks、DeltaOS等嵌入式操作系统中。

3.微内核结构

微内核结构是目前的主流结构之一,又称为客户/服务器(C/S)结构,在这种体系结构中,微内核仅提供任务调度、任务间通信、底层网络通信、中断处理接口和实时时钟等几种基本服务,且内核非常小,任务在独立的地址空间运行,速度极快;而传统的操作系统提供的其他服务,如存储管理、文件管理、中断处理和网络通信协议等,在内核以上以协作任务的形式出现,每个协作任务可以看成一个功能服务器。微内核结构如图12.3所示。

嵌入式系统和嵌入式架构的区别和联系_嵌入式系统_03

由于微内核结构中将内核功能和其他服务功能分开,因此,微内核结构具有以下优点和不足:

(2)可以更方便地扩展功能,包括动态扩展。

(3)可以更容易地做到上层应用与下层系统的分离,便于系统移植。

(4)服务模块的可重用性高。

(5)在任务执行时,需要客户端与服务器端通信,会增加一定的开销,与整体系统相比性能将有一定的下降。

微内核结构常用于QNX等嵌入式操作系统中。

4.构件化结构

构件化结构是采用构件组装思想及技术而设计的体系结构,在构件化结构中,嵌入式操作系统的内核由一组独立的构件和一个构件管理器组成,构件管理器用于维护内核构件之间的协作关系。构件化结构如图12.4所示。

嵌入式系统和嵌入式架构的区别和联系_嵌入式硬件_04

构件化结构具有以下特点:

(1)所有嵌入式操作系统抽象都由可加载的构件实现,配置灵活,裁剪方便。

(2)构件之间具有统一标准的交互式界面,便于用户掌握,方便应用程序开发。

(3)传统服务作为一个构件或由一些相互协作的构件构成,可为应用软件开发提供统一的编程接口。

(4)通过构件组装检验,可以确保生成的嵌入式操作系统满足设计约束。

(5)可以提供硬件无关性支持。

构件化结构应用在TinyOS等嵌入式操作系统中。

统服务作为一个构件或由一些相互协作的构件构成,可为应用软件开发提供统一的编程接口。

(4)通过构件组装检验,可以确保生成的嵌入式操作系统满足设计约束。

(5)可以提供硬件无关性支持。

构件化结构应用在TinyOS等嵌入式操作系统中。

总而言之,上述的体系结构都是目前较为流行的结构,从中充分体现了嵌入式操作系统的高实时性、高可靠性和可裁剪性等特点。