学号:16020188037 姓名:崔岸婧
【嵌牛导读】:对嵌入式操作系统的介绍与分析
【嵌牛鼻子】:嵌入式、操作系统
【嵌牛提问】:主要的嵌入式操作系统有哪些?它们分别有什么特点?
【嵌牛正文】:
嵌入式操作系统(Embedded Operating System,简称:EOS)是一种具有专用性质的操作系统,通常包括底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面等。嵌入式操作系统一般具备任务调度、同步机制、内存管理、中断处理、文件处理等基本功能,且具有代码固化存储,时空效率高,可裁剪性,实时性强,强稳定性,弱交互性,硬件适应性好的特点。
嵌入式操作系统有很多种分类方式。如果按实时性分类,可以分为硬实时性操作系统(要求响应迅速可靠)、软实时性操作系统和非实时操作系统;如果按照开发方式分类,可分为专门为嵌入式环境开发的嵌入式操作系统和从通用计算机操作系统移植而来的嵌入式操作系统;如果按照商业模式分类,可以分为免费的嵌入式操作系统和商业嵌入式操作系统,而商业嵌入式操作系统又可分为只收取每种产品一次性费用、按开发版本的授权数量收取授权费和按最终产品售出的实际数量收取每份运行软件的版权费等方式。
免费的嵌入式操作系统能够获得自由软件开发者的支持,具有更丰富的应用软件,移植性很强,而商业嵌入式操作系统能够获得的技术支持很少,作为封闭系统也很难移植,但起稳定性往往优于免费的嵌入式操作系统。两者的优缺点对比从开放了源码的Android和商业的iOS可以明显地看到,比如你总可以轻松地搜索到各种有用而且免费的Android app,但是它们并不一定能够支持iOS系统。
下面介绍几种应用面较广、产品特性突出的嵌入式操作系统。
一、Wind River System公司的VxWorks
VxWorks操作系统是美国风河系统公司于1983年专门针对嵌入式环境开发的商用嵌入式实时操作系统,因为良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器、2008年5月登陆的凤凰号,和2012年8月登陆的好奇号也都使用到了VxWorks。
VxWorks操作系统支持PowerPC、68K、CPU32、i960、x86、MIPS等多种嵌入式处理器体系结构,采用微内核结构,内核仅提供多任务环境、任务间通信和同步功能,能保证较短的任务间切换时间和较小的中断延迟,具有良好的兼容性、可靠性、可用性和安全性。
二、QNX软件系统公司的QNX
QNX是一种商用的遵从POSIX规范的类Unix实时操作系统,目标市场主要是面向嵌入式系统。QNX的应用范围极广,包含了:控制保时捷跑车的音乐和媒体功能、核电站和美国陆军无人驾驶Crusher坦克的控制系统,还有RIM公司的BlackBerry PlayBook平板电脑。QNX在车用市场占有率达到75%,目前全球有超过230种车型使用QNX系统,此外,除汽车领域之外,QNX的最大客户订单来源于思科系统,其中高端路由设备几乎全部采用QNX操作系统,因此,网络通信也成为了QNX第二大应用领域。
QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧而且运行速度极快。QNX同时支持进程和线程两种任务实现方式,保证了基于QNX的应用系统稳定、可靠。
三、FreeRTOS
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。
FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。FreeRTOS内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。
四、WinCE
WinCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95。Win CE的图形用户界面相当出色。WinCE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。
WinCE与通用的平台上的Windows核心不同,却拥有与桌面Windows家族一致的程序开发界面和机遇Win32的应用程序接口,使绝大多数的桌面应用软件只需要简单的修改和移植就可以在WinCE平台上继续使用。曾经占据下发电子领域的很大的市场份额,但随着Android系统的普及而受到了挑战。
五、μTenux
μTenux基于ARM微控制器平台,对uT最适用于ARM Cortex M0-M4系列的微控制器,代码开源、免费,是一个功能强大的抢占式实时多任务操作系统。μTenux除具有实时嵌入式操作系统的一般特性:可移植性,可固化,可裁剪等特性以外,它还具有如下优点:
(1)微内核。无MMU, ROM/RAM占用量小,所占ROM最大60KB,最小10KB;RAM最大12KB,最小2KB;
(2)开源免费;
(3)支持所有32位ARM7/9和Cortex M系列的微控制器;
(4)可配置多达到256个任务以及140个任务优先级;
(5)有良好的商业支持,T-Engine论坛进行总的维护。
六、TinyOS无线传感器网络操作系统
TinyOS是一个具备较高专业性,专门为低功耗无线设备设计的开源的嵌入式操作系统,它是由加州大学的伯利克分校开发出来的,主要应用于传感器网络、普适计算、个人局域网、智能家居和智能测量等领域。程序采用的是模块化设计,基于组件架构,包括网络协议、分布式服务器和传感器驱动组件以及一些可在手机数据时使用的应用工具,所以它的程序核心往往都很小,一般来说核心代码和数据大概在400 Bytes左右,能够突破传感器存储资源少的限制。TinyOS提供一系列可重用的组件,一个应用程序可以通过连接配置文件(A Wiring Specification)将各种组件连接起来,以完成它所需要的功能。
TinyOS拥有两级调度和轻量级线程技术,一般的轻量级线程按照先进先出进行调度,线程之间不允许抢占;而用于硬件处理的线程则可以抢占用户的轻量级线程和低优先级的中断处理线程。TinyOS采用事件驱动的工作模式,用事件触发唤醒传感器工作,因而实现了非常好的电源效能。
嵌入式操作系统行业的竞争激烈,每一种操作系统都有其特点以及专门面对的处理环境,没有一款产品能够占据绝对的统治地位,因此对于不同的嵌入式操作系统往往并没有特别明显的优劣之分,而只能说对应于所处的开发环境是适用性的高低。