1*c619a804SShuo Liu.. SPDX-License-Identifier: GPL-2.0
2*c619a804SShuo Liu
3*c619a804SShuo LiuACRN Hypervisor Introduction
4*c619a804SShuo Liu============================
5*c619a804SShuo Liu
6*c619a804SShuo LiuThe ACRN Hypervisor is a Type 1 hypervisor, running directly on bare-metal
7*c619a804SShuo Liuhardware. It has a privileged management VM, called Service VM, to manage User
8*c619a804SShuo LiuVMs and do I/O emulation.
9*c619a804SShuo Liu
10*c619a804SShuo LiuACRN userspace is an application running in the Service VM that emulates
11*c619a804SShuo Liudevices for a User VM based on command line configurations. ACRN Hypervisor
12*c619a804SShuo LiuService Module (HSM) is a kernel module in the Service VM which provides
13*c619a804SShuo Liuhypervisor services to the ACRN userspace.
14*c619a804SShuo Liu
15*c619a804SShuo LiuBelow figure shows the architecture.
16*c619a804SShuo Liu
17*c619a804SShuo Liu::
18*c619a804SShuo Liu
19*c619a804SShuo Liu                Service VM                    User VM
20*c619a804SShuo Liu      +----------------------------+  |  +------------------+
21*c619a804SShuo Liu      |        +--------------+    |  |  |                  |
22*c619a804SShuo Liu      |        |ACRN userspace|    |  |  |                  |
23*c619a804SShuo Liu      |        +--------------+    |  |  |                  |
24*c619a804SShuo Liu      |-----------------ioctl------|  |  |                  |   ...
25*c619a804SShuo Liu      |kernel space   +----------+ |  |  |                  |
26*c619a804SShuo Liu      |               |   HSM    | |  |  | Drivers          |
27*c619a804SShuo Liu      |               +----------+ |  |  |                  |
28*c619a804SShuo Liu      +--------------------|-------+  |  +------------------+
29*c619a804SShuo Liu  +---------------------hypercall----------------------------------------+
30*c619a804SShuo Liu  |                         ACRN Hypervisor                              |
31*c619a804SShuo Liu  +----------------------------------------------------------------------+
32*c619a804SShuo Liu  |                          Hardware                                    |
33*c619a804SShuo Liu  +----------------------------------------------------------------------+
34*c619a804SShuo Liu
35*c619a804SShuo LiuACRN userspace allocates memory for the User VM, configures and initializes the
36*c619a804SShuo Liudevices used by the User VM, loads the virtual bootloader, initializes the
37*c619a804SShuo Liuvirtual CPU state and handles I/O request accesses from the User VM. It uses
38*c619a804SShuo Liuioctls to communicate with the HSM. HSM implements hypervisor services by
39*c619a804SShuo Liuinteracting with the ACRN Hypervisor via hypercalls. HSM exports a char device
40*c619a804SShuo Liuinterface (/dev/acrn_hsm) to userspace.
41*c619a804SShuo Liu
42*c619a804SShuo LiuThe ACRN hypervisor is open for contribution from anyone. The source repo is
43*c619a804SShuo Liuavailable at https://github.com/projectacrn/acrn-hypervisor.
44