Awesome
MVisor: A mini x86 hypervisor
Goal
- A minimal hypervisor based on KVM and x86 (replace QEMU)
- A limited number of emulated devices (support plugins in later version)
- Linux and Windows as guest VMs
- VFIO (especially vGPU) and migration
- Extremely stable and high performance
Screenshot
Ubuntu
<img src="./docs/ubuntu.jpg" width="640">vGPU
<img src="./docs/vgpu.jpg" width="640">Multimedia
<img src="./docs/multimedia.jpg" width="640">Roadmap And Current Status
What's supported now:
Basic functions
- 440FX ✅ / Q35 Chipset ✅
- SeaBIOS ✅ OVMF ✅
- Memory Region Management ✅
- IOPort Management ✅
- Devices Management ✅
- RTC (CMOS) ✅
- PS/2 ✅
- PCI ISA ICH9-LPC ✅
- QEMU CFG ✅
- Legacy DMA ✅
- IDE ✅ / AHCI ✅
- Floppy Disk ✅
- Serial Port ✅
- VGA / VBE ✅
- Option Roms ✅ / SMBIOS ✅ / ACPI Table ✅
- Boot DOS ✅
- Boot OS (Win98 to Win11 / DOS / Ubuntu / macOS Sonoma) ✅
- QCOW2 ✅
Multimedia & Networking
- Virtio (Console ✅ / Block ✅ / Net ✅ / VirtioFS ✅ / VGPU ✅ / CUDA ✅ / Balloon)
- SpiceAgent ✅
- QemuGuestAgent ✅
- Qxl ✅
- Audio (ICH9-HDA / AC97) ✅
- Tap network ✅
- User network ✅
- VFIO (mdev & passthrough) ✅
- Samba
- USB 1.0 UHCI ✅ / USB 3.0 XHCI ✅ / USB Tablet ✅ / USB Keyboard ✅ / USB Midi ✅ / USB Wacom ✅
Hyper-V & Migration
- CPU migration ✅
- VFIO migration ✅
- Migration to sparse files ✅
- Hyper-V enlightenments ✅
- Live migration ✅
Compile & Run
For RockyLinux 9.3,
dnf install epel-release gdb cmake gcc-c++ acpica-tools
dnf --enablerepo=devel install -y protobuf-compiler protobuf-devel glib2-devel yaml-cpp-devel pixman-devel libzstd-devel zlib-devel
# If SDL enabled
dnf --enablerepo=devel install -y SDL2-devel alsa-lib-devel
For Debian 12,
apt install meson gdb cmake build-essential g++ acpica-tools
apt install protobuf-compiler libprotobuf-dev libglib2.0-dev libyaml-cpp-dev libpixman-1-dev libzstd-dev zlib1g-dev
# If SDL enabled
apt install libsdl2-dev libasound2-dev
Compile and Run
meson setup build -Dsdl=true # SDL is disabled by default
meson compile -C build
./build/mvisor -c config/sample.yaml -vnc 5900
Paravirtualized Drivers
An ISO image file is needed to install OS. Edit YAML file to configure image path.
Virtio is recommended for Windows guests:
<a href="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso">Download Virtio Guest Tools</a>