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虚拟机