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

dontwalkhand

macrumors 603
Original poster
Jul 5, 2007
6,464
3,023
Phoenix, AZ
I have noticed that parallels said they were working on a version of this to be able to run Windows on Apple silicon Macs. Do you think there would be a large performance hit, or would they optimize it in a way where it would still be usable? I don't use Windows for much, if at all, but I do like knowing the option is there if I need it.
 

JMacHack

Suspended
Mar 16, 2017
1,965
2,424
Do you think there would be a large performance hit, or would they optimize it in a way where it would still be usable?
I think it'll likely be "acceptable," maybe even good once the Pro-level M-series chips are out. If the benchmarks of the entry-level are anything to go by, even a moderate performance cost will be acceptable.
 

velocityg4

macrumors 604
Dec 19, 2004
7,336
4,726
Georgia
Hard to say. It could be the performance hit will comparable to any other Intel native program on ARM. Noticeable but still usable. It could also be a miserable experience like the old Virtual PC days. Where something like a PowerPC 601 felt like a 286. It could be that each thread/core Parallels uses feels like Pentium III speeds.
 

KPOM

macrumors P6
Oct 23, 2010
18,308
8,320
I have noticed that parallels said they were working on a version of this to be able to run Windows on Apple silicon Macs. Do you think there would be a large performance hit, or would they optimize it in a way where it would still be usable? I don't use Windows for much, if at all, but I do like knowing the option is there if I need it.
They are working on a version to allow virtualization of other ARM-based OSes, such as Linux. It is up to Microsoft to decide whether they will ever release Windows on ARM for retail sale. Apple doesn’t seem to care one way or another whether Microsoft does that.

If you do use a Windows app and don’t want to buy a separate Windows PC, the best solutions seem to be either use a cloud service such as Shadow (which requires an Internet connection), or see if a WINE solution like Codeweavers Crossover would allow your Windows application to run directly on MacOS without a virtual machine.
 

ADGrant

macrumors 68000
Mar 26, 2018
1,689
1,059
They are working on a version to allow virtualization of other ARM-based OSes, such as Linux. It is up to Microsoft to decide whether they will ever release Windows on ARM for retail sale. Apple doesn’t seem to care one way or another whether Microsoft does that.

If you do use a Windows app and don’t want to buy a separate Windows PC, the best solutions seem to be either use a cloud service such as Shadow (which requires an Internet connection), or see if a WINE solution like Codeweavers Crossover would allow your Windows application to run directly on MacOS without a virtual machine.
And there has been no indication from Microsoft that they will do that.
 

Fomalhaut

macrumors 68000
Oct 6, 2020
1,993
1,724
What Parallels fail to clearly state is whether they are working on an x86 emulation capability that would allow x86 Windows to run. They only mention Windows-on-ARM and the fact that Microsoft now supports running emulated x86_64 apps on this.

I suspect that Parallels is just creating an ARM version of their virtualization software, that will of course only be able to run ARM VMs.

I'm not hopeful that the experience of running an emulated x86_64 app inside a Windows-on-ARM virtual machine will be great.
 

ADGrant

macrumors 68000
Mar 26, 2018
1,689
1,059
What Parallels fail to clearly state is whether they are working on an x86 emulation capability that would allow x86 Windows to run. They only mention Windows-on-ARM and the fact that Microsoft now supports running emulated x86_64 apps on this.

I suspect that Parallels is just creating an ARM version of their virtualization software, that will of course only be able to run ARM VMs.

I'm not hopeful that the experience of running an emulated x86_64 app inside a Windows-on-ARM virtual machine will be great.
I think they were pretty clear that they would be providing a way to virtualize an ARM based OS. x86_64 emulation was never mentioned.
 
  • Like
Reactions: bwintx and ascender

mymacrumorsname

Cancelled
Dec 20, 2019
77
188
Parallels Inc. will enable Parallels on Apple Silicon. Windows on ARM already works, but I am not sure if you can buy such a windows license. Microsoft has plans to emulate x86 / amd64 on Windows for ARM. So, IMO we will be able to run x86 Windows Software on M1 one day. The big question ofc is: when.
 
  • Like
Reactions: KPOM

Fomalhaut

