Choose a Platform

Choose a CHERI environment by workload, operating system, hardware access, software maturity, and the security property you want to test.

A useful platform choice starts with the development goal. A team porting a Unix service needs a different environment from one building microcontroller firmware. Identify the workload and the result you want to observe before comparing processor names.

Quick comparison

These routes are starting points. Confirm current target support in the linked project documentation before committing to a product plan.

Start with the security question

Different experiments need different capabilities:

A simulator is suitable for functional behaviour and early porting. It is rarely suitable for final timing, power, or microarchitectural conclusions.

Application-class development

CheriBSD on CHERI-RISC-V is a strong general starting point for developers who want a complete Unix-like system without specialist hardware. The cheribuild tool can build the compiler, operating system, disk image, and CHERI-enabled QEMU target.

Morello with CheriBSD provides a mature application-class CHERI stack on Arm’s prototype hardware. It is useful for established Morello projects, hardware measurements, and software that specifically targets the Morello ABI. Morello is an evaluation platform, so new product plans should also consider current commercial CHERI-RISC-V options.

CHERI Linux is appropriate when the Linux kernel and user-space ecosystem are central to the evaluation. Check the CHERI Linux roadmap and repository for current branches, supported processors, and user-space scope.

Embedded development

CHERIoT is designed for small, connected systems. It combines a CHERI-enabled 32-bit RISC-V architecture with a compartmentalised real-time operating system (RTOS) and a defined software model. The official development container includes the compiler, build tools, auditing tools, and simulators.

Use simulation for the first build. Move to Sonata or another supported board when the experiment needs peripherals, physical timing, or hardware integration.

CHERI-enabled Zephyr and other real-time operating-system work may be the better fit when an existing RTOS ecosystem is a hard requirement. Confirm the current port’s architecture and feature coverage before comparing it with CHERIoT.

Five practical selection checks

  1. Workload: Can the platform run the operating system, libraries, language, and peripherals you need?
  2. Protection mode: Does the target support pure-capability code, compartments, and any required temporal-safety mechanism?
  3. Access: Can every developer reproduce the environment through simulation, a board, or a remote lab?
  4. Evidence: Are the compiler, architecture version, test suite, and implementation status documented well enough for your claim?
  5. Lifecycle: Is the platform a learning environment, a prototype, an open-source integration target, or a supported commercial product?

If you have no fixed platform requirement:

Your first success criterion should be small: boot the environment, compile a hello-world program, run it, and record the compiler target and software version. Then deliberately trigger one capability violation to confirm that the protection is active in that build.

Continue with Run CHERI in Simulation or compare the detailed Platform Comparison.

Where next

Simulation is the recommended first execution environment for most CHERI developers.

Run CHERI in Simulation →