|
CHERIoT RTOS
A compartmentalised RTOS for CHERIoT hardware
|
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.
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.
See the related pages for some documentation of key features and high level concepts of CHERIoT RTOS. Of particular interest may be:
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.
For examples of RTOS usage see:
For further information about CHERIoT see the following sources: