1.6 KiB
1.6 KiB
Notes for the talk's outline
About Me
- Based in Singapore
- Hardware and software
Outline
- Project History
- Why a new OS?
- 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