CHERIoT-RTOS is a real-time operating system implementation, designed to make full use of CHERIoT ISA architecture. It comes as part of the CHERIoT hardware/software platform, designed for resource-constrained IoT devices. Memory management units (MMUs) are unsuitable for embedded devices for several reasons. Even a small MMU is typically larger than a microcontroller core. MMUs have nondeterministic access times caused by fast associative lookups in their translation look-aside buffer (TLB) or slow page-table walks, which makes them unsuitable for realtime applications. MMUs also typically need page tables, which are very large on resource-constrained systems. Embedded systems often have a memory-protection unit (MPU) instead, which provides access control to a fixed number of regions. CHERIoT was designed assuming CHERI from the ground up and so does not require either: it can use CHERI for object-granularity protection and safe sharing, without needing additional look-aside structures.
The full CHERIoT platform consists of three major components:
The CHERIoT ISA - Extends the RISC-V ISA with a core CHERI implementation suitable for small-scale embedded devices. This has two open-source implementations:
- CHERIoT Ibex is a mature production-quality (area-optimised) reference implementation.
- CHERIoT Kudu is a newer higher-performance dual-issue implementation.
The first CHERIoT devices are expected to be available in quantity in 2026.
CHERIoT-LLVM - Compiler toolchain targeting CHERIoT.
CHERIoT-RTOS - The core of the system.