xous-rs-2024/OUTLINE.md
Sean Cross 5a51f6ddf2 wip commit
Signed-off-by: Sean Cross <sean@xobs.io>
2024-04-06 15:58:08 +08:00

86 lines
1.6 KiB
Markdown

# 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
* Bit-banged USB
* AFSK demodulation
* https://ltc.chibitronics.com/
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