Engines and limits
Which engine runs which guest, and the ceiling on each — stated up front rather than discovered later.
1VMTool ships two engines. The app picks the right one; this page is for when you want to know why, or to override it.
| Virtualization.framework | The 1VM engine | |
|---|---|---|
| Key | apple | native |
| Apple API | Virtualization.framework | Hypervisor.framework |
| Guests | Linux, macOS | Windows on ARM, Linux |
| Default for | Linux and macOS | Windows |
| Rosetta | Yes | No |
| macOS guests | Only here, permanently | Never |
| Maturity | Apple-maintained | Experimental |
1vm create dev --hypervisor native
1vm guide windows # per-guest facts for your Mac
1vm passport # the whole capability matrix
The 1VM engine has its own page covering what it is, why it replaced QEMU and which capability tier it sits at.
The limits
These are stated on the relevant screen in the app before you commit, and they are worth having in one place.
No x86 guests, on either engine. ARM64 only. Rosetta translates userspace binaries inside a running Linux guest; it does not boot an x86 kernel.
No USB device passthrough. Disk images can attach as USB mass storage, but host hardware cannot be passed through. If you need a dongle inside the guest, this is not the tool.
No hardware-accelerated 3D. The guest display is presented into a Metal-backed window — accelerated scanout, not a virtual GPU. Linux desktops are software-rendered.
Two macOS guests at a time. Apple's limit, enforced by the framework.
One VM per process on the 1VM engine. Apple's Hypervisor permits a single VM per process and Virtualization.framework occupies that slot.
Bridged networking is entitlement-gated. Apple grants it on request; without it the option shows as unavailable rather than failing at boot.
Nested virtualization is narrow. M3 and later only, and feature-detected for your specific Mac rather than assumed.
Windows is experimental. It installs and boots to a desktop, but has not passed cold-reboot, reset-loop or 24-hour soak certification.
Why the limits are in the interface
An option that silently disappears teaches you nothing. Unavailable features
stay visible and disabled with a reason, so you can tell the difference
between "this Mac cannot" and "this engine cannot" and "not built yet". Run
1vm capabilities for the same answer at the terminal.