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