Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

sulliops

macrumors newbie
Original poster
Dec 12, 2020
9
2
Hilton Head Island, SC
Hi all,

So I have my new M1 MacBook Air and I’m looking to virtualize Windows and stop carrying around two laptops, now that Windows on ARM supports x64 emulation (albeit horribly, but support nonetheless).

Can anyone that has tried both the new Parallels M1 Preview and UTM (essentially QEMU) tell me what, if any, performance differences I can expect running Windows on ARM? Parallels is obviously backed up by a full-time dev team, however UTM (being QEMU in a shiny skin) supports x86_64 emulation (which would be useful for running legacy versions of Windows separate from Windows on ARM) so I’m leaning towards the latter.

Thanks!
 
Parallels in Technical preview could be good for you. I saw it running Windows ARM. The problem wasn't Parallels, but of course it was Windows that was buggy.

I wouldn't expect a fully running and fully stable (as Windows is stable ...) Windows ARM with x64 apps inside a Parallels VM on Apple M1 before 3Q2021.
 
  • Like
Reactions: Diesel79
I might be wrong, but I think most people use ACVM (which is also based on QEMU) instead of UTM for the Windows on ARM virtualisation, because it is easier to set up:

As both the technical preview of Parallels as well as the insider preview of Windows 10 on ARM are currently available for free (and ACVM/QEMU is free anyway), I would recommend simply trying if ACVM fits your needs or if you need the additional features of Parallels.

Since both Parallels and QEMU have to use Apple's hypervisor the basic performance will be quite similar. It's probably a good idea to switch to "virtio-gpu" in ACVM as explained in the link above.
I haven't tested this yet, but I'm pretty sure that Parallels is better for 3D acceleration if the guest extensions are installed.

Both are in early development, though, so expect some snags. I'm actually surprised how early the Windows virtualisation has been tackled.
The future might look a bit different. I'm somewhat positive that Parallels might strike a deal with Microsoft to bundle a special build of Windows for ARM with their software. But I'm not sure if there will be a legal way to get an official copy for QEMU to run, unless Microsoft suddenly starts selling retail copies of WOA.

But x86-64 emulation in QEMU is quite slow. I've used PC emulation before (Virtual PC on a PowerMac G5 and the "Q" frontend to QEMU on a Mac Pro), but I've been somewhat spoilt by the speed of virtualisation on my old Mac Pro.
Installing Windows XP using UTM took ages, and booting it takes probably two minutes (I stopped counting after about a minute).
Originally I wanted to install Windows 2000, because that should be more efficient on QEMU, but that fails with an USB driver error for some reason.

For real legacy software I've installed Windows 98 on DOSBox-X, but it's really slow, because the ARM build is broken for some reason and I had to use the x86-64 build instead. So far I haven't done any real testing with it.
I also wanted to try PCem, but haven't managed a successful build yet. It doesn't really help that neither HomeBrew nor MacPorts is fully native yet...
 
probably the best if you want to depend on.
This won't be for anything mission-critical, as 99% of my workload can be done on macOS (and anything else is done on my beefy PC at home).

I might be wrong, but I think most people use ACVM (which is also based on QEMU) instead of UTM for the Windows on ARM virtualisation, because it is easier to set up:
Never heard of this one, I'll be sure to check it out. UTM is something I'm used to on my iPad, so it just felt like a given.

Since both Parallels and QEMU have to use Apple's hypervisor the basic performance will be quite similar.
This is what I'm really looking for. Parallels has (and will have) the features where QEMU doesn't and won't, with the exception of x86_64 virtualization already available. Once Parallels has x86_64 I'll switch right over, but in the mean time QEMU seems like the best option.

I haven't tested this yet, but I'm pretty sure that Parallels is better for 3D acceleration if the guest extensions are installed.
I know UTM recommends a set of guest additions that are supposed to improve the QEMU experience, although Parellels' is most likely more refined.

Ultimately I was just trying to decide whether or not I wanted to sacrifice QEMU's ability to virtualize x86_64 in favor of Parallels' speed, but it looks like it won't make much of a difference which one I choose until Windows on ARM is much more stable (and, of course, by then, Parallels will most certainly have x86_64 virtualization standard).

