Rtems

科技工作者之家 2020-11-17

RTEMS, 即: 实时多处理器系统(Real Time Executive for Multiprocessor Systems),是一个开源的无版税实时嵌入操作系统RTOS。

简介RTEMS(多处理系统实时可执行体)是一个为嵌入式系统而设计的自由的开源实时操作系统。

在缩写词RTEMS取其现在的含义之前,初始时代表导弹系统实时可执行体,然后变成了军用系统实时可执行体。

RTEMS曾被移殖到多个以不同类型的中央处理器(CPU)为基础的计算机系统上。这些计算机系统所采用的CPU,计有:ARM、i386、m68k、MIPS、PowerPC、SH等多种不同的处理器。RTEMS被设计为支持多种开放的API如POSIX和uITRON。FreeBSD和TCP/IP栈还有多种文件系统也被支持。OAR公司当前在维护和管理RTEMS项目。RTEMS也被一些EPICS站点所使用。

RTEMS是在GPL授权条款下分发,但它允许将RTEMS的目标文件链接至其它文件而不需将整个文件以GPL授权覆盖,这方面有点像LGPL。1

历史它最早用于美国国防系统,早期的名称为实时导弹系统(Real Time Executive for Missile Systems),后来改名为实时军用系统(Real Time Executive for Military Systems),现在由OAR公司负责版本的升级与维护。无论是航空航天、军工,还是民用领域RTEMS都有着极为广泛的应用。2

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

◆优秀的实时性能

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

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

◆支持单调周期调度

◆支持优先级高度协议

◆非常的稳定

◆运行速度快

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

◆高度可剪裁内核(目标系统小只有30KB;大可上百兆)1,2,3

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

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

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

◆提供完整的BSD的TCP/IP协议栈以及FTP、WebServer、NFS等服务

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

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

◆支持ISO/ANSI C库

◆支持ISO/ANSI C++库以及STL库

◆支持精简的可重入glibc库

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

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

◆支持多种调试模式(包括GDB,DDD,串口调试,以太网调试)

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

◆支持JAVA虚拟机

(注1:最小内核指的是只包含BSP、任务调度、内存模块这些功能的内核。它的大小和CPU指令集、外设多少、二进制代码格式等相关。CPU是ARM7时,产生的ELF格式标准ARM目标可以减少到46kb。通常来说如果只需要最主要的功能,未压缩目标目标可以控制在60kb(内核+BSP+简单应用),这比起Linux2.4 压缩后还有700K的庞大体积来说,更适合成本体积敏感的应用)

(注2:现在也有hacker主持Tiny RTEMS项目,该项目中,未压缩的最小的RTEMS bin镜像(内核+BSP)只有20kb。该项目将RTEMS id变成了16bit了,此外该项目将BSD TCP/IP换成了LWIP。这样RTEMS变成了能给8bit和16bit用户使用的小型RTOS,COOL!!。)

(注3:如果只是RTEMS可管理的存储空间,rtems.com公布的应用中,基于RTEMS的飞行记录仪提供多达8G的存储空间。)

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

截止到2012年,RTEMS最新的稳定版本是4.10,开发版是4.11。在国内,RTEMS主要用在航空航天和军工领域。 我们希望这个网站能普及RTEMS知识,帮助RTEMS在民用领域发挥更大的作用。2

本词条内容贡献者为:

王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。