apple fusion linux virtualization

Fusion on Apple Silicon: Progress Update

It’s been a few months since our informal announcement via Twitter back in November where we committed to delivering VMware VMs on Apple silicon devices, so we wanted to take this opportunity to share a bit about how our progress with our little project to bring Fusion to life on Apple silicon Macs this year.

The quick read

Before we get right into it, I just want to summarize our position way up front with a quick tl;dr:

  • We will be delivering a Tech Preview of VMware Fusion for macOS on Apple silicon this year.
  • Development is moving along very well, meeting or exceeding our expectations, but there are challenges and much work still to do
  • We don’t plan to support installing or running x86 VMs on Macs with Apple silicon.
  • Windows is second priority behind Linux
    • Microsoft currently does not sell licenses of Windows 10 ARM for virtual machines.
    • Insider builds of Windows 10 ARM may only be installed on systems with a licensed version of Windows 10, which is currently not available on Apple hardware.
  • macOS VMs are not in scope in the short term. There are challenges there which will require Apple to work with us to resolve.

A new generation of Macs

With the introduction of Apple silicon, it was revealed that the new CPU line would be based on the same Arm CPU architecture found in an iPhone or on an iPad as opposed to the x86 or x86_64 Intel (or AMD) architectures found on desktops and notebooks. With the new architecture comes incredible performance gains, thermal improvements, and dramatically improved battery life, but poses some unique challenges for virtualization apps like Fusion Pro and Player.

With first generation of Apple silicon chips, namely the M1, Apple has made significant performance and efficacy improvements, with claims of “Up to 2.8x CPU performance; Up to 5x the graphics speed; Up to 11x faster machine learning; And up to 20 hours of battery life” on a new 13” MacBook Pro.

Seeing improvements like that, it comes as no surprise to us that when users got their hands on M1 devices they naturally wanted to run virtual machines on them! Why not take advantage of that extra CPU power and carry around a single notebook instead of 2 laptops, right? We agree.

In much the same way they did when moving from PowerPC to Intel CPUs back in 2006, Apple introduced a new version of Rosetta to support running Intel apps on Apple silicon. For the most part, apps ‘just work’, even if they’re a bit slower.

However, for those that need to run another operating system like Linux or Windows, Rosetta 2 doesn’t support Virtualization, and Apple silicon Macs don’t support Boot Camp. That means it’s time for us to innovate and rebuild our beloved desktop hypervisor for Macs, VMware Fusion, to support the next generation of Apple hardware.

Fusion’s roots

With the 2006 transition, a tiny (but incredible!) team of engineers at VMware saw an opportunity. As a side project, this small group were able to essentially rebuild Workstation to run on the Mac using Apple’s UI, thus creating the foundation of what we now know as VMware Fusion

One of the benefits our users appreciate of having older “enterprise-grade” siblings with Workstation on the desktop and ESXi in the data center is that it gives organizations a consistent operating model. A VMware VM behaves pretty much the same regardless of what product it’s running on. Developers and Operations teams can move VMs and templates between data centers, desktops, and clouds with ease. This is super important to us and to our customers, particularly as more and more operational workflows become automated.

For those who might not have studied the history of VMware, the hypervisor stack in Fusion shares much of the same code as the stack that runs in the majority of the world’s data centers: ESXi, which itself was created from breaking apart the internals of VMware Workstation into it’s functionally discrete components: Storage, Networking and Compute.

Some context

Now, we’re no stranger to Arm CPUs, having shipped what is currently a something we call a Fling with ESXi Arm Edition. Delivering ESXi for Arm has been a multi-year effort, and yet it’s still not quite a Product like ESXi on x86 currently is.

So when we learned about the M1 devices, we knew we had the in-house expertise on both the Arm team, and also on the Fusion bench, to set in motion a plan to re-invent our Mac desktop hypervisor to support this incredible new platform. Being able to build on top of what we’ve learned with our still-evolving Fling has been crucial, and thankfully we have some overlap in the teams’ history, meaning folks have exactly the right experience needed for this project. 

To support Fusion on M1 devices, while maintaining code and feature compatibility with our ecosystem, we are essentially bringing the core of these two projects together.  This is a much different task that simply shipping a single product like Fusion to say the least!

So, how’s it going?

Well, our initial assessments are going very well! For starters, we have VMs booting in a variety of Arm operating systems, and we are very impressed with the performance! 

Because of our kinship with ESXi, we have a major architectural advantage over our competition. ESXi is designed to be enterprise-grade, which includes security, resiliency and performance benefits that both Fusion and Workstation get to benefit from.

Here’s a couple of screenshots from my test desktop, a M1 MacBook Air with 8 CPU + 8GPU cores and 16GB of RAM:

You can see 7 VMs booted in the Library window, with Fedora 34 up front and Ubuntu 21.04 in the Preview window. Still runs 20 degrees (Celsius) cooler than my Intel Mac Mini
Same VMs as above but in separate windows, elegantly viewed with Expose.

You can see here that I have 7 ARM VMs booted at once… 2 are CLI only (Photon and BSD), the others are full desktops… each is configured with 4CPU and 8GB of RAM. 6 different Linux flavors and 1 FreeBSD… MacBook Air. On battery. No fans. Yep. 

Of course, just booting a bunch of VMs that are mostly idle isn’t quite a ‘real world experience’, nor is it the same as doing some of the stress testing that we perform in the leadup to a release.  Even with that said, and note that I’m using ‘debug’ builds which perform slower, in my 12 years at VMware I’ve never seen VMs boot and run like this. So we’re very encouraged by our early results, and seriously can’t wait to get it on every Apple silicon equipped Mac out there.

Sounds good, so what’s the hold up?

While booting all that at once and it being usable (which it all has been in my testing) is an impressive feat in itself, we do still have a ways to go, and some challenges along the way.

