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 to build a laptop
  • "Relatively Large" ARM Cortex A9
  • 32 GB disk, 4 GB RAM
  • Linux

Chibitronics: Programming for 8-year-olds

  • Always wanted to build a laptop
  • "Relatively Small" ARM 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

  • 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

  • Fully Rust
  • Microkernel
  • Stable channel
  • Requires an MMU
  • Interrupts in userspace
  • Each page of memory is mapped once

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