Skip to content

Supported Platforms and Features

Ivan Roberto de Oliveira edited this page Jul 2, 2019 · 20 revisions

Platforms supported by virt86

virt86 supports the following hypervisors and operating systems:

Windows Linux macOS
Intel HAXM
Windows Hypervisor Platform 1 - -
KVM - -
Hypervisor.Framework - - 2

1 Windows Hypervisor Platform requires Windows 10 SDK 10.0.17134.0 or later.
2 Hypervisor.Framework support is under development. See issue #1 and the hvf branch.

Virtualization platform technologies

The hypervisor platforms themselves support the following hardware-assisted virtualization technologies:

Intel VT-x AMD-V
Intel HAXM -
Windows Hypervisor Platform
KVM
Hypervisor.Framework N/A

Feature matrix

These are the features exposed by each hypervisor platform:

Feature
PlatformFeatures field
virt86
version
HAXM WHPX KVM HvF1
Unrestricted Guest2
unrestrictedGuest
1.0.0 ?
Extended Page Tables (EPT)2
extendedPageTables
1.0.0 ?
Guest debugginga
guestDebugging
1.0.0
(7.3.0)
- ?
Guest memory protection
guestMemoryProtection
1.0.0
(7.2.0)
- ?
Dirty page tracking
dirtyPageTracking
1.0.0 -
(10.0.17763.0)
?
Partial dirty bitmap queryingb
partialDirtyBitmap
1.0.0 -
(10.0.17763.0)
- ?
Large memory allocation (> 4 GiB)
largeMemoryAllocation
1.0.0
(7.1.0)
?
GPA range aliasing
memoryAliasing
1.0.1 ?
Partial GPA range unmapping
partialUnmapping
1.0.0
(10.0.17763.0)
- ?
Extended VM exits
extendedVMExits
1.0.0 - 3
(10.0.17763.0)
4 ?
Custom CPUID responses
customCPUIDs
1.0.0 -
(10.0.17134.0)
5 ?
Guest TSC scaling and virtual offset
guestTSCScaling
1.2.0 -
(Insider Preview 19H2)
- ?

1 virt86 does not implement an adapter for the Hypervisor.Framework yet. See issue #1.
2 Depends on the capabilities of the host's CPU.
3 VM exit on CPUID instruction, MSR access and CPU exception.
4 VM exit on CPU exception only.
5 Also provides a list of supported CPUID responses and default values in supportedCustomCPUIDs.

a Single stepping, software and hardware breakpoints.
b Allows querying subsets of mapped GPA ranges. If dirty page tracking is supported but partial dirty bitmap querying is not, the hypervisor will only allow querying entire mapped GPA ranges.

Clone this wiki locally