最早用于美国国防系统,早期的名称为实时导弹系统(Real Time Executive for Missile Systems),后来改名为实时军用系统(Real Time Executive for Military Systems)
1、RTEMS(多处理系统实时可执行体)是一个为嵌入式系统而设计的自由的开源实时操作系统。
在缩写词RTEMS取其现在的含义之前,初始时代表导弹系统实时可执行体,然后变成了军用系统实时可执行体。
RTEMS曾被移殖到多个以不同类型的中央处理器(CPU)为基础的计算机系统上。这些计算机系统所采用的CPU,计有:ARM、i386、m68k、MIPS、PowerPC、SH等多种不同的处理器。
2、RTEMS被设计为支持多种开放的API如POSIX和uITRON。FreeBSD和TCP/IP栈还有多种文件系统也被支持。OAR公司当前在维护和管理RTEMS项目。RTEMS也被一些EPICS站点所使用。
3、RTEMS是在GPL授权条款下分发,但它允许将RTEMS的目标文件链接至其它文件而不需将整个文件以GPL授权覆盖,这方面有点像LGPL。
许可证信息
RTEMS是自由软件;您可以重新分发它和/或修改它
的GNU通用公共许可证的条款
自由软件基金会;要么是版本2,要么(根据您的选择)任何一种
后来的版本。分发RTEMS的目的是希望它有用,
但没有任何保证;甚至没有隐含的保证
适销性;适合于某一特定目的。看到GNU
更多详情请参阅通用公共许可证。你应该收到
一份GNU通用公共许可证副本及RTEMS;看到
文件复制。如果没有,写信给自由软件基金会,675
美国马萨诸塞州剑桥市Mass Ave大街02139
作为一个特殊的例外,在文件中包含RTEMS头文件,
实例化RTEMS泛型或模板,或链接其他文件
使用RTEMS对象来生成可执行应用程序,而不是
它本身导致所产生的可执行应用程序被覆盖
通过GNU通用公共许可证。这个异常不会
然而,无效的任何其他原因,为什么可执行文件可能
所涵盖的GNU公共许可证。
LICENSE INFORMATION
RTEMS is free software; you can redistribute it and/or modify it under
terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version. RTEMS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details. You should have received
a copy of the GNU General Public License along with RTEMS; see
file COPYING. If not, write to the Free Software Foundation, 675
Mass Ave, Cambridge, MA 02139, USA.
As a special exception, including RTEMS header files in a file,
instantiating RTEMS generics or templates, or linking other files
with RTEMS objects to produce an executable application, does not
by itself cause the resulting executable application to be covered
by the GNU General Public License. This exception does not
however invalidate any other reasons why the executable file might be
covered by the GNU Public License.
4、多处理器系统(RTEMS)的实时执行是一个多线程的、单地址空间的实时操作系统,没有内核空间/用户空间分隔。它能够在SMP配置中运行,提供最先进的特性
5、RTEMS使用和发布的第三方软件(可链接到应用程序)是根据许可的开放源码许可协议许可的。构建RTEMS应用程序所需的一切都可以通过开源软件获得。这使您完全独立于供应商。
6、特性
api
带有pthreads的POSIX(支持多种标准软件在RTEMS上运行)
经典
C11(包括线程支持)
c++ 11(包括线程支持)
Newlib和GCC内部
编程语言
C/ c++ /OpenMP (RTEMS Source Builder, RSB)
Ada(RSB, --with-ada)
Erlang
Fortran (RSB——with-fortran)
Python和MicroPython
并行编程语言
EMB²
Google Go2
OpenMP 4.5
线程同步和通信
具有和不具有锁定协议的互斥锁
计数信号量
二进制信号量
条件变量
事件
消息队列
障碍
Futex(被OpenMP屏障使用)
基于时代的填海工程
锁定协议
传递优先级继承
OMIP (SMP特性)
优先级天花板
MrsP (SMP特性)
可扩展的定时器和超时支持
无锁时间戳(FreeBSD时间计数器)
响应中断管理
C11 11 TLS / c++ 3
链接时可配置的调度器
Fixed-priority
Job-level fixed-priority (EDF)
Constant Bandwidth Server (实验)
集群调度(SMP特性)
灵活的链接时配置
作业级固定优先级调度器(EDF),支持一对一和一对所有线程与处理器的密切关系(默认SMP调度器)
几个调度器
概念证明强大的APA调度程序
关注链接时特定于应用程序的配置
基于链接器集的初始化(类似于全局c++构造函数)
操作系统使用细粒度锁定(SMP特性)
动态内存分配器
首先满足(默认)
通用内存分配器(UMA, libbsd)
文件系统
IMFS
FAT
RFS
NFSv2
JFFS2 (NOR flashes)
YAFFS2 (NAND flash, GPL或商业许可证)
设备驱动程序
Termios(串行接口)
I2C (Linux用户空间API兼容)
SPI (Linux用户空间API兼容)
网络栈(遗留、libbsd、lwIP)
USB堆栈(libbsd)
SD/MMC卡栈(libbsd)
Framebuffer (Linux用户空间API兼容,Qt)
应用程序运行在内核空间中,可以直接访问硬件
libbsd
FreeBSD用户空间和内核空间组件到RTEMS的端口
易于访问FreeBSD软件RTEMS
支持与FreeBSD保持同步
7.RTEMS生态系统
RTEMS生态系统是由RTEMS项目提供的工具、包、代码、文档和在线内容的集合。生态系统提供了一种开发、维护和使用RTEMS的方法。它的各个部分与用户、主机环境以及彼此交互,以使RTEMS可访问、可用和可预测。