xous-rs-2024/OUTLINE.md

1.6 KiB

Notes for the talk's outline

About Me

  • Based in Singapore
  • Hardware and software

Outline

  1. Project History
  2. Why a new OS?
  3. What can it do?

Project History

Novena: A really open laptop

We always wanted to make a laptop. Decided to give it a shot to see what happened.

The processor in this was "relatively large" -- ARM Cortex A9

Ran Linux

Chibitronics: Programming for 8-year-olds

This had a "relatively small" processor -- ARM Cortex M0 with 4 kB RAM and 32 kB flash

We got to know this chip really well

Ran ChibiOS and a very custom program

Precursor: Secure communications device

  • FPGA-based (any processor you want!)
  • 16 MB RAM
  • 128 MB storage

Why a new OS?

Two major markets:

  • MCU
    • No MMU, maybe an MPU
    • <= 1 MB RAM
    • <= 4 MB storage
  • CPU
    • MMU designed for multiple processes
    • = 64 MB RAM

    • = 256 MB storage (external)

What can it do?

  • Kernel is 17 ksloc
    • 6k of that is a RISC-V disassembler for optional GDB support
  • Threads
  • Processes
  • Tier 2 Rust support
    • libstd
  • 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

Xous Organization

  • 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