# Summary

[Introduction](./index.md)

# Getting Started

- [OpenVMM](./user_guide/openvmm.md)
  - [Running OpenVMM](./user_guide/openvmm/run.md)
  - [Troubleshooting](./user_guide/openvmm/troubleshooting.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)
- [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)
  - [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)
  - [`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)
  - [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)

# 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)
- [Developer Features]()
  - [Hardware Debugging (gdbstub)](./reference/dev_feats/gdbstub.md)
  - [Kernel Debugging (KDNET)](./reference/dev_feats/kdnet.md)
- [Devices]()
  - [Firmware]()
    - [UEFI: mu_msvm](./reference/devices/firmware/mu_msvm_uefi.md)
    - [BIOS: Hyper-V PCAT BIOS](./reference/devices/firmware/pcat_bios.md)
    - [Linux Direct]()
  - [Virtio]()
      - [virtio-fs]()
      - [virtio-9p]()
      - [virtio-serial]()
      - [virtio-net]()
      - [virtio-pmem]()
  - [VMBus]()
      - [storvsp]()
      - [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]()
      - [Floppy]()
      - [PCI]()
      - [VGA]()
  - [Direct Assigned]()
- [Device Backends]()
  - [Serial]()
  - [Graphics and Input]()
  - [Storage]()
  - [Networking]()
- [Architecture](./reference/architecture.md)
  - [OpenVMM Architecture](./reference/architecture/openvmm.md)
    - [mesh]()
    - [inspect]()
  - [OpenHCL Architecture](./reference/architecture/openhcl.md)
    - [IGVM](./reference/architecture/igvm.md)
    - [Boot Process](./reference/architecture/openhcl_boot.md)

---

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