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