There’s no doubt that Apple’s new M1 Macs have shaken up the marketplace with its low power consumption and fantastic performance—even with non-native Mac apps, surprisingly. But users who want to run Windows on the Mac are officially and natively left out in the cold.
Admittedly, those of us who run Windows on a Mac are a distinct minority of the community. I run Windows 10 quite a bit on my iMac for professional reasons (and sharper small fonts), and the M1 Mac's lack of Boot Camp support seemed to be a non-starter for me. And after witnessing the M1’s scintillating performance in the testing for this article, I was not happy about it in the least.
Fortunately, the situation is far from hopeless. Thanks to Parallels, the venerable Apple virual machine software, the Windows 10 for ARM preview will run on an M1 Mac with surprisingly workable performance. It’s hardly like running Windows natively via Boot Camp, but it’s not half-bad with native ARM apps.
Alas, Windows on the Mac involves a slew of "ifs" and "maybes." Primarily, there is no guarantee that Microsoft will acquiesce to make Windows 10 for ARM (the required OS) available to end-users. I’m guessing the company eventually will, given the rather upbeat moods of the participants I queried. But who knows? There are forces in play.
ARM vs. ARM
Just in case this whole deal is new to you: Apple's M1 is a system on a chip (SoC) based on the Advanced RISC Architecture/Reduced Instruction Set Computing/Instruction Set Architecture (ARM RISC ISA). Thanks to unified direct-access memory, integrated GPU cores, and cores dedicated to common tasks (such as H.265 video encoding), it’s fast as all get out.
But its most surprising trick is running x86/x64 Mac apps at more than acceptable (if not quite native) speeds. It's faster than my 2015 iMac with an Intel Core i7. This is partly due to the Rosetta 2 install time translation (or requested), but Apple doused the M1 with some of what I call "special sauce"—sly tricks that include support for x86 memory ordering, one of the main differences between Intel and ARM architectures.
ARM is hardly new. It’s in nearly every mobile phone, most portable devices, TVs, and more, though under licenses that allow the vendors to call their ARM implementation anything they want. Even Microsoft has supported ARM for quite a while, first with Windows RT (8.1/32-bit ARM), and now with Windows 10 for ARM.
The full Windows 10 for ARM is currently available only to OEMs, while end users must make due with a beta on the company’s Windows Insider Preview site. As a preview, you can run most software (it’s a beta, some x86 apps crash), but you can’t configure things like the desktop background.
The most recent Windows 10 for ARM betas add x64 to the existing 32-bit x86 emulation, so the OS can run just about anything written for Windows. However, emulation can be very slow. Unless Microsoft rewrites that code to take somehow take advantage of Apple’s special sauce, you’ll never be able to run heavy-duty x86/x64 Windows apps with acceptable performance on Apple’s M1.
Whether Microsoft is considering optimizing for the M1 is something I asked the company about, with no direct answer forthcoming. However, there’s an article on Microsoft’s Answer site about running the Windows 10 for ARM preview on M1 Macs. Hmmm.
Would Apple then relent and implement Boot Camp? I inquired of them about that and several other things. The answer is still no, and I expect that it will remain that way with Apple’s current savage pursuit of security, but it was actually Apple that pointed me to the aforementioned Answer article. More evidence of the decidedly non-hostile attitudes towards Windows on M1 that I sensed from both parties.
M1 optimization of Windows 10 for ARM isn’t quite as far-fetched an idea as it might seem. Recent drama in the valley has more or less let the cat out of the M1 bag.
The Days of Our Lives, Silicon Valley style
Said big cat is one Gerard Williams III, who until quite recently was the chief of all of Apple’s ARM CPU efforts. He strayed from Apple to form a company called Nuvia that works on—yup, you guessed it—CPU designs. There’s a lawsuit in progress over this.
But wait, there’s more. The real stunner is Qualcomm, a huge supplier of ARM-based chips, entering into an agreement to purchase fledgling Nuvia. Ouch. If Apple isn’t just a tiny bit upset over this development, dye my hair red and call me Harpo.
The legal battles might be protracted and vicious, but the bottom line is that Apple’s M1 magic might not be secret or proprietary for nearly as long as the company would’ve liked. What the patent situation is, I don’t know, but clever reverse engineering is another plentiful Silicon Valley skill.
If other ARM chips that handle x86/x64 as well as the M1 show up, then Microsoft would have to suffer a true bout of idiocy not to optimize for it. Even if the method isn’t 100 percent the same (as is likely), it’s bound to take the same approach, which renders optimizing for Apple’s special sauce a mere bagatelle.
Who knows, Apple might decide it’s not such a bad thing to let Windows run natively on their hardware again. Personally, because of the security mission I mentioned, I’m not sanguine about that possibility.
There’s also a side-door for Windows 10 for ARM that Apple’s switch to the architecture has opened, potentially rendering the entire issue moot: more vendors porting their apps to ARM. Apple ARM to Windows ARM is a heck of a lot easier than x86 to ARM.
The wildest idea I had through all of this was Apple all of a sudden deciding the gig is up and selling some of their design secrets to the competition. Or heaven forbid, actual chips. Nah, but It’s an interesting thought.
Personally, I’m pessimistic about Boot Camp, but mildly hopeful that at some point, Apple’s strategy of advanced virtual machine support, and Microsoft taking advantage of the secret sauce will deliver more than acceptable Windows 10 performance on M1 Macs. Even with x86/x64 apps. Which is an absolutely golden opportunity for...
Parallels to the rescue
Parallels, if you’re not familiar, is the insanely integrated virtual machine software from the company of the same name. The ability to run Windows apps on the Mac desktop, files and folders that automatically sync between both desktops, plus other integrations, raise it several tiers above VMWare, VirtualBox and the like for the Mac. Neither of the latter will run on an M1 Mac as of this writing.
Of course, as I said, Parallels requires the ARM version of Windows 10. There are numerous ARM versions of Linux that it will run as well, but that’s not why you’re reading, is it?
The first step in testing was to download the beta version of Windows 10 for ARM, and the technical preview of Parallels 16 that supports the M1. I was already a Windows Insider user, but anyone can sign up. You’ll also need to create an account with Parallels to download the preview.
The entire installation was a breeze. Simply point Parallels to the Virtual Extended Hard Drive file with Windows 10 for ARM on it that you downloaded from Microsoft, and it’s pretty much a straight click-through.
Just about anything to do with basic I/O, hard drive access, copying files, etc. is easily quick enough. Boot time was only around ten seconds, and switching between the two OSs is instantaneous. I also ran Geekbench, though that only really tells you that the M1 chip has fast cores. Note that it can be a tad misleading as M1 cores only handle a single thread, where many x86/x64 cores can handle two. Regardless, in my hands the M1 was insanely snappy with native apps.
The consistent reminders that you’re indeed using a beta OS on a beta virtual machine were mostly graphics-related. The spinning halo of stars at boot, menus not quite as sprightly as they should be, and when dragging about windows, you can see the kind of stutter/judder that used to occur in the old days. Remember when only the outline of windows was visible when you dragged them about?
Bear in mind that I was generally running Windows 10 for ARM at the display’s full 3840x2160 resolution, on a Mac mini with only 8GB of memory, and dedicated only two CPU cores to the virtual machine.
Also, this is hardly the final version of Parallels. Apple told me they are working closely with the company, and the developers were very optimistic about possible large performance improvements. As lags were mostly graphical in nature, it’s quite possible that a more mature graphics driver will cure some or all of what bothered me.
The native ARM apps in Windows also perform acceptably. Alas, there are a ton of apps that have never been ported from x86/x64 and those most definitely look like they’re straining. Still, it was cool to see that Ableton Live (x86/x64), my main music production app, appear without crashing. Animations were jerky and it doesn't cut the mustard for real use, but that it runs at all is rather amazing.
Windows 10 for ARM on Parallels is currently workable in small to medium doses with lightweight x86/x64 apps, and maybe larger doses if you run native ARM apps. If you’re looking to run a CPU-intensive x86/x64 applications, don’t bother until and if Apple's special sauce is supported. Look instead for Windows 10 for ARM or macOS equivalents or ports.
There’s another virtual machine host that runs Windows 10 for ARM on the M1: QEMU. Its primary advantages are that it’s free and open source. The main disadvantage is that it must be installed, configured, and run from the Terminal command prompt. Also, in my limited testing, it ran Windows 10 ARM only at 800x600 screen resolution and there was a severe shortage of drivers. Performance was again, surprisingly workable, but not something you’d want to spend a lot of time with.
While I’m a huge fan of free and open source, at this point, unless you just want to run a native Windows 10 for ARM app once in a blue moon, Parallels is by far the better choice. Even at $99.
The future is... bright?
If you’re looking for a full-on Boot Camp experience where you can run Windows 10 at best speed on an M1 Mac, you’re out of luck. Fast enough (or better) virtual machine performance will likely render the point largely moot for the majority of Windows on Mac users. Assuming a retail version of Windows 10 for ARM becomes available.
That said, you might eventually see close-to-native performance from Windows 10 on your M1 Mac either through an increasing number of ARM apps, or just possibly Microsoft digging into that special x86/x64 sauce. We’ll see, and I’ll be watching closely.
Check back for an update when Parallels ships its final version for M-series.