CHERIoT

CHERIoT combines a compact CHERI-RISC-V architecture, processor cores, a real-time operating system, compartments, tooling, simulation, and embedded hardware targets.

Small connected devices often run many components in one address space: network stacks, parsers, drivers, third-party libraries, update code, and application logic. A fault in one can reach everything. Conventional process isolation may be unavailable or too heavy for the device.

CHERIoT is a CHERI-based hardware-software platform designed for this embedded environment.

A coordinated platform

CHERIoT includes:

These parts are designed together. CHERIoT is therefore more than a generic RISC-V core with capability instructions added.

The software model

Firmware is divided into compartments and libraries. The build description identifies components, dependencies, threads, entry points, stacks, and board configuration. The real-time operating system (RTOS) creates protected transitions and controls authority between compartments.

A network component can receive a capability for one packet and selected services without receiving authority for the complete firmware image. Capability bounds and permissions protect object access, while the compartment model limits the objects and services available to the component.

CHERIoT also provides mechanisms for temporal safety, helping prevent stale capabilities accessing storage after it has been reused.

Getting started

The project provides a development container with the toolchain, simulator, and supporting tools.

git clone --recursive https://github.com/CHERIoT-Platform/cheriot-rtos.git
cd cheriot-rtos

Open the repository in a development-container compatible editor, select a supplied example, and use the documented simulator board. A typical build uses:

xmake config --sdk=/cheriot-tools --board=<supported-board>
xmake
xmake run

Use the current getting-started guide for exact board names and prerequisites.

Hardware choices

Developers can begin without hardware using the formal-model simulator or implementation simulation. For physical development, supported targets include FPGA platforms such as Sonata and other boards listed by the project.

The ecosystem also includes commercial silicon and licensable processor designs. Check the CHERI product directory and supplier documentation for current device, software development kit (SDK), and lifecycle information.

When CHERIoT is a good fit

Constraints and decisions

Current maturity

CHERIoT has a stable 1.0 architecture and RTOS line, released open-source implementations, development platforms, commercial silicon activity, and CHERI Enabled certification for the CHERIoT Ibex product. Individual repositories continue to evolve, so pin releases for reproducible product work.

The CHERIoT Programmer’s Guide is the best starting point for architecture, compartments, memory management, drivers, auditing, and practical examples.

Where next

Sonata is a low-cost CHERIoT development and evaluation platform built around an FPGA implementation of CHERIoT-Ibex.

Sonata →