# Summary

[Introduction](./index.md)

# Getting Started

- [OpenVMM](./user_guide/openvmm.md)
  - [Running OpenVMM](./user_guide/openvmm/run.md)
    - [Alpine Linux](./user_guide/openvmm/alpine.md)
  - [VM Configurations](./user_guide/openvmm/vm_configurations.md)
  - [VFIO Device Assignment](./user_guide/openvmm/vfio.md)
  - [Troubleshooting](./user_guide/openvmm/troubleshooting.md)
  - [Snapshots](./user_guide/openvmm/snapshots.md)
  - [VM Memory Dumps](./user_guide/openvmm/vm_memory_dumps.md)
  - [Next Steps](./user_guide/openvmm/next_steps.md)
- [OpenHCL](./user_guide/openhcl.md)
  - [Running OpenHCL](./user_guide/openhcl/run.md)
    - [On Windows - Hyper-V](./user_guide/openhcl/run/hyperv.md)
    - [On Windows - OpenVMM](./user_guide/openhcl/run/openvmm.md)
    - [On Linux](./user_guide/openhcl/run/openvmm_linux.md)
  - [Troubleshooting](./user_guide/openhcl/troubleshooting.md)
  - [Next Steps](./user_guide/openhcl/next_steps.md)

# Developer Guide

- [Getting Started](./dev_guide/getting_started.md)
  - [On Linux / WSL2](./dev_guide/getting_started/linux.md)
  - [On Windows](./dev_guide/getting_started/windows.md)
  - [Via Codespaces / Dev Container](./dev_guide/getting_started/devcontainer.md)
  - [Building OpenVMM](./dev_guide/getting_started/build_openvmm.md)
  - [Building OpenHCL](./dev_guide/getting_started/build_openhcl.md)
    - [Building a Custom Kernel](./dev_guide/getting_started/build_ohcl_kernel.md)
  - [Suggested Dev Environment](./dev_guide/getting_started/suggested_dev_env.md)
  - [Cross Compiling for Windows](./dev_guide/getting_started/cross_compile.md)
  - [Running from WSL2](./dev_guide/getting_started/running_from_wsl.md)
- [Testing](./dev_guide/tests.md)
  - [Unit Tests](./dev_guide/tests/unit.md)
  - [VMM Tests](./dev_guide/tests/vmm.md)
    - [Azure-hosted Test Images](./dev_guide/tests/vmm/azure_images.md)
  - [Performance Tests (burette)](./dev_guide/tests/perf.md)
  - [Fuzzing](./dev_guide/tests/fuzzing.md)
    - [Running Fuzzers](./dev_guide/tests/fuzzing/running.md)
    - [Writing Fuzzers](./dev_guide/tests/fuzzing/writing.md)
- [Developer Tools / Utilities](./dev_guide/dev_tools.md)
  - [`flowey`](./dev_guide/dev_tools/flowey.md)
    - [`Flowey Fundamentals`](./dev_guide/dev_tools/flowey/flowey_fundamentals.md)
    - [`Steps`](./dev_guide/dev_tools/flowey/steps.md)
    - [`Variables`](./dev_guide/dev_tools/flowey/variables.md)
    - [`Nodes`](./dev_guide/dev_tools/flowey/nodes.md)
    - [`Artifacts`](./dev_guide/dev_tools/flowey/artifacts.md)
    - [`Pipelines`](./dev_guide/dev_tools/flowey/pipelines.md)
    - [`Nix`](./dev_guide/dev_tools/flowey/nix.md)
  - [`cargo xtask`](./dev_guide/dev_tools/xtask.md)
  - [`cargo xflowey`](./dev_guide/dev_tools/xflowey.md)
  - [VmgsTool](./dev_guide/dev_tools/vmgstool.md)
  - [update-rootfs.py]()
  - [igvmfilegen]()
  - [guest_test_uefi](./dev_guide/dev_tools/guest_test_uefi.md)
  - [hypestv](./dev_guide/dev_tools/hypestv.md)
- [Contributing](./dev_guide/contrib.md)
  - [Coding Conventions](./dev_guide/contrib/code.md)
  - [Save State](./dev_guide/contrib/save-state.md)
  - [Snapshot Format](./dev_guide/snapshot_format.md)
  - [Releases & Code Flow](./dev_guide/contrib/release.md)
  - [Submitting Changes](./dev_guide/contrib/pr.md)
  - [Code Review Process](./dev_guide/contrib/code_review.md)
  - [Guide Updates](./dev_guide/contrib/guide.md)
  - [Style Guide](./dev_guide/contrib/style_guide.md)
  - [Crypto Backends](./dev_guide/contrib/crypto_backends.md)

