Real-Time Executive for Multiprocessing Systems

RTEMS is a real-time executive (kernel) which provides a high
performance environment for embedded applications with the following
features:

- Standards based user interfaces.
- Multitasking capabilities.
- Homogeneous and heterogeneous multiprocessor systems.
- Symmetric Multiprocessing (SMP):
  - Cluster scheduling: Job-level fixed prority scheduler (EDF) with
    support for one-to-one and one-to-all thread to processor
    affinities.
  - Locking protocols with transitive priority inheritance, priority
    ceiling, MRsP and OMIP.
- Event-driven, priority-based, preemptive scheduling.
- Scalable timer and timeout support.
- Optional rate monotonic scheduling.
- Intertask communication and synchronisation.
- Priority inheritance.
- Responsive interrupt management.
- Dynamic memory allocation.
- Dynamic code loading using run-time link editing.
- File systems, IMFS, FAT, RFS, JFFS, NSFv4 (with LibBSD)
- High level of user configurability.
- Link-time configurable schedulers.
- Linker-set based initialization (similar to global C++ constructors).
- Drivers for I2C, SPI and LibBSD has NIC, USB, SD/MMC and Framebuffer.
- Open source with a friendly user license.

RTEMS Project:

- https://www.rtems.org/

Project git repositories are located at:

- https://gitlab.rtems.org/rtems/

Online documentation is available at:

- https://docs.rtems.org/

RTEMS Doxygen for CPUKit:

- https://docs.rtems.org/doxygen/main/

RTEMS POSIX 1003.1 Compliance Guide:

- https://docs.rtems.org/branches/master/posix-compliance/

RTEMS Discourse User forum for questions, answers and examples:

- https://users.rtems.org/

RTEMS Discord for support:

- https://www.rtems.org/discord/

RTEMS Mailing Lists for general purpose use the users list and for
developers use the devel list.

- https://lists.rtems.org/mailman/listinfo

The version number for this software in releases is located in the
VERSION file if present.
