Last week we heard from Apple’s vice president of software engineering, Craig Federighi, that the ARM version of Windows 10 could run natively on Apple Silicon M1 Macs, but “it really is in Microsoft’s hands.” Now a developer has found a solution that enables the first ARM Windows virtualization to run properly on a Mac M1. This developer claims that the performance is “pretty fast.” This is the first successful virtualization of Windows on a Mac M1.
Successful Windows Virtualization on Mac M1
As Federighi explained that the Mac M1s could certainly run the ARM version of Windows 10, but that it would be up to Microsoft, we detailed the problem that Apple is currently encountering and why it cannot offer Boot Camp with Apple Silicon Macs:
Microsoft’s current license does not allow Apple to use its ARM version of Windows 10 (as it is not pre-installed). And previously, Microsoft said it had no news to share when The Verge asked about it making a change to allow Boot Camp on ARM Macs.
We may be some time away from Microsoft changing its mind about its Windows ARM policy to run natively on Macs (if it does). But in the meantime, it has been discovered that developer Alexander Graf was able to make some adjustments to make his Mac M1 run the operating system as virtualization and even noted that “It is quite agile.”
– Alexander Graf (@_AlexGraf) November 26, 2020
Graf also noted that “Windows ARM64 can run x86 applications very well. It’s not as fast as Rosetta 2, but it’s close. “
Here are more details about the process Graf went through to make this happen:
This could be achieved by running Windows ARM64 Insider Preview virtualizing it through the Hypervisor.framework. This framework allows users to interact with virtualization technologies in user space without having to write kernel extensions (KEXT), according to Apple.
Also, this would not have been possible without applying a custom patch to the QEMU virtualizer. QEMU is an open source machine emulator and virtualizer. It is known for “near native performance” by running guest code directly on the host CPU. So only ARM guest users can seamlessly virtualize on an ARM machine like M1-compatible Macs.
Graf also mentions in one of his tweets that “Windows ARM64 can run x86 applications very well. It’s not as fast as Rosetta 2, but it’s close. “
Graf thinks its process is “definitely reproducible”, but naturally it won’t offer a totally stable system.
For advanced users, you can try the alternative solution (at your own risk) with detailed instructions from Graf here. But for most, using CrossOver or waiting for Parallels support to land will be ideal.