Merge tag 'nfsd-5.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux
[linux-2.6-microblaze.git] / Documentation / virt / acrn / introduction.rst
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ACRN Hypervisor Introduction
4 ============================
5
6 The ACRN Hypervisor is a Type 1 hypervisor, running directly on bare-metal
7 hardware. It has a privileged management VM, called Service VM, to manage User
8 VMs and do I/O emulation.
9
10 ACRN userspace is an application running in the Service VM that emulates
11 devices for a User VM based on command line configurations. ACRN Hypervisor
12 Service Module (HSM) is a kernel module in the Service VM which provides
13 hypervisor services to the ACRN userspace.
14
15 Below 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
35 ACRN userspace allocates memory for the User VM, configures and initializes the
36 devices used by the User VM, loads the virtual bootloader, initializes the
37 virtual CPU state and handles I/O request accesses from the User VM. It uses
38 ioctls to communicate with the HSM. HSM implements hypervisor services by
39 interacting with the ACRN Hypervisor via hypercalls. HSM exports a char device
40 interface (/dev/acrn_hsm) to userspace.
41
42 The ACRN hypervisor is open for contribution from anyone. The source repo is
43 available at https://github.com/projectacrn/acrn-hypervisor.