CHERIoT RTOS
A compartmentalised RTOS for CHERIoT hardware
Loading...
Searching...
No Matches
CHERIoT RTOS

CHERIoT RTOS is a real-time operating system designed specifically for CHERIoT hardware. It uses CHERIoT's unique features to provide very strong, efficient isolation between program components called 'compartments'. Compartments are used to protect internal OS components such as the scheduler, interrupt handler and memory allocator and may also be used by application code to increase robustness, security and isolate untrusted third party components.

These pages contain API reference documentation generated from the RTOS sources, as well as high-level documentation of some OS concepts and features that are unique to CHERIoT RTOS.

Getting Started

For a quick guide to building applications with the RTOS see the getting started guide. TODO: include platform specific gettings started guides and link to template project.

High-level concepts

See the related pages for some documentation of key features and high level concepts of CHERIoT RTOS. Of particular interest may be:

Language support and libraries

CHERIoT supports code written in C, C++ (without exceptions), Rust or assembly, all of which benefit from the hardware memory safety features of CHERIoT. The core RTOS APIs are designed to be compatible with C, although there are often C++ wrappers that provide a more idiomatic interface for C++ code. By convention C header files use the .h extenion and C++ headers use .hh. Subsets of the C and C++ standard libraries are included: just include standard headers as you normally would and link the relevant libraries (TODO document this). Rust support is currently work in progress.

A compatibility layer for the core FreeRTOS APIs is available. For information on porting code from FreeRTOS see the programmers' guide.

For full API documentation see the files page.

Examples

For examples of RTOS usage see:

Further reading

For further information about CHERIoT see the following sources:

  • The CHERIoT Programmers' Guide HTML PDF: a thorough guide to CHERIoT, including the ISA, programming model and RTOS. Also available in epub and paper formats.
  • The CHERIoT Architecture Specification: the low level specification of the CHERIoT instruction set architecture (ISA) and application binary interface (ABI) used by the toolchain.
  • CHERIoT News: blog of CHERIoT news including some deep dives into RTOS features.
  • CHERIoT Publications: an index of CHERIoT-related academic publications.