For instance, the best Linux VM experience comes by installing VMware Tools, and by and large Tools are included with every Linux distribution. Currently, open-vm-tools are not readily available on the aarch64 (Arm) platform.

Quick refresh, VMware Tools:

  • Is included by default with most Linux distributions
  • Is part of what enables the features that work between host and guest.
  • Improves VM performance
  • Provides a consistent management layer.
  • Delivers graphics drivers and ‘plumbing’ (via open-vm-tools-desktop)

The ESXi-Arm project, in addressing this gap, currently has users build open-vm-tools from source itself. That works just fine for some people, but obviously not everyone is comfortable doing that.

Because open-vm-tools is such a key building block to support the experience we want to deliver for Linux VMs on every platform we support, we’re working with various Linux upstream projects to include the necessary kernel patches to support open-vm-tools and open-vm-tools-desktop on arm64/aarch64 architectures so they can be included in OS distributions. These changes will also benefit the ESXi-Arm Fling by not having to compile Tools from source going forward, so things should ‘just work’ out of the box, as users have come to expect.

So for now, while VMs are booting, we don’t currently have things like 3D hardware accelerated graphics, and other features that require Tools which Fusion users on Intel Macs have come to expect.

That said, even without hardware 3D and while using debug-enabled-builds, we are super impressed with how well things are performing, even against the GA release of our competition.

What about Windows?

Of course, users are expecting to run Windows in a virtual machine, much like we’ve been used to for many years now. With Windows on ARM however, this presents a unique situation, particularly as it relates to Licensing. 

The Insider Preview program says: “To install Windows 10 Insider Preview Builds, you must be running a licensed version of Windows 10 on your device.” And as far as we are aware, there is no way to buy a Windows 10 ARM license for a Mac with Apple silicon. There have been plenty of discussions on the topic from users and the media, and from the Insider Download Page, it reads:

With Windows 10 on ARM Insider Preview builds, you can create 64-bit ARM (ARM64) VMs in Hyper-V on Windows 10 ARM-based PCs. Creating ARM64 VMs is not supported on x64 hardware.

ARM64 VMs are only supported on devices that meet the pre-requisites:

  • Windows 10 ARM-based PCs with a Microsoft SQ1, Microsoft SQ2, Qualcomm Snapdragon 8cx, or Qualcomm Snapdragon 850 processor
  • Windows 10 Pro or Enterprise, build 19559 or newer
  • Hyper-V enabled (instructions)

You can see it doesn’t say anything about Apple silicon. We have reached out to Microsoft for comment and clarification on the matter. 

For the time being, our work has been focused on Linux guest operating systems, and we’re confident that if Microsoft offers Windows on Arm licenses more broadly, we’ll be ready to officially support it.

What about x86 emulation?

We get asked regularly about running x86 VMs on M1 Macs. It makes total sense… If Apple can emulate x86 with Rosetta 2, surely VMware can do something too, right?

Well, the short answer is that there isn’t exactly much business value relative to the engineering effort that is required, at least for the time being. For now, we’re laser focused on making Arm Linux VMs on Apple silicon a delight to use.

So, to be a bit blunt, running x86 operating systems on Apple silicon is not something we are planning to deliver with this project. Installing Windows or Linux from an x86 ISO, for example, will not work.

Why not? Let’s explore:

  • For Windows for Arm, Microsoft has an evolving x86 emulation layer within the OS itself
  • For cloud, OCI multi-arch containers can be built with both Arm and x86 layers in a single image from the same build process.
  • For Linux, there are only a handful of apps that haven’t yet been cross-compiled for Arm
  • There are already great open source tools whose primary function is x86 emulation (i.e. Qemu)

More personally speaking, I really don’t think the next era of Macs will be defined by “switchers” in the same way the previous one was. I expect this platform will be one to more rapidly introduce new experiences at the expense of cutting away from the past. Where we’re headed is anyone’s guess, but I am confident the direction we’re moving isn’t backwards.

That being said, we’re always looking to broaden our horizon with respect to use cases, so if there’s something we’re missing, give us (or me) a shout, we’re eager to hear about it.

When can we get it?

The beta that started it all… now 15 years young!

Ah yes, the burning question: When can everyone get their hands on a tech preview?

We’re working diligently to get VMware VMs on Apple silicon and making great progress as you can see, but we would be remiss if our product did something unexpected or unsafe to any computer it was installed on. Even for a Tech Preview there’s a good deal of QA/QE work still to be done as we continue to add code to bring features online.

We’re the leaders of virtualization in the enterprise with SDDC stacks like VCF because we consistently deliver a high measure of quality, security and performance across all our products. It’s not because we shipped first, it’s because we ship when it’s ready.

That said, the team is planning to deliver a Public Tech Preview of VMware Fusion for macOS on Apple silicon before the end of this year, and we can’t wait to get it in the hands of every Apple silicon Mac owner.

Wrapping Up

If you’ve made it this far, the team and I appreciate it! The world is a bit crazy right now, but there are great things coming. Thanks for your understanding and patience as we take the time to get it right amidst all of the challenges of today.

We really couldn’t be more excited about not only the development progress, but for life with Fusion on Apple silicon. The hardware is incredible, and if our early testing is any indication, users are going to be very happy running VMware virtual machines on the latest Macs of today the future.

Keep an eye out in the VMTN community or follow us on Twitter for our Tech Preview announcement in the coming months!

And please consider donating to the charities above to support our Indian friends and colleagues affected by the global pandemic. <3

May 3 – this blog was updated to reflect that the timeframe to deliver this offering is not currently impacted by the COVID situation. That said, for folks looking to help with the relief efforts in India, please check out the 2021 India COVID-19 Recovery Fund.