Summary Introduction Getting Started OpenVMM Running OpenVMM Alpine Linux VM Configurations VFIO Device Assignment Troubleshooting Snapshots Next Steps OpenHCL Running OpenHCL On Windows - Hyper-V On Windows - OpenVMM On Linux Troubleshooting Next Steps Developer Guide Getting Started On Linux / WSL2 On Windows Via Codespaces / Dev Container Building OpenVMM Building OpenHCL Building a Custom Kernel Suggested Dev Environment Cross Compiling for Windows Running from WSL2 Testing Unit Tests VMM Tests Azure-hosted Test Images Performance Tests (burette) Fuzzing Running Fuzzers Writing Fuzzers Developer Tools / Utilities flowey Flowey Fundamentals Steps Variables Nodes Artifacts Pipelines Nix cargo xtask cargo xflowey VmgsTool update-rootfs.py igvmfilegen guest_test_uefi hypestv Contributing Coding Conventions Save State Snapshot Format Releases & Code Flow Submitting Changes Code Review Process Guide Updates Style Guide Reference OpenVMM Features Configuration and Management CLI Interactive Console gRPC / ttrpc Graphical Console Logging OpenHCL Features Dynamic Configuration Diagnostics Preface: CVM restrictions Intro to ohcldiag-dev Network packet capture (PCAP) Performance analysis Tracing Debugging Developer Features Hardware Debugging (gdbstub) Kernel Debugging (KDNET) Firmware and Boot Modes UEFI: mu_msvm BIOS: Hyper-V PCAT BIOS Linux Direct Devices Virtio virtio-fs virtio-9p virtio-net virtio-pmem VMBus storvsp Channels & Subchannels netvsp vpci serial framebuffer input Emulated vTPM NVMe Overview Doorbells Serial Legacy x86 i440BX + PIIX4 chipset IDE HDD/Optical Floppy PCI VGA PCIe Overview Device Backends Serial Graphics and Input Storage Networking Consomme Architecture OpenVMM Architecture mesh Using mesh How mesh works inspect OpenHCL Architecture Processes and Components VMBus Relay and Device Interception Storage Translation Storage Configuration Model Boot Flow Sidecar CPU Scheduling IGVM Device Architecture Storage Pipeline OpenVMM Rust Crate API Docs