# Xous

## Embedded Multiprocess Microkernel

### 17 April 2024, Sean Cross

## Outline

1. About Me
2. Project history
3. Why a new OS?
4. What can it do?
5. How do I use it?

## About Me

- Live in Singapore
- Enjoy understanding systems
- Low-level is best

## Novena: Open laptop

- Always wanted custom laptop
- "Relatively Large" Cortex A9
- 32 GB disk, 4 GB RAM
- Linux

## Chibitronics: Programming for 8-year-olds

- Paper circuit design
- "Relatively Small" Cortex M0+
- 32 kB flash, 4 kB RAM
- ChibiOS

## Precursor Design

- Two FPGA-based CPUs
- RV32IMAC based on VexRiscv
- 128 MB flash, 16 MB RAM
- Operating System?

## Operating System Selection

- RISC-V
- Memory Protection
- Not Linux
- Rust is a new thing?

## Xous Design

## Brief Specs

- Kernel is 17 ksloc
- Threads
- Processes
- Tier 2 Rust support
- Entire project built on stable Rust

## Other Features

- Microkernel
- Interrupts in userspace
- Each page of memory is mapped once
- No C compiler required

## More Specs

- Kernel is single-threaded
- Services use well-defined API calls
- All drivers provided in user space
- Each page of memory can only be lent once

## How can I use it?

- Talk to system vendors -- get them to include MMUs!
- Emulation is easiest -- Renode support

## Thank you!

### github.com/betrusted-io/xous-core