Thanks everyone for the help!
 
Once Parallels has x86_64 I'll switch right over

As far as I know Parallels haven‘t announced that they will be adding x86 emulation to their product, so I won‘t count on it ever having anything but ARM64 virtualization (since ARM32 isn‘t supported by the M1 either, which is why some apps in Windows 10 don‘t work until Microsoft provides proper 64 bit versions of these).

That‘s the difference between the two solutions:
QEMU started out as an emulator (hence the name) to which a hypervisor has been added.
Parallels on the other hand has always been a pure virtual machine.

But in terms of performance either running WOA on a VM or something like CrossOver or Hangover will always be faster than full emulation, even if the applications aren‘t native. Because in this case only the code of the application has to be emulated, while the operating system and/or API will run natively.
A full PC emulator will have to emulate the system code in addition to the application, which is obviously slower.
 
  • Like
Reactions: pldelisle
But in terms of performance either running WOA on a VM or something like CrossOver or Hangover will always be faster than full emulation, even if the applications aren‘t native.
This is a good point. I've already been using CrossOver for a few x64 Windows programs (not anything super demanding) and performance is more than acceptable.

UTM/ACVM seems like the best option for me going forward (especially considering it will remain free), mainly because I'll be looking to emulate x86_64 more than I'll be looking to virtualize Windows on ARM.
 
Slight correction of my previous posting:
CrossOver is actually not Apple Silicon native. I‘m guessing that CodeWeavers do this on purpose so they can utilize Rosetta 2 for x86-64 Windows apps. I‘m not totally sure if they‘ve included a x86-32 emulator to handle Win32 apps or if these simply don‘t run.

But since CrossOver is statically recompiled by Rosetta 2 on first launch its API wrapper will be quasi-native, and Rosetta 2 will only have to generate dynamic code for the Windows applications.
QEMU‘s TCG on the other hand has to generate dynamic code for both system and applications (and it is generating an intermediate representation first, which then is translated to the target machine code, which makes it slower but easier to port to new systems).
 
