嵌入式实时操作系统(Embedded Real-time Operation System,RTOS)。
嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”
定义
英文名
Embedded Real-time Operation System,简写为(RTOS).
系统定义
当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的
嵌入式操作系统。
注:在工业控制、 军事设备、 航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用
实时系统。我们常常说的嵌入式操作系统都是嵌入式
实时操作系统。比如
μC/OS-II、eCOS和Linux、HOPEN OS。故对嵌入式实时操作系统的理解应该建立在对
嵌入式系统的理解之上加入对响应时间的要求。
IEEE定义
嵌入式系统是 “Devices used to control, monitor, or assist the operation of equipment, machinery or plants”。
一般定义
以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
背景
随着计算机技术的迅速发展和芯片制造工艺的不断进步,
嵌入式系统的应用日益广泛:从民用的电视、手机等电路设备到军用的飞机、坦克等武器系统,到处都有嵌入式系统的身影。在嵌入式系统的应用开发中,采用嵌入式
实时操作系统(简称RTOS)能够支持多任务,使得程序开发更加容易,便于维护,同时能够提高系统的稳定性和可靠性。这已逐渐成为
嵌入式系统开发的一个发展方向。
发展历史
从1981年Ready System发展了世界上第1个商业嵌入式实时内核(VRTX32),到今天已经有近20年的历史。20世纪80年代的产品还只支持一些16位的
微处理器,如68k,8086等。这时候的RTOS还只有内核,以销售
二进制代码为主。当时的产品除VRTX外,还有IPI公司的MTOS和80年代末ISI公司的PSOS。产品主要用于军事和电信设备。进入20世纪90年代,
现代操作系统的设计思想,如
微内核设计技术和
模块化设计思想,开始渗入RTOS领域。老牌的RTOS厂家如Ready System(在1995年与Microtec Research合并),也推出新一代的 VRTXsa实时内核,新一代的RTOS厂家Windriver推出了Vxwork。另外在这个时期,各家公司都有力求摆脱完全依赖第三方工具的制约,而通过自己收购、授权或使用免费工具链的方式,组成1套完整的开发环境。例如,ISI公司的Prismt、著名的Tornado(Windriver)和老牌的Spectra(VRTX开发系统)等。
进入20世纪90年代中期,互联网之风在北美日渐风行。网络设备制造商、终端产品制造商都要求RTOS有网络和图形界面的功能。为了方便使用大量现存的
软件代码,他们希望RTOS厂家都支持标准的API,如POSIX, Win32等,并希望RTOS的开发环境与他们已经熟悉的UNIX,Windows一致。这个时期代表性的产品有Vxwork,QNX, Lynx和WinCE等。
技术发展
可以看出,进入20世纪90年代后,RTOS在
嵌入式系统设计中的主导地位已经确定,越来越多的工程师使用RTOS,更多的新用户愿意选择购买而不是自己开发。我们注意到,RTOS的技术发展有以下一些变化:
1. 因为新的处理器越来越多,RTOS自身结构的设计更易于移植,以便在短时间内支持更多种微处理器。
2.开放源码之风已波及RTOS厂家。数量相当多的RTOS厂家出售RTOS时,就附加了源程序代码并含生产版税。
3. 后PC时代更多的产品使用RTOS,它们对实时性要求并不高,如手持设备等。
微软公司的WinCE,Plam OS, Java OS等RTOS产品就是顺应这些应用而开发出来的。
4. 电信设备、
控制系统要求的高可靠性,对RTOS提出了新的要求。
瑞典Enea公司的OSE和WindRiver 新推出的Vxwork AE对支持HA(高可用性)和
热切换等特点都下了一番功夫。
5. Windriver收购了ISI,在RTOS市场形成了相当程度的垄断,但是由于Windriver决定放弃PSOS,转为开发Vxwork与PSOS合二为一版本,这便使得PSOS用户再一次走到重新选择RTOS的路口,给了其他RTOS厂家1次机会。
6. 嵌入式Linux已经在消费电子设备中得到应用。韩国和日本的一些企业都推出了基于嵌入式Linux的手持设备。嵌入式Linux得到了相当广泛的半导体厂商的支持和投资,如Intel和 Motorola。
未来应用
RTOS可划分为3个不同的领域:
2. 板级:传统的RTOS的主要市场。如Vxwork, PSOS, QNX, Lynx和VRTX的应用将主要集中在航空航天、电话电讯等设备上。
3. SOC级(即
片上系统):新一代RTOS的领域:主要应用在消费电子、互联网络和手持设备等产品上。代表的产品有Symbian 的Epoc、ATI 的Nucleus, Express logic 的Threadx。老牌的RTOS厂家的产品VRTX和Vxwork 也很注意这个市场。
从某种程度讲,不会出现1个标准的RTOS(像微软的Windows在桌面系统中的地位一样),因为嵌入式应用本身就极具多样性。在某个时间段以及某种行业,会出现1种绝对领导地位的RTOS,比如今天在宽带的数据通信设备中的Vxwork和在亚洲手持设备市场上的WinCE就是一例子。但是,这种垄断地位也并不是牢不可破的,因为在某种程度上用户和合作伙伴更愿意去培养1个新的竞争对手。比如,Intel投资的Montivista和Motorola投资的Lineo,这两家嵌入式Linux系统,就是说明半导体厂商更愿意看到1个经济适用的、开放的RTOS环境。
中国现状
中国将是世界上最大的RTOS市场之一。因为中国有着世界上最大的电信市场。据信息产业部预计,在未来2~3年内,中国将是世界上最大的手机市场(每1部手机都在运行1个RTOS)。
这样庞大的电信市场就会孕育着大量的电信设备制造商,这就造就了大量的RTOS和开发工具市场机会。目前至2013年,中国的绝大多数设备制造商在采用RTOS时,首先考虑的还是国外产品。
目前,在中国市场上流行的RTOS主要有Vxwork, PSOS, VRTX, Nucleus,QNX和WinCE等。由于多数RTOS是嵌入在设备的控制器上,所以多数用户并不愿意冒风险尝试1种新的RTOS。
但是我们同时也注意到,目前 RTOS在中国市场的销售额还很小,这主要是2个原因:
1.中国设备制造商的规模普遍还无法与国外公司相比,开发和人员费用相对还较高,所以RTOS对于中国用户来讲是比较贵的。
2.多数国内用户还没有开始购买RTOS的版税,其主要原因有:产品未能按计划批量生产,没有交版税的意识。应该注意,大多数二进制的RTOS必须在产品量产时交版税,或者按数量买或者与厂家讨论一次性买断,而由厂家直接发给你授权协议书。据国外某家RTOS厂家称,他们年收入的30%来自版税。
分类介绍
μTenux
μTenux是一款开源免费的硬实时嵌入式操作系统,开发团队来自大连,主要针对ARM Cortex M0-M4系列的微控制器。其内核采用上世纪80年代就出现的μT-Kernel。在全球嵌入式最发达的日本,μT-Kernel拥有60%的占有率。同时tecoss中国开源社区还推出了Tenux,针对ARM Cortex的R系列和A系列。目前,悠龙软件是世界知名公司ARM的合作伙伴,还是Ti、ATMEL、ST、T-Engine、Neusoft、Tianfusoftwarepark、TEG、Parasoft etc.芯片厂商的合作伙伴。
目前,官方提供的μTenux稳定版代码为V1.5.00r160。
DJYOS
DJYOS是一个嵌入式实时操作系统,没有考虑在通用计算机/服务器上与
windows、
linux、
unix竞争。
DJYOS操作系统是以事件为核心进行调度的,这种调度策略使程序员可以按人类认知事物的习惯而不是计算机的习惯来编程。
普通操作系统中,调度是以线程为核心的,事件被作为线程的数据,标榜为“事件触发”的软件模型,也是由线程在一旁候着,待特定事件发生时线程恢复运行并把它作为输入数据加以处理。
以事件为核心的调度,则像设备和内存一样,把线程虚拟机作为处理事件所需要的资源看待,当某事件需要处理时,分配或者创建一个线程虚拟机给该事件,并启动该线程虚拟机处理事件。
在嵌入式领域,
DJYOS要与非实时操作系统如
linux、
wince竞争,以及实时操作系统如
vxworks、
qnx等竞争。
DJYOS的目标,是改变中国无(有影响力的)操作系统局面,在不久的将来,世界上流行的操作系统中,有一个来自中国。
VxWorks
VxWorks是美国WindRiver公司的产品,是目前
嵌入式系统领域中应用很广泛,市场占有率比较高的
嵌入式操作系统。
VxWorks
实时操作系统由400多个相对独立、短小精悍的目标模块组成,用户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、任务间同步与通信、
中断处理、
定时器和
内存管理等功能,内建符合POSIX(可移植
操作系统接口)规范的内存管理,以及多处理器控制程序;并且具有简明易懂的
用户接口,在核心方面甚至可以微缩到8 KB。
μC/OS-II
μC/OS-II是在μC-OS的基础上发展起来的,是美国
嵌入式系统专家Jean J.Labrosse用C语言编写的一个结构小巧、
抢占式的多任务实时内核。μC/OS-II能管理64个任务,并提供任务调度与管理、
内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。
μClinux
μClinux是一种优秀的嵌入式
Linux版本,其全称为micro-control Linux,从字面意思看是指微控制Linux。同标准的Linux相比,μClinux的内核非常小,但是它仍然继承了
Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的API,以及
TCP/IP网络协议等。因为没有MMU
内存管理单元,所以其多任务的实现需要一定技巧。
eCos
eCos(embedded Configurable operating system),即嵌入式可配置操作系统。它是一个
源代码开放的可配置、可移植、面向深度嵌入式应用的
实时操作系统。最大特点是配置灵活,采用
模块化设计,核心部分由小同的组件构成,包括内核、C语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用eCos提供的配置工具可以很方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。
RTXC
RTXC是C语言的实时执行体(Real-Time eXecutive in C)的缩写。它是一种灵活的、经过工业应用考验的多任务实时内核,可以广泛用于各种采用8/16位
单片机、16/32位
微处理器、DSP处理器的嵌入式应用场合。中国单片机公共实验室“经过几年的考察,认为比较适合中国的国情后,引入中国市场的”嵌入式
实时多任务操作系统两者之一。