21天学通Linux嵌入式开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第2章 嵌入式操作系统简介

嵌入式操作系统是一种高级的现代控制技术。嵌入式操作系统具有通用操作系统的特点,同时又具有自身的一些特殊优势。本章将带领读者了解一下嵌入式操作系统的基本情况,并认识一下主流的嵌入式操作系统。通过本章的学习,读者应该实现如下几个目标。

· 了解嵌入式操作系统的分类和特点。

· 掌握各种主流的嵌入式操作系统。

2.1 嵌入式操作系统概述

谈到操作系统,读者首先想到的应该是普遍应用的Windows通用操作系统。这里我们所讲的嵌入式操作系统与一般的Windows操作系统不同,其是一种专用、可定制的特点。

嵌入式操作系统除了能完成一般操作系统的功能,如进程管理、存储管理、文件管理、设备管理等,通常还包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。目前,嵌入式操作系统作为一门高级的控制技术而被广泛使用。嵌入式操作系统的应用领域十分广泛,一点不亚于通用操作系统。

2.1.1 嵌入式操作系统的发展历史

在最初的控制领域中,设计者往往仅通过汇编语言或高级语言编程对系统进行直接控制,而没有操作系统的概念。不同的产品所实现的方法依赖于设计者的程序代码。这种方法仅适合于简单的或单任务系统,而对多任务系统无能为力。随着嵌入式CPU的投入使用,也随之发展起了嵌入式操作系统,其发展经历了如下三个阶段。

第一阶段(简单操作系统):由于嵌入式操作系统刚发展起来,加之嵌入式CPU种类繁多,没有一个统一的标准。因此,此时的嵌入式操作系统通用性比较差、用户界面不够友好。但是,操作系统具有一定的兼容性和扩展性。

第二阶段(通用的嵌入式实时操作系统):随着技术和需求的发展,嵌入式系统的功能和实时性都不断提高。此时,以嵌入式实时操作系统为核心的嵌入式系统成为主流。这类嵌入式实时操作系统,能运行于各种类型的微处理器上、兼容性好、内核精小、效率高、具有高度的模块化和扩展性。另外,还具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能。通用的嵌入式实时操作系统通过提供大量的API接口来增加系统的可扩展性和灵活性。

第三阶段(Internet嵌入式系统):目前,嵌入式系统正在处于Internet嵌入式系统。所有的设备都有联网的趋势,嵌入式设备与Internet的结合将代表着嵌入式技术的真正未来。例如,3G功能的智能手机、UMPC、MID设备等。

2.1.2 嵌入式操作系统的分类

目前,市面上流行的嵌入式操作系统丰富多彩。不同的嵌入式系统适用于的场合。如果按照是否免费来分类,可以分为如下几类。

· 免费嵌入式操作系统:例如Linux、Embedded Linux、FreeRTOS等。

· 收费的嵌入式操作系统:例如VxWorks、Windows CE等。

另外,按照系统对相应时间的敏感程度,嵌入式操作系统可以分为如下几类。

· 硬实时系统:系统对响应时间有严格的要求,如果响应时间不能满足,是绝对不能接受的,可能导致系统的崩溃或致命错误。

· 软实时系统:系统对响应时间没有严格要求,如果响应时间不能满足,可能导致结果错误,但不影响系统继续运行。

· 非实时系统:系统对响应时间没有要求,如果响应时间不能满足,也不影响系统继续运行。

2.1.3 嵌入式操作系统的特点

嵌入式操作系统既具有通用操作系统的基本特点,又具有自身的一些优势,这主要体现在如下几个方面。

· 能够有效管理复杂的系统资源。

· 嵌入式操作系统提高了系统的可靠性。

· 能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来。

· 能够提供库函数、驱动程序、工具集及应用程序,提高了开发效率,缩短了开发周期。

· 具有高的系统实时性能。

· 嵌入式操作系统充分发挥了32位CPU的多任务潜力。

· 嵌入式系统都是为了完成一些特定的任务而设计的,通用型操作系统往往无法满足某些特定的要求。

· 嵌入式系统的系统资源相对通用系统来说是极为有限的,通用操作系统在这种条件下不能发挥作用。

· 嵌入式系统配置灵活。在产品研发和更新的过程中,系统的功能可能会不断地改变,需要操作系统能针对需求进行裁剪、调整,以满足最终产品的设计要求。