I´ve just doodled around with UTM/Win7(64)/M1 MB Air and was surprised by the resulting speed.
Then macOS11.3 beta 3 wrecked it and I cannot start any VM or emulated machine any more - even the dropdown menus of UTM itself are incomplete/unusable.
Any way around this (other than waiting for a final release of 11.3 or going back to 11.2.x ?
Has anybody encountered the same lately?

(Additional question: Anyone here running UTM on big sur on a Mac Pro (3,1 to 5,1)? A co-worker of mine has installed it but can not get past a blank black screen in the VM.)
 
I have had very good results with Parallels Preview. Crossover is great for the apps it supports, I am a licensee. UTM is dead slow for i386 code. I tried to set up Windows XP and it kind of stalled most of the way through my attempt to the point, I lost patience. I hope Parallels' final version supports code translation. I use it on two other machines and already have three licenses. I am a longtime user of WMVware product - really since the first Workstation beta, but they dropped the ball on Big Sur on "unsupported" hardware on Big Sur (Mac Pro 5,1 running Big Sur forces the HyperVisor instead of loading the KEXT used in Catalina by the same version and the old Xeons miss the instruction set required, Parallels "just works,") and they are very light with their M1 Preview.
Since it is used by my team at work I am still considering it, but right now Parallels gets the nod.
 
I have had very good results with Parallels Preview. Crossover is great for the apps it supports, I am a licensee. UTM is dead slow for i386 code. I tried to set up Windows XP and it kind of stalled most of the way through my attempt to the point, I lost patience. I hope Parallels' final version supports code translation. I use it on two other machines and already have three licenses. I am a longtime user of VMware product - really since the first Workstation beta, but they dropped the ball on Big Sur on "unsupported" hardware - Mac Pro 5,1 running Big Sur forces the HyperVisor instead of loading the KEXT used in Catalina by the same version and the old Xeons miss the instruction set required, Parallels "just works" - and they are very late with their M1 Preview.
Since it is used by my team at work I am still considering VMware Fusion, but right now Parallels gets the nod.
 
Parallels runs WOA okay, but I wish WOA ran better itself. It doesn't run all I need to run. Parallels can also run ARM builds of Linux...

I've only used UTM in the x86 emulating role, and it does work for the most part, but I never got networking to work. (I ran Win10 and WinXP) Very slow, no special drivers included for QEMU to make it any faster. (running on an M1 MBA)

I use Parallels and VMWare Fusion on my intel based Mac's, love both products for different reasons, and I really hope one of them does a full x86 emulator!
 
I´ve just doodled around with UTM/Win7(64)/M1 MB Air and was surprised by the resulting speed.
Then macOS11.3 beta 3 wrecked it and I cannot start any VM or emulated machine any more - even the dropdown menus of UTM itself are incomplete/unusable.
Any way around this (other than waiting for a final release of 11.3 or going back to 11.2.x ?
Has anybody encountered the same lately?

(Additional question: Anyone here running UTM on big sur on a Mac Pro (3,1 to 5,1)? A co-worker of mine has installed it but can not get past a blank black screen in the VM.)
QEmu and UTM really aren't very compatible with the Apple Silicon and the M1 yet. I don't think Apple Silicon is on the QEmu developers build system yet. Most of the stuff that runs seems to use patches to work around problems. I have used the x86_64 cross platform stuff in the Docker preview and it seems to work pretty well. I was hoping that Docker's GitHub had a fork of QEmu with the patches but no luck. UTM does have a somewhat working fork though: https://github.com/utmapp/qemu. This has been helpful in my experiments though it doesn't seem to work as well as the Docker QMEmu stuff.
 
Last edited:
Slight correction of my previous posting:
CrossOver is actually not Apple Silicon native. I‘m guessing that CodeWeavers do this on purpose so they can utilize Rosetta 2 for x86-64 Windows apps. I‘m not totally sure if they‘ve included a x86-32 emulator to handle Win32 apps or if these simply don‘t run.
Correct. Rosetta2 requires all components to be in x86_64.
 
Last edited:
Correct. Rosetta21 requires all components to be in x86_64.
I've been underwhelmed with Crossover honestly. Parallels works so well I'm not sure it's worth going with Crossover. I mean, I have a license but it's slow and hacky unpleasant at best.

Let me add I appreciate the effort the put in Wine, but it's mostly benefiting Linux x86 users. That and Proton. Honestly I wonder the future of that on the AS Mac platform.
 
Howdy Folks,

Didn't see this mentioned here, so I thought I would post it. Hector "Marcan" Martin is working on an Apple M1 native GNU/Linux distro. You can read the progress here: Progress Report: January / February 2021 - Asahi Linux. He goes into some detail about the inner workings (or what he thinks they are based on his work) of the M1 SOC. This will shed some light on the complexities of the hardware for this platform. The Apple M1 SOC seems to be very different from other implementations, so I imagine that this complexity will make standard WOA work slower than folks would want. Microsoft would need to work with Apple, and build an M1 native version of WOA, which I doubt they will do. Good luck!

Rich S.
 
The Apple M1 SOC seems to be very different from other implementations, so I imagine that this complexity will make standard WOA work slower than folks would want. Microsoft would need to work with Apple, and build an M1 native version of WOA, which I doubt they will do. Good luck!

What are you talking about? There is not anything special in M1, which would require a specialized version of Windows at all. The only exception i could thing of is the lack of ARM32 compatibility of M1, which some applications (not Windows itself) do require.
 
What are you talking about? There is not anything special in M1, which would require a specialized version of Windows at all. The only exception i could thing of is the lack of ARM32 compatibility of M1, which some applications (not Windows itself) do require.
Did you read the article I linked? He talks about registers and instructions that are unique to the Apple M1.
 
  • Like
Reactions: Diesel79
Did you read the article I linked? He talks about registers and instructions that are unique to the Apple M1.

I don't need to read the article as i am familiar with the AS HW internals. In either case i did read the article now and the issues can be grouped into few points:

1) Device tree and boot staging - Windows always use and require UEFI and ACPI - so nothing special here
2) AIC - Windows is always assuming GIC - and apparently Apple Framwork/Parallels is providing GIC like virtualization features despite the underlying interrupt controller being AIC.
3) The special instruction like AMX are irrelevant for Windows, as there is no compiler support for these instructions anyway - again irrelevant
4) Most of these special registers are indeed chicken bits - as the article clearly states. Windows would not touch any of these registers - but as these provide access to chicken bits it is again irrelevant.
 
