Apologies in advance for the very basic nature of this question.
Does VMware Fusion virtualize/emulate the OS or the chip that the OS runs on?
The reason I’m asking is that I’m confused as to why there seem to be unresolved issues with Fusion running Windows on ARM chips. I’m hearing that Microsoft is considering offering support for a version of Windows that can run on ARM chips, but... is that even necessary? Is there a need to wait for Microsoft to do this? I understand why that might make Windows run faster on ARM, but if Fusion virtualizes the chips that run Windows, isn’t it possible to move forward and develop an ARM version of these chips with no additional input/action from Microsoft?
Am I missing something here?
Hi,
There are no dumb questions.
With virtualisation as it is VMware Fusion emulates the virtual hardware of a computer. For the CPU however it does not, your applications and OS do run on the actual CPU that is in your computer. This means that for your guest OS it has to match the CPU from the host. Apple's Rosetta2 only works for macOS software, not for the hypervisor platform.
As a result on an Arm based apple you can only run arm based guest OS's.
The VMware Fusion team is looking into the ability to emulate the intel processor, but that's in research stage and they are not willing to say more about the status of that project.
They have however committed themself to release a version of VMware Fusion which you can run on Apple Silicon, but that -at least initially- will be only for OS guests that support the arm processor. We don't know if that will even change.
There is certainly a lot of demand for having intel support.
Microsoft has versions of Windows that can run on Arm, but those arm Windows versions are only available for their OEM hardware partners and cannot be obtained as an enduser, they come with the arm hardware that you buy.
hope this helps,
--
Wil
Hi,
There are no dumb questions.
With virtualisation as it is VMware Fusion emulates the virtual hardware of a computer. For the CPU however it does not, your applications and OS do run on the actual CPU that is in your computer. This means that for your guest OS it has to match the CPU from the host. Apple's Rosetta2 only works for macOS software, not for the hypervisor platform.
As a result on an Arm based apple you can only run arm based guest OS's.
The VMware Fusion team is looking into the ability to emulate the intel processor, but that's in research stage and they are not willing to say more about the status of that project.
They have however committed themself to release a version of VMware Fusion which you can run on Apple Silicon, but that -at least initially- will be only for OS guests that support the arm processor. We don't know if that will even change.
There is certainly a lot of demand for having intel support.
Microsoft has versions of Windows that can run on Arm, but those arm Windows versions are only available for their OEM hardware partners and cannot be obtained as an enduser, they come with the arm hardware that you buy.
hope this helps,
--
Wil
Wow wila! Thanks for the very clear and informative answer! I feel like I have a much better understanding of how things are set up now.
Can I ask a low-priority followup? (I don't want to take resources away from people who are in need of actual help.)
Is emulating a chip a much greater technical challenge than emulating the OS?
I wonder if the biggest difficulty faced by the company is technical or intellectual property related?
I'd 100% use a product like that. Hoping for a smooth transition.
Again, thanks for the great answer.
Hi,
I wouldn't want to say that one is more difficult than the other.
They are both hard problems, especially if you have to start from scratch.
Emulation of a CPU certainly is a lot of work, certainly with today's intel CPU's which have a lot of history and thus a lot of legacy in there.
Running a virtual platform is also a lot of work as you'll have to not only emulate the motherboard, but also things like a display adapter, make it possible for having features such as device passthrough etcetera..
VMware already has done the latter, we have the virtualisation platform and can use it today. I hope they can also offer the CPU emulation feature, but we'll have to wait and see. It will take some time for sure.
--
Wil
It'll be interesting to see what's better - Rosetta doing the emulation for x86 windows, or windows arm doing the x86 emulation for applications (assuming you can get a license as you mentioned).
Tons of moving parts, options and paths. I have high hopes that by the time we get the mid and high end Apple Silicon machines we'll have a viable windows option. Based on the early benchmarks, it may be a net wash in terms of performance, which would be amazing. The only open question is if apple is going to go their own way on GPU's, or provide a discrete and/or eGPU option.
Next year is going to be expensive 🙂
Hi,
dlhotka said:
" The only open question is if apple is going to go their own way on GPU's, or provide a discrete and/or eGPU option."
There are very few arm based drivers at this moment for GPU's and I'm not even only talking about macOS.
This problem also exists for Linux. At least now with the new Apple Silicon hardware GPU hardware manufacturers will want to develop those drivers. If apple is going to help with that and allowing their drivers on macOS?
I'm not quite sure.
It would be interesting to see the contents of /System/Library/Extensions folder on an M1 based mac. Sadly it will be a little while before I will have one myself or I would have done so already 🙂
edit: Oh, I'm sure you know, but before somebody else reads something into this.
There is currently no Rosetta for Windows and it isn't likely that Apple will expose Rosetta for virtualisation workloads. VMware will have to develop their own version of Rosetta as it looks like now.
--
Wil