wiki:TBR/Website/What_is_RTEMS

Version 3 (modified by JoelSherrill, on Mar 12, 2009 at 5:50:11 PM) (diff)

Add text from GSoC Project Description

What is RTEMS

RTEMS is a real-time executive which provides a high performance environment for embedded real-time applications including many features.

The RTEMS Project is the umbrella term used to describe the collection of individuals, companies, universities, and research institutions that collectively maintain and enhance the RTEMS software base. The RTEMS Project is lead by a Steering Committee? that collectively represents the interests of the community and provides stewardship for the code base.

RTEMS (Real-Time Executive for Multiprocessor Systems) is a free real-time operating system designed for deeply embedded systems. It is a free open source solution that supports multi-processor systems and has been ported to over a dozen CPU architectures and includes support for over 100 boards?. RTEMS is designed to support applications with the most stringent real-time requirements while being compatible with open standards such as POSIX. RTEMS includes optional functional features such as TCP/IP and various file systems while still offering minimum executable sizes under 20 KB in useful configurations.

Many RTEMS developers are active in the free software community and contribute to various projects including binutils, gcc, newlib, and gdb. The RTEMS Maintainer is also a member of the GCC Steering Committee.

RTEMS development is done in a cross-compilation fashion. The RTEMS Project maintains an APT/Yum Repository with RPMs for various i386 and x86_64 GNU/Linux distributions including Fedora, RHEL, CentOS, and SUSE. In addition, MS-Windows is supported via MinGW hosted toolsets. RTEMS tools are included in various BSD ports collection. Our package maintainer contributes to the Fedora project.

We have recently put together some flyers for projects that use RTEMS. Please visit http://www.rtems.org/flyers.html and see how a relatively unknown piece of open source software is such an important part of the scientific community. We are proud that in April 2009, the ESA Herschel and Planck satellites will launch and both are using RTEMS.

Feature List

The following is just a short list of the features available in RTEMS. If you are interested in something that is not on this list, please contact the RTEMS Team. Features are being added continuously.

  • Standards Compliant
    • POSIX 1003.1b API including threads
    • RTEID/ORKID based Classic API
  • TCP/IP Stack
    • high performance port of FreeBSD TCP/IP stack
    • UDP, TCP
    • ICMP, DHCP, RARP
    • TFTP
    • RPC
    • FTPD
    • HTTPD
    • CORBA
    • SNMP
  • Debugging
    • GNU debugger (gdb)
    • DDD GUI interface to GDB
    • thread aware
    • debug over Ethernet
    • debug over Serial Port
  • Filesystem Support
    • In-Memory Filesystem (IMFS)
    • TFTP Client Filesystem
    • FTP Client Filesystem
    • FAT Filesystem (IDE and CompactFlash?)
    • NFS client
  • Basic Kernel Features
    • multitasking capabilities
    • homogeneous and heterogeneous multiprocessor systems
    • event-driven, priority-based, preemptive scheduling
    • optional rate monotonic scheduling
    • intertask communication and synchronization
    • priority inheritance
    • responsive interrupt management
    • dynamic memory allocation
    • high level of user configurability
  • Scripting