blob: f8d081bc084d8f32ecf1d9ac87999f28547152cb [file] [log] [blame]
Shuo Liuc619a802021-02-07 11:10:23 +08001.. 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.