Developer Proves Apple M1 Silicon Purrs Running Windows On Arm
Apple's updated Mac mini, MacBook Air, and MacBook Pro 13" have only been around for a couple of weeks, but one enterprising developer has already gotten the Arm64 Insider Preview for Windows 10 to boot on Apple Silicon by patching QEMU, a processor emulator and virtualization application. Developer Alexander Graf posted proof of Windows 10 running on an M1 Mac and linked to a series of patches he's contributed to the QEMU repository. With these updates, users will eventually be able to create their own QEMU virtual machines to run Windows for themselves, but we're not quite there just yet.
Graf did this by interfacing with Apple's own native hypervisor framework built into macOS, rather than building a custom kernel extension for the operating system. Those extensions have to be digitally signed by Apple to boot on an unmodified operating system, and the AFS volume is both encrypted and marked read-only. A Mac won't boot a modified OS partition out of the box, which is great for fighting malware but a pain if you just want to modify your OS.
Alexander Graf shows off Windows 10 on his M1-equipped Mac on his Twitter
What's particularly impressive about this setup is that Graf said in a later tweet that he is running the Arm version of the Windows 10 insider preview in QEMU. Official Windows on Arm has been limited to Microsoft's own SQ1 and SQ2 silicon, which the Windows maker co-developed in partnership with Qualcomm, or Qualcomm's own Snapdragon 8cx platforms like the Samsung Galaxy Book S or LG's Flex 5G. That means that, right now anyway, there's no official installer for Windows 10 on Arm. However, the latest Windows Insider preview allows creating Arm VMs in Hyper-V, so he might be using the image provided for insiders on Microsoft's own website.
Because this is very much a work in progress, Graf says there are a few catches with the current implementation. In his commit overview, he says that Wait for Interrupt (WFI) emulation is missing entirely, so right now the virtual machine will peg any CPU cores dedicated to running the VM at 100% at all times. He also says that other features are still unimplemented and just "returning 0", meaning that these functions report that all is well even though they're not currently handling the hardware features they're meant to handle. It's certainly not ready for a supported release, but this is great news none-the-less. XHCI for USB 3.0 devices is currently broken with the UEFI shim, but works just fine in Linux and Windows.
These are early days for virtualizing Windows 10 on the Mac. The big commercial outlets Parallels and VMWare are both working on their own solution for making Windows and Macs running Apple Silicon to get along. Also don't forget that Apple's own macOS Big Sur can run native x86-64 Mac applications via Rosetta 2. For now, curious onlookers can grab the QEMU source code and build the application for themselves.