This is an attempt to write micro vms and run them with an home made Rust unikernel OS.
Running a very minimal kernel written in Rust with AWS Firecracker. This means be able to target : a serial port, a virtio network device and a virtio block device.
Have a minimal kernel providing WASI and running WASM. (Still) run it with AWS Firecracker.
Expand Firecracker to manage multiple VMs on the same process, and provide a REST api for VM management.
Since WASM is supported by more and more languages, this would mean that writing secure and fast unikernels in any language will be possible. The micro VM would only support network and block device, that is well enough for functions as a service...
Learn Rust with low level / system programming (no standard library use).
Deep dive into kernel writing.
Build the project with this command :
cargo xbuild
Run Firecracker.
Then run the following script :
./run-on-firecracker.sh
The Firecracker launched VM should output "Hello 42 times !"
This would have not been possible without those two things :
- Firecracker : https://github.com/firecracker-microvm/firecracker
- Philipp Oppermann's blog : https://os.phil-opp.com