Developer successfully virtualizes ARM Windows on Apple Silicon

Hope!

ARM-Windows-on-ARM-Mac
Source: Alexander Graf/Twitter

A developer has successfully been able to virtualize the ARM version of Windows on Apple Silicon using the QEMU virtualizer.

Apple’s M1 MacBooks have proved their worth when it comes to performance and battery efficiency. But, since these run on a custom ARM chip, it’s not yet possible to install, dual boot, or emulate Windows; which is in popular demand.

Developer Alexander Graf, however, took to Twitter today to share his achievement: successfully being able to virtualize ARM Windows on Apple Silicon.

Note that he was able to virtualize the ARM version of Windows and not the x86 version. Virtualizing an x86 version of Windows might have been much difficult as compared to the ARM version as Apple’s M1 chip has a 64-bit ARM architecture.

Although, Graf also mentions in one of his tweets that “Windows ARM64 can run x86 applications really well. It’s not as fast as Rosetta 2, but close.”

According to Geekbench 5 results, Windows ARM running on the M1 chip is faster than Microsoft’s Surface Pro X, which is a great deal. The version running on the M1 Mac scored a single-core score of 1288 and a multi-core score of 5449, which obliterates the Surface’s single-core score of 765 and multi-core score of 3014.

He was able to achieve this by running the Windows ARM64 Insider Preview by virtualizing it through the Hypervisor.framework. This framework allows users to interact with virtualization technologies in user space without having to write kernel extensions (KEXTs), according to Apple.

Moreover, this wouldn’t have been possible without applying a custom patch to the QEMU virtualizer. QEMU is an open-source machine emulator and virtualizer. It’s known for “achieving near-native performance” by executing the guest code directly on the host CPU. So it goes without saying that only ARM guests can be perfectly virtualized on an ARM machine like the M1-supported Macs.

apple macos bigsur redesignedapps 06222020

Graf also states that this setup is in its early days and while it’s “definitely possible” to reproduce his results, users shouldn’t expect a perfectly stable system yet.

There is a high demand for running Windows on Apple Silicon. Apple’s Senior VP of Software Engineering, Craig Federighi, in an interview, said that Apple Silicon contains the core technologies to run Windows natively. “[M1] Macs are certainly capable of running Windows.” However, he said that “it’ll really be up to Microsoft” to make it a reality.

When it comes to virtualizing ARM Windows on ARM Macs using Graf’s method, you can even run Windows apps (even x86 ones) that are not available on the Mac.

On the contrary, if an app you need has an x86 version for Macs, Apple has got you covered through its Rosetta 2 emulator. It’s a real-time emulator that converts x86 code into code that can be processed by the M1 processor inside the new Macs. In some cases, users have found Rosetta 2 to be able to run x86 apps faster on ARM Macs as compared to Intel Macs.

If you want, you can check out Graf’s process for virtualizing ARM Windows on Apple Silicon here. It’s a bit complicated for inexperienced users, but if you do a little digging, you may be able to successfully virtualize ARM Windows on your new M1 Mac.


Update: Added Geekbench scores comparison between an M1 Mac running ARM version of Windows and Microsoft’s Surface Pro X running the same.