ACRN Hypervisor Introduction

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

ACRN userspace is an application running in the Service VM that emulatesdevices for a User VM based on command line configurations. ACRN HypervisorService Module (HSM) is a kernel module in the Service VM which provideshypervisor 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 thedevices used by the User VM, loads the virtual bootloader, initializes thevirtual CPU state and handles I/O request accesses from the User VM. It usesioctls to communicate with the HSM. HSM implements hypervisor services byinteracting with the ACRN Hypervisor via hypercalls. HSM exports a char deviceinterface (/dev/acrn_hsm) to userspace.

The ACRN hypervisor is open for contribution from anyone. The source repo isavailable athttps://github.com/projectacrn/acrn-hypervisor.