Last edited:
In regards to licensing Windows 10 on ARM while using the Parallels Tech Preview, I used a license key I was previously using on a W10 VM from my older/replaced 2015 MBP, and it activated just fine. I believe this will only work with a Windows 10 Pro license and not a Windows 10 Home or Business/Education license. I’m not 100% sure of the specifics, but Microsoft has different/more lenient rules when it comes to licensing virtually as opposed to on hardware. This 2nd activation I did for Windows 10Pro on ARM could be it’s final activation until I call and do the funky reset thing.

As for performance, for me, everything has been Great. I’m using an M1 MBP 16GB/2TB. Parallels could have some bugs fixed, IMO, but more on the Ubuntu “Parallels Tools” side than Windows. I’m using Win10 mainly for testing with my job for a few internal web sites that only work with MS Edge pages on our Windows machines. Very Very old “legacy” style pages.. But they work great! That, along with some Citrix apps and o365/Exchange (also via Edge/Azure). Nothing fancy. I allocate 4 Processors & 4GB for RAM and let Parallels manage the Graphics, not sharing any folders accept my Mac’s Downloads folder. I’m not having any memory leak issues. There’s been some issues with Networking thru “Shared Network”. But for me, I’ve got a Dock I can connect an Ethernet Cable to, and then set the VM’s connection as “Wi-Fi” and my MBP using the Wired connection. That’s a Parallels bug, though, that I’m sure will be addressed. Both WoA and Ubuntu boot up to a Desktop FAST, like within 10 seconds at most.

Everything will really depend on your usage, but as noted by folks above, expect bugs during any beta process, both with Parallels & Windows & Linux. I also still firmly believe that Parallels will offer an option to buy a license for and download a version of Windows 10, regardless of the architecture of your Mac (Intel or M1), with either some kind of explainer or maybe even a way to detect the version needed. Their store already offers a way to buy & download W10 along with a bunch of different versions of Linux and even Android. I would assume that’s all not going away when they come out of Beta for M1.
 
  • Like
Reactions: Leon1das
In regards to licensing Windows 10 on ARM while using the Parallels Tech Preview, I used a license key I was previously using on a W10 VM from my older/replaced 2015 MBP, and it activated just fine. I believe this will only work with a Windows 10 Pro license and not a Windows 10 Home or Business/Education license. I’m not 100% sure of the specifics, but Microsoft has different/more lenient rules when it comes to licensing virtually as opposed to on hardware. This 2nd activation I did for Windows 10Pro on ARM could be it’s final activation until I call and do the funky reset thing.

As for performance, for me, everything has been Great. I’m using an M1 MBP 16GB/2TB. Parallels could have some bugs fixed, IMO, but more on the Ubuntu “Parallels Tools” side than Windows. I’m using Win10 mainly for testing with my job for a few internal web sites that only work with MS Edge pages on our Windows machines. Very Very old “legacy” style pages.. But they work great! That, along with some Citrix apps and o365/Exchange (also via Edge/Azure). Nothing fancy. I allocate 4 Processors & 4GB for RAM and let Parallels manage the Graphics, not sharing any folders accept my Mac’s Downloads folder. I’m not having any memory leak issues. There’s been some issues with Networking thru “Shared Network”. But for me, I’ve got a Dock I can connect an Ethernet Cable to, and then set the VM’s connection as “Wi-Fi” and my MBP using the Wired connection. That’s a Parallels bug, though, that I’m sure will be addressed. Both WoA and Ubuntu boot up to a Desktop FAST, like within 10 seconds at most.

