virtual machine monitor
vmm0 at mainbus0
vmm driver implements a virtual
machine monitor (VMM) suitable for executing
machines (VMs). A VMM runs on the
operating system and provides facilities to execute one or more VMs, each of
which is provided with a suitable complement of virtual hardware.
These VMs run independently of the host, but may interact with it as any other machine would (e.g. via network communications or other means).
VMs are allocated hardware resources by the VMM during creation, including:
- Virtual CPUs
- Virtual network interfaces
- Virtual disk images
- Virtual serial ports
Although VMs execute independently of each other and the host, they do consume host resources and, as such, the number of VMs (and their configurations) should be taken into consideration when planning host capacity.
vmm driver requires suitable host CPU
capabilities in order to provide VM services. The
vmm driver requires at least one CPU with
hardware-assisted virtualization capabilities and nested or extended paging
capabilities to be present on the host. For more information, consult the
CPU vendor's documentation.
The following ioctl(2) commands are provided for managing
VMM_IOC_CREATEstruct vm_create_params *
- Create a VM, initializing
vmmif not yet started. (Does not start the VCPU.)
VMM_IOC_RUNstruct vm_run_params *
- Run a VCPU for a defined VM. Return on VM-exit, when the VCPU stopped, or an error occurred.
VMM_IOC_INFOstruct vm_info_params *
- Get information about the VMs currently hosted by
VMM_IOC_TERMstruct vm_terminate_params *
- Terminate a given VM.
VMM_IOC_RESETCPUstruct vm_resetcpu_params *
- Reset a VCPU to power-on-init state using the provided register state.
VMM_IOC_INTRstruct vm_intr_params *
- Signal a pending interrupt for a VCPU.
VMM_IOC_READREGSstruct vm_rwregs_params *
- Read registers of a VCPU.
VMM_IOC_WRITEREGSstruct vm_rwregs_params *
- Write register values of a VCPU.
VMM_IOC_READVMPARAMSstruct vm_rwvmparams_params *
- Read paravirtualized hardware parameters (such as pvclock(4) version) for a VM.
VMM_IOC_WRITEVMPARAMSstruct vm_rwvmparams_params *
- Write paravirtualized hardware parameters (such as pvclock(4) guest physical address) for a VM.
VMM_IOC_MPROTECT_EPTstruct vm_mprotect_ept_params *
- Set access protections on guest page table entries (only supported on hosts providing EPT or RVI).
cpu(4), intro(4), virtio(4), vmctl(8), vmd(8)
vmm driver appeared in
Mike Larkin <email@example.com>