Goal: A rust library operating system for hosting web servers, much like MirageOS, except designed for qemu and easy hacking
- Have it be fast and generate tiny binaries
- Have it be easy to hack on and implement drivers
- Have it be easy to swap out the target device (be that baremetal or a cloud VM or whatever)
- Embedded/baremetal considerations (assume we're running on a general purpose hypervisor)
- Reliability (one
panicshould bring down the entire OS) - Being practical for any use case other than learning
- Read up on
MirageOS,Hubris, andHaLVM
- Understand
virtIO - Understand
r0, and thechocolate-milkandhubrisbootloaders - Write something that boots in qemu and writes "hi" to the console device using
virtIO
- Get a better grasp on rust
async(read the async book) - Investigate
asyncruntimes - Get used to writing
nostd
- Hook the rust compiler and the bootloader together (ala mirage's
functoria) - Something that boots in qemu and writes an rust string to the console
- Start writing
soil(implementing an interface around thevirtIOdrivers) - (?) Write a keyboard driver (in rust) and its
soilinterface - Write an
echoprogram which just takes keyboard input and writes it to display
- Write a network driver (in rust) and its
soilinterface - Write a block device driver (in rust) and its
soilinterface - Write an entropy provider driver in
soil - Write a http/af backend using
soil - Host a hello world blog post using
terrarium