0001 .. SPDX-License-Identifier: GPL-2.0
0002
0003 ACRN Hypervisor Introduction
0004 ============================
0005
0006 The ACRN Hypervisor is a Type 1 hypervisor, running directly on bare-metal
0007 hardware. It has a privileged management VM, called Service VM, to manage User
0008 VMs and do I/O emulation.
0009
0010 ACRN userspace is an application running in the Service VM that emulates
0011 devices for a User VM based on command line configurations. ACRN Hypervisor
0012 Service Module (HSM) is a kernel module in the Service VM which provides
0013 hypervisor services to the ACRN userspace.
0014
0015 Below figure shows the architecture.
0016
0017 ::
0018
0019 Service VM User VM
0020 +----------------------------+ | +------------------+
0021 | +--------------+ | | | |
0022 | |ACRN userspace| | | | |
0023 | +--------------+ | | | |
0024 |-----------------ioctl------| | | | ...
0025 |kernel space +----------+ | | | |
0026 | | HSM | | | | Drivers |
0027 | +----------+ | | | |
0028 +--------------------|-------+ | +------------------+
0029 +---------------------hypercall----------------------------------------+
0030 | ACRN Hypervisor |
0031 +----------------------------------------------------------------------+
0032 | Hardware |
0033 +----------------------------------------------------------------------+
0034
0035 ACRN userspace allocates memory for the User VM, configures and initializes the
0036 devices used by the User VM, loads the virtual bootloader, initializes the
0037 virtual CPU state and handles I/O request accesses from the User VM. It uses
0038 ioctls to communicate with the HSM. HSM implements hypervisor services by
0039 interacting with the ACRN Hypervisor via hypercalls. HSM exports a char device
0040 interface (/dev/acrn_hsm) to userspace.
0041
0042 The ACRN hypervisor is open for contribution from anyone. The source repo is
0043 available at https://github.com/projectacrn/acrn-hypervisor.