Back to Wsl2 Linux Kernel

ACRN Hypervisor Introduction

Documentation/virt/acrn/introduction.rst

5.5.32.1 KB
Original Source

.. SPDX-License-Identifier: GPL-2.0

ACRN Hypervisor Introduction

The ACRN Hypervisor is a Type 1 hypervisor, running directly on bare-metal hardware. It has a privileged management VM, called Service VM, to manage User VMs and do I/O emulation.

ACRN userspace is an application running in the Service VM that emulates devices for a User VM based on command line configurations. ACRN Hypervisor Service Module (HSM) is a kernel module in the Service VM which provides hypervisor services to the ACRN userspace.

Below figure shows the architecture.

::

            Service VM                    User VM
  +----------------------------+  |  +------------------+
  |        +--------------+    |  |  |                  |
  |        |ACRN userspace|    |  |  |                  |
  |        +--------------+    |  |  |                  |
  |-----------------ioctl------|  |  |                  |   ...
  |kernel space   +----------+ |  |  |                  |
  |               |   HSM    | |  |  | Drivers          |
  |               +----------+ |  |  |                  |
  +--------------------|-------+  |  +------------------+

+---------------------hypercall----------------------------------------+ | ACRN Hypervisor | +----------------------------------------------------------------------+ | Hardware | +----------------------------------------------------------------------+

ACRN userspace allocates memory for the User VM, configures and initializes the devices used by the User VM, loads the virtual bootloader, initializes the virtual CPU state and handles I/O request accesses from the User VM. It uses ioctls to communicate with the HSM. HSM implements hypervisor services by interacting with the ACRN Hypervisor via hypercalls. HSM exports a char device interface (/dev/acrn_hsm) to userspace.

The ACRN hypervisor is open for contribution from anyone. The source repo is available at https://github.com/projectacrn/acrn-hypervisor.