Everything will really depend on your usage, but as noted by folks above, expect bugs during any beta process, both with Parallels & Windows & Linux. I also still firmly believe that Parallels will offer an option to buy a license for and download a version of Windows 10, regardless of the architecture of your Mac (Intel or M1), with either some kind of explainer or maybe even a way to detect the version needed. Their store already offers a way to buy & download W10 along with a bunch of different versions of Linux and even Android. I would assume that’s all not going away when they come out of Beta for M1.
Hi gank41,

How did you acquire a download of Windows 10 ARM Edition? Have you tried running a Windows x86 app within the Windows 10 VM? It doesn't surprise me that a Windows 10 license activated, as it is all the same licensing server on the backend. However, I was not aware you could download Windows 10 ARM? Thanks!

Rich S.
 
  • Like
Reactions: gank41
Hi gank41,

How did you acquire a download of Windows 10 ARM Edition? Have you tried running a Windows x86 app within the Windows 10 VM? It doesn't surprise me that a Windows 10 license activated, as it is all the same licensing server on the backend. However, I was not aware you could download Windows 10 ARM? Thanks!

Rich S.
You can get the Windows 10 ARM .iso file from Microsoft's Insider Preview page. You need to be signed in for that, too. Also, once you've activated it, you can drop out of the Insider Preview Fast Track and just wait for whatever the next stable update would be. Which might be a while? Honestly not sure.

You can sign up for the Parallel's Tech Preview Here.

As for any specific x86_x64 apps, I'm really just sticking with Citrix & some preinstalled apps along with an internal web app we use for Work. I've tried a few others like CCleaner and Sony Acid Pro and although those install, they do not open. Who knows if that's Windows' fault or the developer's fault, both.. But for what I Need it to do, it does just fine. Better, in fact than my other VM of Windows 10 Pro from my old 2015 MBP, other than some music software I've just replaced on my Mac.
 
I don't need to read the article as i am familiar with the AS HW internals. In either case i did read the article now and the issues can be grouped into few points:

1) Device tree and boot staging - Windows always use and require UEFI and ACPI - so nothing special here
2) AIC - Windows is always assuming GIC - and apparently Apple Framwork/Parallels is providing GIC like virtualization features despite the underlying interrupt controller being AIC.
3) The special instruction like AMX are irrelevant for Windows, as there is no compiler support for these instructions anyway - again irrelevant
4) Most of these special registers are indeed chicken bits - as the article clearly states. Windows would not touch any of these registers - but as these provide access to chicken bits it is again irrelevant.

There are a bunch of things that you don’t mention. Like the fact that Apple uses low-latency interrupt extensions in a non-standard ways for example.

Supporting native Windows on M1 would require not only expensive to write and maintain custom drivers for almost everything, but also modifications to the kernel.
 
There are a bunch of things that you don’t mention. Like the fact that Apple uses low-latency interrupt extensions in a non-standard ways for example.

Supporting native Windows on M1 would require not only expensive to write and maintain custom drivers for almost everything, but also modifications to the kernel.
I personally beleive they will never support this. Apple wants to keep things tied together plus I can imaging they would worry about giving access outside macOS to the internal drive, etc for security reasons.
 
I personally beleive they will never support this. Apple wants to keep things tied together plus I can imaging they would worry about giving access outside macOS to the internal drive, etc for security reasons.

You can literally go and boot a third party kernel on an M1 machine, it’s officially supported and documented. That’s not the problem. The problem is supporting all the custom hardware. Even if Apple were to share their GPU etc. documentation with MS (which I doubt), it would take a significant effort to write and support production ready drivers. Why would either Apple or MS spend resources on that? GPU makers write drivers because drivers sell their products. Apple does care about you running other OS natively. MS won’t make enough money from Apple Silicon to justify spending $$$ on official support.

Now, virtualization is a much more straightforward path. It’s infinitely easier to write and support a DIrectX to Metal wrapper than to write a full driver stack. And there is enough money in it for someone like Parallels to take the job.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.