Rust Bare Bones
This page is a work in progress.
This page may thus be incomplete. Its content may be changed in the near future.
Kernel Designs |
---|
Models |
Other Concepts |
WAIT! Have you read Getting Started, Beginner Mistakes, and some of the related OS theory?
Notes
- The rust libcore can easily be included in a kernel, it's analogous to C's freestanding headers
- Enable `--gc-sections` in ld to avoid having to define symbols you don't need (e.g. floating point math functions)
- Always use a target json file ("Flexible Target Specifications), and disable stack checking.
- Stack checking requires using thread-local storage
Examples
- https://github.com/thepowersgang/rust-barebones-kernel - A framework written in rust 1.0 alpha, supporting x86 and x86-64, boots offf multiboot.
- https://github.com/charliesome/rustboot - VERY old (rust 0.7), includes a bootsector.
- https://github.com/redox-os/redox