macrumors 68000
Oct 6, 2020
1,993
1,724
Parallels Inc. will enable Parallels on Apple Silicon. Windows on ARM already works, but I am not sure if you can buy such a windows license. Microsoft has plans to emulate x86 / amd64 on Windows for ARM. So, IMO we will be able to run x86 Windows Software on M1 one day. The big question ofc is: when.
and the second big question is how well an emulated app running in a virtual machine will perform. If it's 50% of the native speed, we would be fortunate.
 
  • Like
Reactions: Takuro

linrey

macrumors member
Jun 13, 2007
48
20
Silicon Valley
Is Parallels not able to run in Rosetta? The individual virtual machine files shouldn't need to be modified, they just need to be available to the VM itself.
 

venom600

macrumors 65816
Mar 23, 2003
1,310
1,167
Los Angeles, CA
Is Parallels not able to run in Rosetta? The individual virtual machine files shouldn't need to be modified, they just need to be available to the VM itself.

Rosetta does not allow VM of any kind. As of right now there is no method of emulating X86 on ARM other than Rosetta. All they have right now is a universal binary that will allow you to virtualize other ARM operating systems. If you want to run Linux or Android, you're set.

Parallels (and VMWare or anyone else) will need to develop X86 to ARM code emulation software, similar to the way it was with Virtual PC and SoftWindows back in the PPC days. That's a tall order. Until they have, there is no running X86 VMs on these machines.
 
  • Like
Reactions: Fomalhaut

Takuro

macrumors 6502a
Jun 15, 2009
584
274
there is no reason to think parrallel would emulate an x86-64 processor. it's not an emulator; it's a VM.
^^^ Yes, this. All it does is carve out resources from an existing x86 system. That's why you can't run non x86 operating systems on it.

Parallels is acting like they are optimistic about all this and find it to be an innovative move by Apple and blah, blah, blah. Behind the scenes, there's no way they aren't sh*tting the bed right now about losing a ton of business. Even if they virtualize Windows for ARM, they are at the mercy of Microsoft's x86 => ARM emulation layer this time around for non-ARM programs, and Windows for ARM does not have a robust native software library yet.

This is a very different situation from when their company was founded, which occurred right after Apple's the transition to Intel. Back then, the business opportunity was ripe for the picking to attract a large customer base. This time around, there's a lot more risk. On one hand, non-ARM Windows programs may not perform too well and it could turn off some customers, including killing most of its usability for things like gaming. On the other hand, since Bootcamp is now dead, unless you're comfortable to mess around with the iBoot loader via hacks, something like Parallels might be one of the only ways to run Windows in any form on a Apple Silicon Mac, performance be damned.

It's going to be an interesting next couple years for them, that's all I can say.
 
Last edited:
  • Like
Reactions: Lights87

Gerdi

macrumors 6502
Apr 25, 2020
449
301
Even if they virtualize Windows for ARM, they are at the mercy of Microsoft's x86 => ARM emulation layer this time around for non-ARM programs, and Windows for ARM does not have a robust native software library yet.
...
On one hand, non-ARM Windows programs may not perform too well and it could turn off some customers, including killing most of its usability for things like gaming. ...
1) They do not have to do anything special in order to make Windows boot. They just have to provide a virtualized ARM64 environment. So the notion that they explicitly need to "virtualize Windows on ARM" is just wrong. There are potential showstoppers - for instance Windows needs an EFI/ACPI in order to boot properly - but thats already a SW component running inside the virtual machine. Parallels could or could not provide such a SW component - but it could as well come from a 3rd party.

2) For gaming emulation of the CPU is hardly an issue. In many cases you are just GPU limited and not CPU limited. The question of a high performance Direct3D driver for Apple Silicon is the much bigger issue. I believe this came from Parallels in the past. Without such an HW accelerated driver games will still run as they will be using WARP - but thats awfully slow apparently.

Also at least for testing you could just download Windows for ARM including an installer. Of course that does not give you a valid license at the moment - but it typically works.
 

jay-m

macrumors member
Oct 30, 2019
32
30
It is not Parallels who needs to emulate x86 code. It is Windows which will do it at a certain point, I believe.
It is not a matter of belief, in September it was announced by MS themselves that x64 emulation will be available on Windows 10 ARM this month (first through Insider Program with wide availability next year) and they already support running x86 apps on Win 10 ARM.

