单片机时代的嵌入式系统都不用操作系统,它们只是为了实现某些特定功能,使用一个简单的循环控制对外界的控制请求进行处理,不具备现代操作系统的基本特征,这对一些简单的系统而言是足够的。但是当系统越来越复杂、利用的范围越来越大时,缺少操作系统就成为了最大的一个缺点,因为每添加一项新功能都可能需要重新开始设计,否则只能增加开发成本和系统复杂度。
从 20 世纪 80 年代开始,出现了各种各样的商业用嵌入式操作系统,如 VxWorks、Linux 和 Android 等。
VxWorks 操作系统是美国风河(WindRiver)公司于 1983 年设计开发的一种实时操作系统,以其良好的可靠性和卓越的实时性被广泛应用在通信、军事、航空、航天等高精尖技术领域及实时性要求极高的领域中,如卫星通信、军事演习、导弹制导、飞机导航等。
VxWorks 最大的缺点是价格高昂,主要特点说明如下:
VxWorks 的微内核 Wind 是一个具有较高性能的、标准的嵌入式实时操作系统内核,其支持抢占式的基于优先级的任务调度,支持任务间同步和通信,还支持中断处理、看门狗(WatchDog)定时器和内存管理。
VxWorks 任务切换时间短、中断延迟小、网络流量大的特点使得 VxWorks 的性能得到很大的提高,与其他嵌入式系统相比具有很大的优势。
POSIX(the Portable Operating System Interface)是工作在 ISO/IEEE 标准下的一系列有关操作系统的软件标准。制定这个标准的目的就是在源代码层次上支持应用程序的可移植性。这个标准产生了一系列适用于实时操作系统服务的标准集合 1003.1b(过去是 1003.4)。
VxWorks 提供良好的可配置能力,可配置的组件超过 80 个,用户可以根据自己系统的功能需求通过交叉开发环境方便地进行配置。
VxWorks 提供的开发调试环境便于进行操作和配置,开发系统 Tornado 更是受到了广大嵌入式系统开发人员的欢迎。
如 x86、i960、Sun Sparc、Motorola MC68000、MIPS RX000、Power PC、StrongARM、XScale 等。大多数 VxWorks API 是专用的,VxWorks 提供的板级支持包Board Support Package,BSP支持多种硬件板,包括硬件初始化、中断设置、定时器和内存映射等例程。
嵌入式 Linux 现在已经有许多版本,包括强实时的嵌入式 Linux(如新墨西哥工学院的 RT-Linux 和堪萨斯大学的 KURT-Linux 等)和一般的嵌入式 Linux 版本(如 uCLinux 和 PocketLinux 等)。
RT-Linux 把通常的 Linux 任务优先级设为最低,而所有的实时任务的优先级都高于它,以达到既兼容通常的 Linux 任务又保证强实时性能的目的。
另一种常用的嵌入式 Linux 是 uCLinux,它是针对没有 MMU(内存管理单元)的处理器而设计的。它不能使用处理器的虚拟内存管理技术,对内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。它专门为嵌入式系统做了许多小型化的工作。
μC/OS 是 MicroController Operating System 的缩写,它是源码公开的实时嵌入式操作系统,其主要特点说明如下:
由于 μC/OS-II 仅是一个实时内核,这就意味着它不像其他实时操作系统那样,它提供给用户的只是一些 API 函数接口,有很多工作往往需要用户自己去完成。
把 μC/OS-II 移植到目标硬件平台上也只是系统设计工作的开始,后面还需要针对实际的应用需求对 μC/OS-II 进行功能扩展,包括底层的硬件驱动、文件系统和用户图形接口(GUI)等,从而建立一个实用的 RTOS。
Android(安卓)是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。该操作系统于 2007 年 11 月正式发布,2008 年 10 月第一部采用其技术的智能手机(G1)上市,截止到 2013 年年末,Android 的版本号已经发展到了 4.4,采用该操作系统的智能设备数量已经超过了 10 亿台。
Android 可以在 ARM 和 x86 体系结构的处理器上运行,其采用了分层的架构,可以从高层到低层分为应用程序层、应用程序框架层、系统运行库层和 Linux 内核层。
Android 具有开放性、不受束缚、硬件丰富、开发方便等优势,当然,其最大的优势还是 Google 公司和众多硬件服务商的支持,其缺点是采用了虚拟机制,导致效率略低,且碎片化严重。
iOS 是苹果公司于 2007 年发布的系统,是以 Darwin(一种类 UNIX 操作系统)为基础的操作系统,最开始命名为 iPhone OS,后来更名为 iOS,是 iPod touch、iPad 及 Apple TV 等产品的操作系统,其版本号目前已经更新到了 iOS7.0.4。
iOS 拥有在嵌入式操作系统中最多的应用程序及最好的 App(application)库,支持 ARM 体系架构的处理器,具有高安全、支持多语言、流畅、美观等特点,其缺点是封闭性较强。
WP 是 Windows Phone 的简称,是微软在 2010 年发布的一款智能手机操作系统,将微软旗下的 Skype、必应、Xbox Live 游戏、Xbox Music 音乐与独特的视频体验整合至手机;到 2013 年年底其已经更新到了 8.1 版本,其支持 ARM 体系架构的处理器。
Windows RT(RunTime)则是微软为实时嵌入式系统发布的 Windows 版本,其此采用了 Metro 风格的用户界面,支持 ARM 体系架构处理器,但是其无法兼容普通 x86 处理器结构上 Windows 的软件。
“RT”代表“Runtime”,也就是 Windows Runtime Library。它是一项非常重要的技术,因为它允许开发人员写一个 App,但是可以同时在利用英特尔处理器的Windows 8 上运行,还可以在利用 ARM 处理器的 Windows RT 上运行。