Howdy,
Earlier today we released a new Open Source project we're calling Firecracker. I wanted to take a moment to share a little bit about what our goals of this project are since I think it aligns well with a lot we've discussed here.
First, let me describe what it is. Firecracker is a VMM written in Rust that supports a minimal device model and loads a Linux and initramfs directly. It only supports virtio devices models (MMIO, not PCI) and has very basic support for things like UART and PC-KBD. It started out based on Crosvm (which is a wonderful piece of code!) but we took it in a different direction being focused much more on the serverless use-case than on the desktop application use-case. My hope is that over time we can share a bunch with the Crosvm project via common crates.
Today we are using Firecracker to run portions of both AWS Lambda and AWS Fargate. We wanted to get the project to a point where it was useful and we think we've gotten it there so we're now making it generally available.
There is a *ton* of work to do though. I think there's a ton of exploration to do around what is the device model that makes the most sense (I'm not convinced it's virtio-mmio). I also think there's a lot that can be improved on the Linux side too. I'm hoping folks are interested and we're very committed to working with the broader community on this.
https://firecracker-microvm.github.io/
On a personal note, I absolutely love Rust! I think the language was made for this purpose.
Anyway, we're happy to answer any questions you may have and look forwarding to chatting on the upcoming call on Dec 6th.
Regards,
Anthony Liguori