# Reference

- [OpenVMM Features](./reference/openvmm.md)
  - [Configuration and Management](./reference/openvmm/management.md)
    - [CLI](./reference/openvmm/management/cli.md)
    - [Interactive Console](./reference/openvmm/management/interactive_console.md)
    - [gRPC / ttrpc](./reference/openvmm/management/grpc.md)
  - [Graphical Console](./reference/openvmm/graphical_console.md)
  - [Logging](./reference/openvmm/logging.md)
- [OpenHCL Features](./reference/openhcl.md)
  - [Dynamic Configuration]()
  - [Diagnostics](./reference/openhcl/diag.md)
    - [Preface: CVM restrictions](./reference/openhcl/diag/cvm_restrictions.md)
    - [Intro to ohcldiag-dev](./reference/openhcl/diag/ohcldiag_dev.md)
    - [Network packet capture (PCAP)](./reference/openhcl/diag/ohcldiag_dev/pcap.md)
    - [Performance analysis](./reference/openhcl/diag/ohcldiag_dev/perf.md)
    - [Tracing](./reference/openhcl/diag/tracing.md)
  - [Debugging](./reference/openhcl/debugging.md)
- [Developer Features]()
  - [Hardware Debugging (gdbstub)](./reference/dev_feats/gdbstub.md)
  - [Kernel Debugging (KDNET)](./reference/dev_feats/kdnet.md)
- [Firmware and Boot Modes](./reference/devices/firmware/overview.md)
  - [UEFI: mu_msvm](./reference/devices/firmware/mu_msvm_uefi.md)
  - [BIOS: Hyper-V PCAT BIOS](./reference/devices/firmware/pcat_bios.md)
  - [Linux Direct](./reference/devices/firmware/linux_direct.md)
- [Devices]()
  - [Virtio]()
      - [virtio-fs]()
      - [virtio-9p]()
      - [virtio-net]()
      - [virtio-pmem]()
  - [VMBus]()
      - [storvsp](./reference/devices/vmbus/storvsp.md)
        - [Channels & Subchannels](./reference/devices/vmbus/storvsp_channels.md)
      - [netvsp]()
      - [vpci]()
      - [serial]()
      - [framebuffer]()
      - [input]()
  - [Emulated]()
    - [vTPM]()
    - [NVMe]()
      - [Overview](./reference/emulated/NVMe/overview.md)
      - [Doorbells](./reference/emulated/NVMe/doorbells.md)
    - [Serial]()
    - [Legacy x86]()
      - [i440BX + PIIX4 chipset]()
      - [IDE HDD/Optical](./reference/emulated/legacy_x86/ide.md)
      - [Floppy](./reference/emulated/legacy_x86/floppy.md)
      - [PCI]()
      - [VGA]()
    - [PCIe]()
      - [Overview](./reference/emulated/pcie/overview.md)
- [Device Backends]()
  - [Serial]()
  - [Graphics and Input]()
  - [Storage](./reference/backends/storage.md)
  - [Networking](./reference/backends/networking.md)
    - [Consomme](./reference/backends/consomme.md)
- [Architecture](./reference/architecture.md)
  - [OpenVMM Architecture](./reference/architecture/openvmm.md)
    - [Memory Layout](./reference/architecture/openvmm/memory-layout.md)
    - [NUMA Topology](./reference/architecture/openvmm/numa.md)
    - [mesh](./reference/architecture/openvmm/mesh.md)
      - [Using mesh](./reference/architecture/openvmm/mesh/usage.md)
      - [How mesh works](./reference/architecture/openvmm/mesh/internals.md)
    - [inspect]()
  - [OpenHCL Architecture](./reference/architecture/openhcl.md)
    - [Processes and Components](./reference/architecture/openhcl/processes.md)
    - [VMBus Relay and Device Interception](./reference/architecture/openhcl/vmbus.md)
    - [Storage Translation](./reference/architecture/openhcl/storage_translation.md)
    - [Storage Configuration Model](./reference/architecture/openhcl/storage_configuration.md)
    - [Boot Flow](./reference/architecture/openhcl/boot.md)
    - [Sidecar](./reference/architecture/openhcl/sidecar.md)
    - [CPU Scheduling](./reference/architecture/openhcl/cpu_scheduling.md)
    - [IGVM](./reference/architecture/openhcl/igvm.md)
  - [Device Architecture](./reference/architecture/devices.md)
    - [Storage Pipeline](./reference/architecture/devices/storage.md)

---

[OpenVMM Rust Crate API Docs](./rustdoc.md)
