第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的多任务潜力。
· 嵌入式系统都是为了完成一些特定的任务而设计的,通用型操作系统往往无法满足某些特定的要求。
· 嵌入式系统的系统资源相对通用系统来说是极为有限的,通用操作系统在这种条件下不能发挥作用。
· 嵌入式系统配置灵活。在产品研发和更新的过程中,系统的功能可能会不断地改变,需要操作系统能针对需求进行裁剪、调整,以满足最终产品的设计要求。