The UTM experience (https://mac.getutm.app/) has been stellar for me. Knowing that others have commented on this being a rough initial release, I really have no reason to try it out.
And while UTM was relatively unknown a year ago, it's become quite popular in my circle of Apple Silicon users, so I imagine VMWare's reception on Apple Silicon is going to be lukewarm at best.
UTM's lack of any accelerated graphics makes a non-starter for most desktop applications these days. It's fine as a frontend to QEMU, but that's all it is. Fusion and Parallels will continue to dominate this space on MacOS.
Unironically the best experience for Linux in my case is no graphics adapter but instead a serial console. You can copy and paste text from the vm console window without any additions!
Fingers crossed that it eventually works but for me it invariably results in a crash or graphical corruption making my VM unusable regardless of the distro (have tried Fedora, Ubuntu, Debian etc)
With Fusion 13, I see no way of creating a macOS guest VM. It isn't in the VM options list. UTM will automagically connect to Apple's servers and download the latest version.
Problem with UTM is there is no copy/paste or file transfer between a macOS host and guest which is a huge barrier. I'm spoiled by Hyper-V enhanced sessions, I suppose.
Accelerated graphics was painful when doing macOS on macOS until macOS 13. I wouldn't be surprised if it gets added now in the future with virutalization.framework if they haven't done so already.
Electron apps (and other apps that uses Chromium Embedded Framework) are commonplace these days and they requires GPU acceleration. They'll crash if launched on system without gpu acceleration. Sure you can pass a command line argument to disable gpu acceleration to those apps (e.g. `--disable-gpu` on most electron apps and `--no-zygote` on apps that use chrome embedded framework like spotify), but you can't expect average users to know how to do that.
Most desktop nowadays have a compositor that rely on the gpu to render nice effects like blur, transparency, animations (including keeping the content of the window while dragging).
I just got Windows 7 running on an M1 Macbook Pro with UTM today actually. It took a bit of configuring but I am getting pretty amazing performance considering it's having to do a full ISA emulation (not using Rosetta.. QEMU can use Rosetta to translate for Linux ELF's in Linux VM's but it doesn't seem like it can do so under an x86 Windows VM). I have one legacy Windows application that I need sometimes randomly when traveling and this is amazing that it runs as well as it does- it is a program using OpenGL and the performance is useable for basic tasks and I am just using a the default VGA card emulation, I haven't even setup any advanced GPU card emulation yet. I'm blown away.
If you Crossover works for your app you can pipe x86 32 but apps through Rosetta 2 and Crossover will bridge the GPU stuff to an actual GPU. This is a lifesaver for me on 1 ancient app I have to use for work.
According to this article, file sharing between the container and the host is about 80% faster in Colima than Docker Desktop for Mac, but still much slower than native:
Colima doesn't have all the annoying popups, telemetry, and other commercial aspects that turn off many developers from Docker Desktop for Mac. It sounds like a drop-in replacement otherwise. Terrific!
I'll still try to keep as much development native as possible for now, but if it ever gets to be a real pain I'll give Colima a try before mixing docker entirely.
Alternatively, go there[0], click "Download now" under "Fusion 13 Pro for macOS 12+".
Upon first launch, it'll prompt you to either enter a Pro license, try Pro for 30 days, or go straight to Player (still requires a free license key, obtained via registration).
I gave up after 45 minutes... They want so much information/cookies/tracking but even after changing browsers and (temporarily) disabling all security/privacy, I couldn't download.
same - the register page doesn't work at all. I just gave up. If it worked for personal use I may have recommended it for work but as it is Parallels or UTM will be my go to choices.
Fusion Player offers a Personal Use License, available for free with a valid MyVMware account. Home users, Open Source contributors, students, and anyone else can use Fusion Player Free for Non-Commercial activity.
If you just want a Linux kernel and user space, to see that your stuff works OK there as well, I'd really recommend Multipass from Canonical. It likely only works with Ubuntu but it is nicely integrated with Macos and requires no setup.
In practice I’ve found it more practical to create cloud VMs although I’ve traditionally used run a Linux and Windows VM on MacBooks. Or just buy a tiny server for a few hundred bucks and leave it plugged in at home and remote into that.
There’s too many issues around ARM support and the fact that other Linux and Windows machines generally won’t be running ARM. Apple Silicon also has expensive memory upgrades.
Remote Desktop to a virtualized Windows 10 running on VMWare ESXi is what I replaced VMWare Fusion with even before I got this M1. It's unlikely I'll ever upgrade now.
This only works if you have a good internet connection. The use case I've always had for VMWare Fusion is that I need to use a Windows app, as if it were local, with my local, multi-gig, files available.
RDP is really quite impressive. I host Windows VMs on a Linux server. With quickemu[0] you can fire up a Windows Vm in minutes. It fetches the ISO, sets everything up - even breezes through setup, creates a user, does KMS for activation, etc. One command and a few minutes later you're looking at a Windows desktop. Setup Remote Desktop (with SSH forwarding or VPN of course) and you have a remarkably responsive (even at 4k single and dual display) GUI experience and powerful remote connection - file sharing, sound forwarding, clipboard sharing, even printers and arbitrary devices.
Well in my case, it’s running on an EC2 instance with no ingress access. I access it by tunneling through Session Manager secured via IAM temporary credentials which itself is secured via a physical MFA device.
Hah totally get your sentiment but in my case it’s a port forward bound to loop back to a VM listening on a very well secured Linux machine only accessible with key based SSH. I’m not terribly worried about it.
If you're using a Windows app as part of your Mac workflow (which is often the case if Fusion is being used), you'll put files in a shared mount so the Mac and Windows apps have access to the storage they're on. This doesn't work if you have to transfer files across the internet to start the Windows side of your workflow.
For example, a Windows reporting tool that reads from an sqlite database, which was generated with a Mac workflow, while I'm sitting at a coffee shop.
And, the nicest thing about fusion is that each Windows app appears as a native window, which RDP doesn't seem to have.
Great news, I have been waiting quite some time for this! I am using VMware Fusion a lot on my Intel based Macs (most of my day-to-day work is on Linux in a VM) and just have been waiting for VMWare on ARM Macs.
While I also have used Parallels, I just find VMware the solution which works best with me. One of the features of course was to be able to run modern Linux kernels without the needs of installing custom drivers as the necessary drivers where part of the Linux kernel. Parallels requires drivers which often where quite a bit behind the Fedora releases.
Yes, I want to be in a full blown Linux. With the complete software a Linux distribution brings (for me mostly Fedora) and of course the full GUI support.
I don't like that Parallels requires a subscription to get more than 8 GB of RAM in a virtual machine so I'll be sticking with VMWare Fusion when I get an Apple Silicon Mac.
That's assuming that I decide that I actually need such a product. Most of my use of VMWare Fusion on my Intel Mac is to run Linux VMs. I recently have switched to using Docker for that.
The only real snag was that I want services running in a Docker container to be reachable from Mac processes on the same port they would be on when deployed on a real server somewhere. E.g., if I've got a server that would be foo.com when live on a real server that I'm testing locally in a container, I want it to appear at some_ip:443 on my Mac, not on something like localhost:8443 that Docker maps to port 443 in the container.
That turned out to be not too difficult to deal with by using Wireguard. Specifically, Wireguard between the Linux VM that Docker Mac creates to run containers and the Mac.
If Docker Mac works as well on Apple Silicon I might be able to just stick with that and not need either VMWare or Parallels.
I might be reading this wrong, but is this something where you could launch your containerized app running on whatever port, and map it to `localhost:443` using something along the lines of `docker run -p 127.0.0.1:443:<whatever port in the container> My-App-Image` ? (might need sudo). I read this as wanting to have <your IP>:443 proxy to the container. Hope I'm not crazy.
The problem with "-p 127.0.0.1:443:<whatever port in the container>" is that there is already something on 127.0.0.1:443.
If I were running Docker on Linux this would not be a problem. I'd simply use bridged networking in the container which would give the container an IP that works for things running on the Linux host.
To access something on <whatever port in the container> I'd then just use <container IP>:<whatever port in the container>.
Docker Mac runs a Linux VM and then runs your containers on that Linux VM. Bridged networking there just bridges the containers to the Linux VM. The container's IP is not visible to the Mac, just to the Linux VM.
So I'm using Wireguard to tunnel between the Linux VM and the Mac, so that the container IPs end up visible on the Mac.
In case anyone else finds this useful, here are details of my setup.
• I've got a Docker network name "Mynet" that I put containers on with statically assigned IP addresses (e.g., "--network Mynet --ip 10.11.12.10"). Mynet has gateway 10.11.12.1. It was created with this command:
IP address 10.11.12.128-254 are dynamically allocated to containers that are run with "---network Mynet" but not assigned a static IP. 10.11.12.2-127 can be used for static IPs.
• On the Wireguard tunnel, I've given my Mac IP 10.11.0.2 and the Docker Linux VM IP 10.11.0.3.
• The Mac IP address on my home network is 192.168.0.2.
• I've made a Docker alpine image, which I named alpine-wg, that is just the base alpine image with the Wireguard tools installed. The Docker Mac Linux VM has Wireguard kernel support built in, so you just need an image with the tools in order to configure it.
• I've generated key pairs for the Mac and the Linux VM.
• Here is my Wireguard conf file for the Mac (stored on Mac as ~/wg/mac/wg.conf).
[Interface]
Address = 10.11.0.2/32
PrivateKey = <Mac private key>
ListenPort = 51820
# docker VM
[Peer]
AllowedIPs = 10.11.0.3/32, 10.11.12.0/24
PublicKey = <Linux VM public key>
• Here is the Wireguard conf file for the Linux VM (stored on Mac as ~/wg/linux-vm/base.conf):
This was a fascinating read, thank you for sharing. TIL!
EDIT: Is your home IP address for your mac static? Seems like if it was dynamic, this would need to be updated, though I know you can use some simple programs to dynamically inquire for the IP, and then just template it out into the config files before launching, just in case.
It's dynamic as far as the Mac is concerned, but I have my home router's DHCP configured to assign fixed IP addresses to various devices with known MAC addresses including the Mac.
I have a similar need for work (k8s instead of docker) and I just use the routing table on my router and `/etc/hosts` files (need domain names fir certificates) works easy.
> If Docker Mac works as well on Apple Silicon I might be able to just stick with that and not need either VMWare or Parallels.
MacBook Pro M1 Max user here. Yes, Docker Mac works on Apple Silicon.
Make sure to use Docker images built for Arm. M1 Rosetta is good, but is not used for Docker images. If you run Docker images for x86_64 in Docker Mac on Apple Silicon it’s noticeably slower. Whereas running docker images built for Arm is fast.
The typical case is that I'm testing with client code on my desktop that expects to talk to some particular server, such as db.work.com, on some particular port, say 3306. I don't want to run the client in a VM or container.
I want to run a test version of that server on a VM or in a container, and have that client connect to it, but I do not want to modify the client.
So I want to make an /etc/hosts entry for db.work.com giving the IP address of the VM or container that I'm running the test server in.
That works great with VMWare Fusion. The VM gets an IP address on my Mac, and I use that in the /etc/hosts entry.
That would also work great if I were running Linux instead of Mac OS, because Docker containers on Linux get IP addresses that are visible. I'd just have to put the container IP on the db.work.com /etc/hosts entry.
On Mac Docker runs a Linux VM and then the containers run in that. They don't have IP addresses that are visible to the Mac. For a lot of things that is fine. With the -p argument you can arrange to have a localhost port mapped to some port on the container.
But in my case that doesn't quite cut it. The client wants to connect to port 3306. I can't just map localhost:3306 to the container and put db.work.com in /etc/hosts pointing to 127.0.0.1 because I've already got something on 127.0.0.1 that is using 3306.
Hence Wireguard so that I can have an IP address for the container that is visible on the Mac.
VMware laid off their US based Workstation/Fusion team a few years back and moved development over to China. The China based team was then laid off in 2021 with development moving to India.
The graphics support in particular sounds like a total mess:
> For Graphics, Fusion 13 sports OpenGL 4.3 in Windows and Linux VMs on Intel, and in Linux VMs on Apple Silicon.
> On Intel, Windows continues to enjoy DirectX 11 graphics, and Fusion continues to support eGPU devices for incredible performance using some of the fastest GPU’s available.
> On Apple Silicon, Fusion can deliver OpenGL 4.3 with blazing fast 3D hardware acceleration to arm-based Linux virtual machines with Linux kernel 5.19 or greater.
So if I am reading this correctly, Windows on Apple Silicon doesn't have accelerated 3D at all? And even on Intel they are 10 full years behind with no support for DirectX 12.
It probably depends on your use case. You seem to run Mac OS inside Mac OS?
On my end I've tried Parallels but my use case involves a lot of passing USB devices to a Windows or Linux VM and VMWare has been much better for that.
Although... the point is moot now. I bought a new amd box for running the x86 stuff, in preparation to moving my OS X machine to Mx when I feel brave enough.
Installed it on my Intel MBP, upgraded my virtual machines to a new format version and now regretting it. The Bootcamp VM does not boot at all and the Win 7 VM is in an infinite restart-repair loop.
recovery,
reset on csr then
reboot delete old boot camp very small link (<100mb) and do a new boot camp vm and
go back to recovery and enable csr
Reboot
I tried VMWire fusion to run multiple browsers to get tickets for Glastonbury.
Are virtual machines ever not slow?
Running 9 virtual machines on an M1 mac, did not work...
I needed to be able to take over at any point, to enter the credit card details etc if successful, so puppeteer would not have been a good solution.
I think I need to rent multiple devices just for the day it seems. Chrome offers multiple profiles so I had 9 browsers, but you only get 60 refreshes per minute n an IP address. I would need to redirect some of the chrome instances, and have the screen real estate to handle it.
I would be tempted to try this but both of my M1 Macs only have 8G of memory.
For text/shell only Linux, I have been using https://github.com/lima-vm/lima for the last week and for what I needed (I wanted to setup picolisp and Emacs for some experiments) it was all good.
I switched to Parallels due to VMware's lack of Apple Silicon support; it's been a great experience for Windows 11 (and does a great job of bundling the Windows 11 ARM installer, etc.)
Given the significant support for virtualization in macOS and the popularity of macs amongst unix devs, I am a bit surprised that Apple has not yet sherlocked the VMM configuration UI.
Virtualization is basically an API library (Virtualization.framework) from apple's perspective where they expect others to make programs to manage it, so not so surprising from that perspective.
you can get matte screen, same product as papermate uses for ipad pro to let Apple Pencil feel like it's writing on paper
after a couple years of matte, i can't stand iPad Pro screen w/o it
used to swear by trackpoint, it can't "gesture" or "multi-touch" tho, magic trackpad converges Macbook with iPad, so worth getting one for desktop Macs too
The Linux guys will get there first and, in either case, it will help Apple sell more Macs --just don't do it without AppleCare+ and backups of yoh backups (non-Apple software is largely ignorant of Apple's sometimes obscure and marginal thermal management systems). BTW, don't be shy about buying an m1pro/max based MBP --looking at the thermal plate they put on the m2 in the 2022 MBA, it will be a while before I'd trust the new enclosures with a warmer chipset.
The MBP M2 has an active cooling fan, or am I wrong?
Could be an option. Also no ugly notch and the great touchbar and superior battery runtime.
Price-wise the MPB 14" is superior though.
Bit of a tangent but do you know of other Black Friday things that the HN crowd would be interested in? Like, I know shodan.io usually does a discount on lifetime subs or something around now.
The hypervisor framework doesn't provide a lot of extra things which are implemented by whatever VMM you're using. Qemu can also use Hypervisor.framework but you certainly wouldn't say it's exactly 1-1 w/ VMware Fusion.
Just installed the trial of Fusion Pro 13 and ran it through the paces of our application test suite and benchmarks, performance is...rough, compared to Parallels.
It's nice to have a personal use option, but I'll be sticking with Parallels for pro use since our company doesn't have a big investment in vmware based infrastucture, where I see using Fusion would be a boon but not for my particular case.
FYI, I don't think "Silicon" is a product name; it's just the stuff computer chips are made out of. "Apple Silicon" is an unbrella term for their SoCs, but there's no context in which it makes sense to abbreviate that with just "Silicon".
It is highly unlikely - the boot process isn't standardized, nor will there be manufacturer-provided drivers for a good portion of the Apple SoC features.
This always comes up, but what does it actually prevent? Has Apple ever enforced it? It would seem likely that doing so would be hitting their power users.
And while UTM was relatively unknown a year ago, it's become quite popular in my circle of Apple Silicon users, so I imagine VMWare's reception on Apple Silicon is going to be lukewarm at best.