CHERIoT-RTOS

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.

Project Home: https://cheriot.org/

Downloads & Documentation

Fork VersionTargetReference SpecDownloadDocumentation
HEAD
2026-01-06
CHERIoTCHERIoT ISA v1.0Source (incl devcontainer)Getting Started

Project Status

The CHERIoT-RTOS is currently under active development and does not yet have versioned releases. Care is taken to ensure backwards source compatibility with prior git releases (in particular to ensure that examples from the print edition of the CHERIoT Programmers’ Guide still work) but this is not guaranteed until 1.0 is released. Track the current progress towards a 1.0 release on their GitHub.

You can keep up to date the with latest news for CHERIoT Platform via the project website and via their public Signal chat.

Building from Source

CHERIoT-RTOS provides a development environment container which includes all of the necessary dependencies pre-built to allow you to quickly begin development of CHERIoT-RTOS applications, without the need to build LLVM and the Sail-based emulator first.

If you’re looking to quickly get started developing with CHERIoT-RTOS, we recommend using the devcontainer.

Their Getting Started guide covers setting this up, as well as building dependencies from source.

Get Involved

Development for this project happens in the following places:

It is encouraged that participants write up the results of any discussions from the Signal chat in documentation, GitHub Discussions, Issues, or somewhere else that’s searchable.

Something missing, incorrect?

This page was last updated on 29th January 2026. Please let us know of any corrections via support@thecapablehub.org, alternatively raise a GitHub pull request in our repo.