microsoft/openvmm

Public

mirrored from https://github.com/microsoft/openvmmAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
f6cb131953ec0ed50d22262b4ac7a7f72bbc2a3e

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

Guide/src/index.md

48lines · modepreview

# Introduction

TODO OSS: this entire introduction needs to be rewritten

* * *

OpenVMM is a virtual machine monitor (VMM) written in Rust for Windows and Linux.
It was codenamed HvLite so you may see some references to this name in the
documentation and code. The HvLite name comes from the project being a
lightweight redesign of the Hyper-V VMM (virtualization stack), with the goal of
supporting most of the guest-visible features of Hyper-V. However, OpenVMM has a
few significant design departures from Hyper-V:

* Cross-platform: OpenVMM runs on Windows and Linux, and it can run on either the
  Microsoft hypervisor or on KVM.

* Decoupled: Unlike Hyper-V, OpenVMM is built in its own repo and can run on
  multiple versions of Windows. It runs as an individual process, without the
  presence of any control service/daemon. This improves development and
  deployment time and simplifies servicing.

* Public APIs: Wherever possible, OpenVMM depends on public Windows (and Linux)
  APIs. It uses the Windows Hypervisor Platform (WHP) interface to interact with
  the Microsoft hypervisor.

* User mode: OpenVMM implements as much as possible in user mode. This reduces
  the impact of successful guest attacks, improves developer productivity, and
  simplifies servicing.

An important use case of the OpenVMM VMM is
[OpenHCL](./user_guide/openhcl.md), an environment for providing
virtualization services from inside Virtual Trust Level 2 (VTL2) in a guest
virtual machine rather than in the privileged host/root partition.

This guide describes the architecture and provides developer guidelines for both
OpenVMM and OpenHCL. For instructions on setting up the OpenVMM repo locally,
please refer to the getting started guide for
[Windows](./dev_guide/getting_started/windows.md) or
[WSL2](./dev_guide/getting_started/linux.md).

Once you have the dependencies installed, please refer to the instructions for
building [OpenVMM](./dev_guide/getting_started/build_openvmm.md) or
[OpenHCL](./dev_guide/getting_started/build_openhcl.md), (and optionally, setup
your [development environment](./dev_guide/getting_started/suggested_dev_env.md))

The latest version of this guide can be found at [here](https://aka.ms/openvmmguide).

The source code for OpenVMM can be found at [https://aka.ms/openvmm](https://aka.ms/openvmm).