RTEMS

{{Short description|Real-time operating system}}

{{More citations needed|date=May 2014}}

{{Infobox OS

| name = RTEMS

| logo = RTEMS logo.svg

| screenshot =

| caption =

| developer = OAR Corporation

| working state = Current

| source model = Open source

| family = Real-time operating system

| released = {{Start date and age|1993}}

| latest release version = 6.1

| latest release date = {{Start date and age|2025|1|22}}{{cite web |url=https://www.rtems.org/node/135 |title=RTEMS 5.3 Released |date=2023-02-10 |access-date=2023-02-10}}

| latest preview date =

| repo = {{URL|gitlab.rtems.org/groups/rtems/}}

| marketing target = Embedded systems

| programmed in = C

| language = English

| update model =

| package manager =

| supported platforms = ARM, Blackfin, ColdFire, TI C3x/C4x, H8/300, x86, 68k, LatticeMico32, Microblaze, MIPS Nios II, OpenRISC, PowerPC, SuperH, SPARC (ERC32, LEON), SPARC64

| kernel type = Real-time

| ui = Command-line

| license = BSD 2 Paragraph

| website = {{URL|www.rtems.org}}

}}

Real-Time Executive for Multiprocessor Systems (RTEMS), formerly Real-Time Executive for Missile Systems, and then Real-Time Executive for Military Systems, is a real-time operating system (RTOS) designed for embedded systems. It is free and open-source software.

Development began in the late 1980s with early versions available via File Transfer Protocol (ftp) as early as 1993. OAR Corporation managed the RTEMS project in cooperation with a steering committee until the early 2000's when project management evolved into a subset of the core developers managing the project. In 2014, hosting was moved from OAR Corporation to the Oregon State University [https://cass.oregonstate.edu/open-source-lab Open Source Lab hosting].

Design

RTEMS is designed for real-time embedded systems and to support various open application programming interface (API) standards including Portable Operating System Interface (POSIX) and μITRON (dropped in RTEMS 4.10{{Cite web |url=https://docs.rtems.org/docs/main/eng/test-suites.html#legacy-test-suites |title=7.1.1.1. Legacy Test Suites |author= |website=RTEMS Software Engineering |publisher=RTEMS Project |access-date=2024-12-13 |url-status=live |archive-url=https://web.archive.org/web/20241213190001/https://docs.rtems.org/docs/main/eng/test-suites.html#legacy-test-suites |archive-date=2024-12-13}}). The API now known as the Classic RTEMS API was originally based on the Real-Time Executive Interface Definition (RTEID) specification. RTEMS includes a port of the FreeBSD Internet protocol suite (TCP/IP stack) and support for various file systems including Network File System (NFS) and File Allocation Table (FAT).

RTEMS provides extensive multi-processing and memory-management services.{{cite web | last=Project | first=RTEMS | title=The RTEMS Documentation Project home | website=The RTEMS Documentation Project home | url=https://docs.rtems.org/}}

Architectures

RTEMS has been ported to various target processor architectures:

Uses

RTEMS is used in many application domains. The Experimental Physics and Industrial Control System (EPICS) community includes multiple people who are active RTEMS submitters. RTEMS is also popular for space uses since it supports multiple microprocessors developed for use in space including SPARC ERC32 and LEON, MIPS, ColdFire, and PowerPC architectures, which are available in space hardened models. RTEMS is currently orbiting Mars as part of the Electra software radio on NASA's Mars Reconnaissance Orbiter,{{cite web |url=http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39788/1/06-0474.pdf |title=Real Time Mars Approach Navigation aided by the Mars Network |access-date=2008-01-25 |publisher=NASA |url-status=dead |archive-url=https://web.archive.org/web/20060930070717/http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39788/1/06-0474.pdf |archive-date=2006-09-30 }} and the ESA's Trace Gas Orbiter.,{{Cite news|url=http://phys.org/news/2016-11-nasa-radio-europe-mars-orbiter.html|title=NASA radio on Europe's new Mars Orbiter aces relay test|access-date=2016-12-01}} as well as passing by the sun on the Parker Solar Probe.

License

RTEMS components are currently licensed under a mixture of licenses including a GPL-2.0{{Cite web |title=LICENSE.md · main · RTEMS / RTOS / RTEMS · GitLab |url=https://gitlab.rtems.org/rtems/rtos/rtems/-/blob/main/LICENSE.md |archive-url=http://web.archive.org/web/20241229123900/https://gitlab.rtems.org/rtems/rtos/rtems/-/blob/main/LICENSE.md |archive-date=2024-12-29 |access-date=2025-02-04 |website=GitLab |language=en}} derived license with the project working on trying to re-license original components to the project under the two paragraph BSD license.{{Cite web |title=Change RTEMS License to Two Paragraph BSD (#3053) · Issues · RTEMS / RTOS / RTEMS · GitLab |url=https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/3053 |archive-url=http://web.archive.org/web/20241229191846/https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/3053 |archive-date=2024-12-29 |access-date=2025-02-04 |website=GitLab |language=en}}{{Cite web |last=Sherrill |first=Joel |date=2025-02-05 |title=Joel Sherrill's avatar cpukit/rtems/src/[a-r]*.c: Change license to BSD-2 |url=https://gitlab.rtems.org/rtems/rtos/rtems/-/blob/main/cpukit/rtems/src/msgqbroadcast.c |url-status=live |archive-url=https://web.archive.org/web/20250205081526/https://gitlab.rtems.org/rtems/rtos/rtems/-/blob/main/cpukit/rtems/src/msgqbroadcast.c |archive-date=2025-02-05 |access-date=2025-02-05 |website=rtems.org}}

RTEMS was originally distributed under a modified GNU General Public License (GPL), allowing linking RTEMS objects with other files without needing the full executable to be covered by the GPL. This license is based on the GNAT Modified General Public License with the language modified to not be specific to the programming language Ada.

See also

{{Portal|Free and open-source software}}

References

{{Reflist}}