1. 简单百科
  2. Rtems

Rtems

RTEMS(Real-时间 Executive for Multiprocessor Systems),原名导弹系统实时可执行体,后更名为军用系统实时可执行体,是一个为嵌入式系统设计的开源实时操作系统。RTEMS最初用于导弹系统,后来扩展到军用领域。该操作系统支持多种开放的API,如POSIX和uITRON,同时还支持FreeBSD和TCP/IP栈,以及多种文件系统。OAR公司目前负责维护和管理RTEMS项目,并与用户代表组成的steering committee合作。RTEMS最初通过FTP在1993年左右提供早期版本。RTEMS采用GNU通用公共许可证(GPL)授权条款,但允许将目标文件链接至其它文件,而不需将整个文件以GPL授权覆盖。

简介

RTEMS在性能上丝毫不输于vxworks,它和VxWorks以及RtLinux的性能比较可以参考《RTEMS简介》。它在全球有不少的用户,尤其是在通信、航空航天、工业控制、军事等领域有着非常广泛的应用,在系统实现上,RTEMS和VxWorks以及NucleusPlus的实现基本相同。

RTEMS当前最新的稳定版本是4.10,开发版是4.11。在国内,RTEMS主要用在航空航天和军工领域。

RTEMS已经移植到各种目标处理器架构,包括但不限于ARM, Atmel AVR, Blackfin, 飞思卡尔(现为NXP ColdFire), 德州仪器的C3x/C4x DSPs, 英特尔的x86架构成员80386,奔腾及以上, LatticeMico32, 68k, MIPS, Nios II, OpenRISC, PowerPC, Renesas的H8/300,M32C,M32R,SuperH, RISC-V RV32,RV64使用QEMU, SPARC的ERC32,LEON,V9。RTEMS在太空应用中也很受欢迎,因为它支持多个用于太空的微处理器,包括SPARC ERC32和LEON,MIPS Mongoose-V,ColdFire和PowerPC架构,这些架构都有太空硬化型号。RTEMS目前作为美国航空航天局火星勘测轨道飞行器上的Electra软件无线电的一部分,以及欧洲航天局的痕量气体轨道飞行器上运行。

RTEMS采用修改后的GNU通用公共许可证(GPL)进行分发,允许将RTEMS对象与其它文件链接,而无需使整个可执行文件都受到GPL的覆盖。该许可证基于GNAT修改的通用公共许可证,但修改了语言,使其不特定于Ada编程语言

主要特点

从体系结构上来看,RTEMS是微内核抢占式的实时系统,它具有下面的优点:

- 优秀的实时性能

- 支持硬实时和软实时(可抢占内核)

- 支持优先级继承,防止优先级反转

- 支持单调周期调度

- 支持优先级高度协议

- 非常的稳定

- 运行速度快

- 支持多种CPU,无论是ARM, MIPS,PowerPC,i386还是DSP,AVR,Zilog,都可以找到对应的BSP。

- 高度可剪裁内核(目标系统小只有30KB;大可上百兆)

- 占用系统资源小,在32位系统中最小的内核只有30Kb左右

- 支持多处理器(不同于SMP,RTEMS中多个处理器是协作关系)

- 提供POSIX API,Linux/unix下的程序可以方便移植

- 提供完整的BSD的TCP/IP协议栈以及断点续传、WebServer、NFS等服务

- 使用面向对象思想设计,可以大大缩短开发周期

- 核心代码使用C/C++写作,可移植性好

- 支持ISO/ANSI C库

- 支持ISO/ANSI C++库以及标准模板库

- 支持精简的可重入glibc

- 支持图形用户界面(Microwindows/Nano-X)

- 支持文件系统(FAT,IMFS等)

- 支持多种调试模式(包括GNU侦错器,DDD,串口调试,以太网调试)

- 支持32位处理器,Tiny RTEMS项目将对8位和16位处理器进行支持

- 支持JAVA虚拟机

参考资料