RTEMSFeatures

From RTEMSWiki
Jump to: navigation, search

Contents

RTEMS (Real-Time Executive for Multiprocessor Systems) is a commercial grade real-time operating system designed for deeply embedded systems. It is a free open source solution that supports multi-processor systems. RTEMS is designed to support applications with the most stringent real-time requirements while being compatible with open standards.

Different parts of RTEMS are based upon different standards. The original RTEMS API, now referred to as the Classic API, was based upon a VMEbus Industry Trade Association attempt to standardize RTOS interfaces. These efforts were the Real-Time Executive Interface Definition (RTEID) which evolved into the Open Real-Time Kernel Interface Definition (ORKID) before those involved became involved in the POSIX threads and real-time standardization efforts. These efforts lead to the development of the POSIX 1003.1b standard which includes POSIX threads (a.k.a pthreads). The threading part of POSIX 1003.1b is referred to in RTEMS as the POSIX API. The non-threading portion of POSIX are generally enabled at all times as they include more mundane services like file IO and the Standard C Library. In addition, RTEMS supports numerous standards from the BSD community including BSD sockets.

The RTEMS project is managed by OAR Corporation with invaluable development input from the vibrant and talented members of the RTEMS community. Additional features are being continuously developed.

Standards Compliant

  • POSIX 1003.1b API including threads
  • VMEbus Industry Trade Association RTEID/ORKID based Classic API (similar to pSOS+)
  • TCP/IP including BSD Sockets
  • GNU Toolset Supports Multiple Language Standards
    • ISO/ANSI C
    • ISO/ANSI C++ including Standard Template Library
    • Ada with GNAT/RTEMS

Basic Kernel Features

  • Multitasking capabilities
  • Homogeneous and heterogeneous multiprocessor systems
  • Event-driven, priority-based pre-emptive scheduling
  • Optional rate-monotonic scheduling
  • Intertask communication and synchronization
  • Priority inheritance
  • Responsive interrupt management
  • Dynamic memory allocation
  • High level of user configurability
  • Portable to many target environments

Networking

  • High performance port of FreeBSD TCP/IP stack
  • UDP, TCP
  • ICMP, DHCP, RARP, BOOTP, PPPD
  • Client Services
    • Domain Name Service (DNS) client
    • Trivial FTP (TFTP) client
    • Network Filesystem System (NFS) client
  • Servers
    • FTP server (FTPD)
    • Web Server (HTTPD)
    • Telnet Server (Telnetd)
    • Sun Remote Procedure Call (RPC)
    • Sun eXternal Data Representation (XDR)
    • CORBA

See also: Networking.

Filesystems

RTEMS has a driver structure for block devices that allow them to accessed via the standard file system semantics as defined by the POSIX standard. The drivers are layered over the file system support which handles the specifics of a specific type of disk format. For more detailed information, refer to File_Systems.

  • In-memory filesystem (IMFS)
  • mini-IMFS (reduced services and footprint)
  • Device File System (lowest memory filesystem, devices only)
  • MS-DOS FAT32, FAT16, and FAT12
  • RTEMS File System (RFS)
  • TFTP client filesystem
  • NFS client

Debugging

  • GNU debugger (gdb)
  • DDD GUI interface to gdb
  • Thread aware
  • Debug over ethernet
  • Debug over serial port

IDEs

  • Eclipse Plugin
Personal tools
Namespaces

Variants
Actions
Navigation
Gedare's Special Help
Toolbox