"Feels native" is a specific claim

Here's what it means in practice. A shell in the guest has no noticeable input lag. git clone, npm install and apt upgrade don't feel slower than on the host. Compiling a moderately sized project doesn't visibly drag. That's the observable effect of CPU traps, memory translation and interrupt delivery staying cheap enough that you can't feel them.

The old instinct came from different hardware

The "VMs feel slow" instinct has a real origin. x86 wasn't designed to be virtualized: it has around 17 instructions that behave differently depending on privilege level but don't trap to a hypervisor, so classic trap-and-emulate couldn't virtualize all of it. VMware's 1998 answer was binary translation, clever software covering a gap in the silicon. Hardware support came later, with Intel VT-x in 2005 and AMD-V in 2006, retrofitted onto an architecture that had shipped for decades without it.

ARM's virtualization extensions had no such history to work around. EL2, the dedicated exception level for the hypervisor, is part of the architecture's design rather than a later patch (the performance deep dive covers it). Apple silicon inherits that clean design, which is why the old assumption doesn't hold here.

What that buys you

In everyday terms: cheap CPU traps mean a shell prompt in the guest responds like a native one. Hardware-assisted interrupts mean network-heavy work, a docker pull or a git fetch against a big repository, doesn't pay a per-packet hypervisor toll. Two-stage memory translation cached in the TLB means a memory-heavy compile isn't quietly re-walking page tables. None of these are settings to tune; every workspace gets them.

Unified memory makes sizing simpler

Apple silicon's unified memory means there's no separate video memory competing with system RAM, as there is on a PC with a discrete GPU. A guest's memory is a slice of the same pool, handed out at boot and reclaimable through the memory balloon device (see the device inventory post) when the guest isn't using it. How much memory to give a Linux VM covers the numbers.

Where it stops

"Feels native" has limits. A Linux guest gets no GPU compute at all, as the fundamentals post explains, which is why AI Bridge keeps the model on the Mac's GPU instead. And none of this applies to a different CPU architecture: an x86-64 guest, or a container pulled with --platform linux/amd64, is emulated and much slower, for the reasons in ARM64 vs. x86-64 on Apple Silicon. The claim is about same-architecture Linux, and only that.

Related reading: the full mechanics, Linux VM CPU performance, and the numbers in the inference benchmark. Or download Velo Workspaces and try it yourself.