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