Funderberker is a WIP type 1 hypervisor written in Rust, with a focus on customizability and performance. It uses as few dependencies as possible, implementing close to everything from scratch aiming to reduce code bloat, and improves performance and stability.
Currently only x86_64
(both Intel
and AMD
CPUs) is supported, but support for aarch64
(and possibly RISC-V
when it's HA virtualization is more mature) is planned.
See this list of all available features.
Just (pun intended :) run:
just run
For more info, run
just help
Naturally, because of the nature of a type 1 hypervisor, the code structure is similar to that of a microkernel:
kernel
: A very minimal, basic kernel that provides the bare minimum to run the hypervisor.hypervisor
: The hypervisor itself, which provides the basic functionality to run VMs.drivers
: Drivers for various devicesutils
: Various utilities and helpersmacros
: Custom proc macros (placed in a crate of it's own because of a Rust internal limitation)logger
: A simple loggin crate to log messages during runtimepmm
: A buddy physical memory managerslab
: A slab allocatorscheduler
: A simple scheduler to manage VMs
Unfortunately, as of now the project is not open for contributions, as I'm working on it as a SoM project, but if you want to help, feel free to open an issue or a discussion for any feature/bug/CR/anything else. I'd really appreciate it! Once SoM is over I'll merge in any PRs.