Friday, April 1, 2022

Intel Virtualization and Apple Silicon

Apple (Hacker News):

This sample code project demonstrates how to install and run macOS virtual machines on Apple Silicon using the Virtualization framework.

But what if you want to use an older version of macOS, which doesn’t run on Apple Silicon?

Steve Troughton-Smith (tweet):

The transition to Apple Silicon brought about many exciting things, but one of the capabilities left behind was access to the world of Intel-based virtual machines. X86_64 just isn’t a trivial architecture to emulate, and it may never be feasible to do so on Apple Silicon at a useful speed as the operating systems you wish to run gain more and more complexity and become more and more demanding.

You have plenty of great options for emulation, like UTM, but the performance penalty is significant, and that rules out many use-cases.

[…]

VMware no longer boots anything under Rosetta, and the VMware Fusion Apple Silicon preview only supports virtualizing Linux as Microsoft’s licensing story for Windows on ARM does not include the Mac.

[…]

VMware have an enterprise-level operating system called ESXi, which is a bare metal hypervisor. What does that mean in practice? If you have a spare PC and Ethernet, you can install ESXi as its OS, configure it over the network through a web browser, and have it become the dedicated engine that runs your VMware virtual machines. With VMware Fusion Pro, you can connect to that ESXi machine via its IP address, and then be able to run/manage your virtual machines mostly the same as when you could run them locally.

[…]

What you do get, though, is near-native performance, without taking up any of the resources of the Mac you’re working on.

Previously:

5 Comments RSS · Twitter

Intel and AMD should switch to ARM, as Apple has done. The writing is on the wall.

Ghost Quartz

Parallels lets you virtualize Windows for ARM, at least as of Nov 30, 2021; see https://kb.parallels.com/125375. They may have since closed this off in response to Microsoft’s licensing.

I haven’t tried it, since I’m not too keen on Parallels, but this might be the most straight-forward way to run x86 and x86-64 Windows binaries? Between this and Rosetta, you can probably run most x86-64 binaries that aren’t readily compilable for ARM.

Joshua Ochs

While not a solution for the 20% task of general-purpose emulation of older OS's, for the 80% task of running current-version Windows on your Mac, Parallels with Windows 11 ARM works amazingly well. Extremely speedy, and Windows 11's x86/x64 binary support is at least on par with Apple's Rosetta 2, which means you can trivially run most any Windows app you need to.

The 15-year period of trivial Windows compatibility was a lovely accident of Apple's hardware strategy, but never a focus. It's a loss, but compared to the benefits of Apple Silicon, one that seems worth it. I wish I could say the same for their incessant focus on security at the expense of reliability and usability.

I second Parallels with Windows 11 ARM. it is actually the best-performing Windows VM I’ve ever seen, and they includes Windows VMs on my 12-core Ryzen desktop with VMware Workstation, and Windows running *natively* on my Surface Studio laptop (!) AMD64 binaries run great with very little performance penalty. The only issue is that if one of your use cases is to interface with hardware that requires Windows. Drivers must be ARM-native to work and they never are, so that precludes any sort of third-party device drivers in the VM.

I was wondering when you'd cover this; I found it totally by accident with a web search when thinking about a similar project. I'm happy to be the owner of a Mac Mini 2018, for now.

Yes, Windows/ARM64 is a thing, but it's not at the level of compatibility with licensed and deployed x86-64 Windows, which supports certain software with drivers properly (including some remote access software and screen readers I use). And most server hardware running any OS is x86-64 too. (I too favour Fusion, because it's "Native" and I need interop.) Better or worse, right now x86-64 is the "lingua franca" of architectures, as well as a window into the past, so its loss is going to be felt painfully by some of us. (I didn't see mention of Wine/Crossover as another way to run Win32 apps under Rosetta. It's an option, if your app is supported.)

Of course, Apple Silicon really is wonderful and the momentum is only just picking up, Linux will run on it in a VM and possibly soon on bare-metal too, and the future potential for client and server scenarios alike is something from outer space. I can't wait for a new Mac Mini that's more realistic as a server ARM64 homelab, and for Asahi to get to the stage where it's actually possible to use Linux as a general-purpose secondary OS. It'll be awesome.

Leave a Comment