44 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. SPDX-License-Identifier: GPL-2.0
 | |
| 
 | |
| ACRN Hypervisor Introduction
 | |
| ============================
 | |
| 
 | |
| The ACRN Hypervisor is a Type 1 hypervisor, running directly on bare-metal
 | |
| hardware. It has a privileged management VM, called Service VM, to manage User
 | |
| VMs and do I/O emulation.
 | |
| 
 | |
| ACRN userspace is an application running in the Service VM that emulates
 | |
| devices for a User VM based on command line configurations. ACRN Hypervisor
 | |
| Service Module (HSM) is a kernel module in the Service VM which provides
 | |
| hypervisor services to the ACRN userspace.
 | |
| 
 | |
| Below figure shows the architecture.
 | |
| 
 | |
| ::
 | |
| 
 | |
|                 Service VM                    User VM
 | |
|       +----------------------------+  |  +------------------+
 | |
|       |        +--------------+    |  |  |                  |
 | |
|       |        |ACRN userspace|    |  |  |                  |
 | |
|       |        +--------------+    |  |  |                  |
 | |
|       |-----------------ioctl------|  |  |                  |   ...
 | |
|       |kernel space   +----------+ |  |  |                  |
 | |
|       |               |   HSM    | |  |  | Drivers          |
 | |
|       |               +----------+ |  |  |                  |
 | |
|       +--------------------|-------+  |  +------------------+
 | |
|   +---------------------hypercall----------------------------------------+
 | |
|   |                         ACRN Hypervisor                              |
 | |
|   +----------------------------------------------------------------------+
 | |
|   |                          Hardware                                    |
 | |
|   +----------------------------------------------------------------------+
 | |
| 
 | |
| ACRN userspace allocates memory for the User VM, configures and initializes the
 | |
| devices used by the User VM, loads the virtual bootloader, initializes the
 | |
| virtual CPU state and handles I/O request accesses from the User VM. It uses
 | |
| ioctls to communicate with the HSM. HSM implements hypervisor services by
 | |
| interacting with the ACRN Hypervisor via hypercalls. HSM exports a char device
 | |
| interface (/dev/acrn_hsm) to userspace.
 | |
| 
 | |
| The ACRN hypervisor is open for contribution from anyone. The source repo is
 | |
| available at https://github.com/projectacrn/acrn-hypervisor.
 |