There will be no technical challenges to get x86/x64 Windows apps running inside ARM version of Parallels - the obstacle is that MS does not sell Windows 10 ARM licenses at the moment, there are only available to OEMs to be preinstalled on new ARM computers, but they can change this any moment (actually you can already download preview build of Win 10 ARM for use inside virtual machines from: https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewARM64 )

And what will be performance of such emulation? It is very hard to say now, there are no benchmarks that have both x86 and ARM64 versions but emulated 32-bit Chrome had about 65% JavaScript performance of ARM64 build of Edge (it uses the same JS execution engine as Chrome), not great but not terrible. Is is certainly possible that MS will do Rosetta-like static translation layer for x64 that would give Windows x64 apps near native performance. They already did this for Xbox 360 emulation on Xbox One (PowerPC -> x64 static translation).
 

theluggage

macrumors G3
Jul 29, 2011
8,010
8,443
And there has been no indication from Microsoft that they will do that.

Except that licensing Windows to users and equipment makers (including ARM Windows) is part of Microsoft's core business model, so it is a bit of a poser as to why they wouldn't do that, given that the installed base of M1 Macs is quickly going to rival, and probably overtake, that of ARM-based Windows machine like the Surface X.

NB: They don't have to release a consumer version of Win 10 on ARM - just treat Parallels (or whoever) like any other OEM making an ARM PC: I'd expect to see a Parallels/Windows bundle, or Windows as some sort of in-app purchase in Parallels. That's pretty much what happened in the olden days with SoftWindows on PPC.

I think many people are confused about the difference between emulation and virtualization.

...and others underestimate how much overlap there is between the two, especially today when many "emulators" use just-in-time code translation rather than modelling the guest CPU in software. Last I looked, even hardware-assisted virtualization relied on a certain amount of code translation - and things like the intel VT-x extensions (and their ARM equivalents) simply made that more efficient & solved security issues. Both virtualisation and emulation need similar paravirtualised drivers and software emulation of compatible peripherals, virtual discs, virtual networking etc.

If you look at the open source QEMU application, for example, it supports multiple "engines" for hardware-assisted virtualization and emulation/translatation - as well as an application emulation mode that works a bit like a "Rosetta for Linux".

there is no reason to think parrallel would emulate an x86-64 processor. it's not an emulator; it's a VM.
...which - although it would need the non-trivial addition of an x86-to-ARM code translator - already handles a lot of the other functionality needed for an emulator, giving Parallels and VMWare a head start.

Actually, it's highly likely that the actual hardware-assisted-virtualisation work will be handed off to the "Hypervisor Kit" built into MacOS - that's already an option in Parallels on Intel (used by the App-store friendly version) and it might be the only choice on Parallels for M1.

Also, I think the only thing Apple have said about Rosetta and virtualisation is that it won't run existing Intel versions of Parallels/VMWare etc. because, basically, DUH! Theres no reason that Apple couldn't use/license Rosetta technology as part of an emulator - it depends on how much importance Apple places on the ability to run Windows.

However, the best way of running x86 Windows apps is likely to turn out to be running Windows 10 for ARM and using its own x86 emulation (unless there's some technical reason why that is impossible - and I don't think anybody here knows for sure). Also, MS still seem to be serious about Windows on ARM and the range of native software is improving.
 

Gerdi

macrumors 6502
Apr 25, 2020
449
301
It is very hard to say now, there are no benchmarks that have both x86 and ARM64 versions.
You can run Geekbench 32bit x86 version and native ARM64 version. As far as i remember performance of the emulated version was somewhere above 50%, which is excellent for full dynamic translation.
You can also run 7-zip benchmark x86 vs ARM64 version, where performance was around 60% afaik.

That having said, i doubt that Microsoft will add static translation.
 
Last edited:
  • Like
Reactions: jay-m

Gerdi

macrumors 6502
Apr 25, 2020
449
301
However, the best way of running x86 Windows apps is likely to turn out to be running Windows 10 for ARM and using its own x86 emulation.

It is not likely the best way, but by far the best way for 2 reasons:

1) With Windows ARM you do not need to emulate the kernel but just user space. Emulating the whole machine is much more complicated and much slower as well. All kernel mode drivers including critical DirectX drivers would need to be emulated.
2) In case a native ARM64 version exist - which includes all .Net, Javascript (Internet), Node.js, JDK, Electron etc. application - Windows ARM would run the native version. These would need to be emulated when running x86 Windows.
 
  • Like
Reactions: Fomalhaut
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.