VMware Fusion Pro: Now available free for personal use
blogs.vmware.com
blogs.vmware.com
Beware the new “free” licence, which is emphatically not for commercial use. Get caught accidentally using the personal licence and your company will be on the hook to pay whatever Broadcom wants you to pay. Oracle did similar shenanigans with VirtualBox (watch out if you download the extension pack) and Java (watch out if you install a JRE on your desktop and use it to compile/develop certain software!)
This does open a market opportunity for Corel/Parallels which is mostly at feature parity with VMware… the main reason I liked using VMware Fusion was solid integration with ESXi, which also won’t be a concern anymore as with the Broadcom acquisition that’s a platform I’ll be trying to avoid.
Common way to do this would be to keep an eye out for large fundraises, and then track back to see if you can catch them using the personal license early on.
The entire space ("desktop virtualization") is dead. Even VirtualBox which I praised a year ago seems to be slowing down.
This likely just poisons the well for a market they had all but abandoned.
Shame really, people do fun stuff with excess compute.
https://www.youtube.com/watch?v=tLK_i-TQ3kQ
There's clearly still demand for VDI solutions too. A recent example:
https://forum.proxmox.com/threads/vdi-solution-for-proxmox.1...
In terms of people who might consider Fusion you have:
- People who only use Windows
- People who only use macOS
- People who only use Linux
- People who virtualize Windows on macOS
- People who virtualize Linux on macOS
- People who run FreeBSD or similar on their computers
- People who virtualize FreeBSD or similar on macOS
- People who virtualize various operating systems on Windows
- People who virtualize various operating systems on Linux
- People who virtualize various operating systems on FreeBSD or similar
And I would guess that the largest group of people that use Fusion use it for running Windows in a VM on macOS.
I would guess that the people who develop for Linux servers would mainly use Docker if they run macOS, and that also relies on VM, but not using Fusion.
I do use Fusion as well (on my laptop), and have a Windows VM there as well, but solely to run older games. Works fine.
There are more Hypervisor managers available on macOS now than there have ever been before - largely because Apple provides the underlying framework to do most of the hard work... but there is clearly significant demand to run VMs on Arm Macs still, regardless of whether that includes running Windows (which does exist for Arm too)
x86 Docker on ARM Mac is an insanely complex setup - it runs an ARM Linux VM inside Hypervisor.framework that then uses a Rosetta client via binfmt that <somehow> communicates with the host macOS to set up all the Rosetta specific stuff and prepare the client process to use TSO for fast x86 memory access.
Unfortunately, Apple heavily gates anything Rosetta, I'm amazed Docker got enough coordination done with them - because QEMU didn't, they don't support anything Apple ARM-specific as a result and don't plan to unless Apple significantly opens up access and documentation; TSO for example is gated behind private entitlements.
https://developer.apple.com/documentation/virtualization/run...
Those are now down with an old ESXi box or other forms of VMs now. Maybe I should look into the various VM options still, but I don't have any pressing needs.
OS still needs to be ARM, as far as I know, but you can then use Rosetta to speed-up x86_64 Linux binaries.
Docker Desktop also uses this to run x86_64 Docker images, and in many cases performance is quite close to the native ARM binaries, but this heavily depends on the workload.
Desktop virtualization products used to bring the secret sauce with them; now that every OS ships with a well-integrated and well supported type 1 hypervisor they have lost much of the reason for existing. There's only so much UI you can put in front of off-the-shelf os features and still charge hundreds of dollars per year for.
edit: I made a mistake and got confused in my head with qemu and the lack of paravirtualized support. (It does have a PV 3D linux driver, though)
If you don’t need vendor-specific features/drivers, then VMware Workstation (even with Hyper-V enabled) supports proper guest 3D acceleration with some light GPU virtualization, up to DX11 IIRC. It doesn’t see the host’s NVIDIA/AMD/Intel card and doesn’t use that vendor’s drivers, so there’s no datacenter SKU restrictions. (But you are limited to pure DX11 & OpenGL usage, no CUDA etc.)
I just think it should be the objective of vendors to offer actual GPU virtualization first and to support paravirtualization as an optimization in the cases where it is useful or superior and the tradeoffs are acceptable.
Proper GPU virtualization and/or partitioning is the right way to do it and the vendors need to get their heads out of their ass and stop restricting its use on consumer hardware. Intel already does; you can use GVT-g to get guest gpu on any platform that wants to implement it.
And that's assuming they propose anything at all.
Even GVT-g breaks every other Linux release, is at risk of being abandoned by Intel (e.g. how they already abandoned the Xen version) or limited to specific CPU market segments, and already has ridiculous limitations such as a limit on the number of concurrent framebuffers AND framebuffer sizes (why? VMware Workstation offers you an infinitely resizable window, does it with 3D acceleration just fine, and I have never been able to tell if they have a limit on the number of simultaneous VMs... ).
In the meanwhile "software-based GPU virtualization" allows me to share GPUs in the host that will never have hardware-based partitioning support (e.g. ANY consumer AMD card), and allows guests to have working 3D by implementing only one interface (e.g. https://github.com/JHRobotics/softgpu for retro Windows) instead of having to implement drivers for every GPU in existence.
Sandboxing, and resource quotas / allocations / reservations.
By itself, a paravirtualized GPU just treats each userland workload launched by any given guest onto the GPU, as all being siblings — exactly as if there was no virtualization and you were just running multiple workloads on one host.
And so, just like multiple GPU-using apps on a single non-virtualized host, these workloads will get "thin-provisioned" the resources they need, as they ask for them, with no advance reservation; and workloads may very well end up fighting over those resources, if they attempt to use a lot of them. You're just not supposed to run two things that attempt to use "as much VRAM as possible" at once.
This means that, on a multi-tenant hypervisor host (e.g. the "with GPU" compute machines in most clouds), a paravirtualized GPU would give no protection at all from one tenant using all of a host GPU's resources, leaving none left over for the other guests sharing that host GPU. The cloud vendor would have guaranteed each tenant so much GPU capacity — but that guarantee would be empty!
To enforce multi-tenant QoS, you need hardware-supported virtualization — i.e. the ability to make "all of the GPU" actually mean "some of the GPU", defining how much GPU that is on a per-guest basis.
(And even in PC use-cases, you don't want a guest to be able to starve the host! Especially if you might be running untrusted workloads inside the guest, for e.g. forensic analysis!)
An operating system doesn't require virtualisation to manage application resource usage of CPU time, system memory, disk storage, etc – although the details differ from OS to OS, most operating systems have quota and/or prioritisation mechanisms for these – why not for the GPU too?
There is no reason in principle why you can't do that for the GPU too. In fact, there have been a series of Linux cgroup patches going back several years now, to add GPU quotas to Linux cgroups, so you can setup per-app quotas on GPU time and GPU memory – https://lwn.net/ml/cgroups/20231024160727.282960-1-tvrtko.ur... is the most recent I could find (from 6-7 months back), but there were earlier iterations broader in scope, e.g. https://lwn.net/ml/cgroups/20210126214626.16260-1-brian.welt... (from 3+ years ago). For whatever reason none of these have yet been merged to the mainline Linux kernel, but I expect it is going to happen eventually (especially with all the current focus on GPUs for AI applications). Once you have cgroups support for GPUs, why couldn't a paravirtualised GPU driver on a Linux host use that to provide GPU resource management?
And I don't see why it has to wait for GPU cgroups to be upstreamed in the Linux kernel – if all you care about is VMs and not any non-virtualised apps on the same hardware, why couldn't the hypervisor implement the same logic inside a paravirtualised GPU driver?
But "sandboxing" is not a property of hardware-based virtualization. Hardware-based virtualization may even increase your surface attack, not decrease it, as now the guest directly accesses the GPU in some way software does not fully control (and, for many vendors, is completely proprietary). Likewise, resource quotas can be implemented purely in a software manner. Surely an arbitrary program being able to starve the rest of the system UI is a solved problem in platforms these days, otherwise Android/iOS would be unusable... Assuming the GPU's static partitioning is going to prevent this is assuming too much from the quality of most hardware.
And there is an even bigger elephant in the room: most users of desktop virtualization would consider static allocation of _anything_ a bug, not a feature. That's the reason most desktop virtualization precisely wants to to do thin-provisioning of resources even when it is difficult to do so (e.g. memory). i.e. we are still seeing this from the point of view of server virtualization, and just shows how desktop virtualization and server virtualization have almost diametrically opposed goals.
I am talking about virtualization in the sense of being able to divide the hardware resources of a system into isolated domains and give control of those resources to guest operating systems. Passing API calls from guest to host for execution inside of the host domain is not that. A GPU providing a bunch of PCIe virtual functions which are individually mapped to guests interacting directly with the hardware is that.
GPU virtualization should be the base implementation and paravirtualization/HLE/api-passthrough can still sit on top as a fast-path when the compromises of doing it that way can be justified.
If you want to really divide hardware resources, then as I argue in the other thread doing it in software is clearly a much more sensible way to go. You are not subject to the whims of the GPU vendor and the OS, rather than the firmware, control the partition boundaries. Same as what has been done in practically every other virtualized device (CPUs, memory, etc.). We never expected the hardware to need to partition itself; I'd even have a hard time calling that "virtualization" at all. Plus, the way hardware is designed these days, it is highly unlikely that the PCI virtual functions of a GPU function as an effective security boundary. If it wasn't for performance, using hardware partitioning would never be a worthwhile tradeoff.
I didn't say they have no reason to exist. I indicated they are moving towards becoming UI shells around standard OS features and/or other commodity software, which they are. Look at UTM, for instance. Even VMware Workstation and VirtualBox on Windows use HyperV under the hood if you have HyperV or WSL features enabled.
While everyone still seems to be busy disagreeing with me because of <insert favorite feature>, I'll mention that HyperV does have official support for transparent GPU paravirtualization with nvidia cards, and there are plenty of other open projects in the works that strive to "bleed through" graphics/gpu/other hardware acceleration api's from host to guest on other platforms and hypervisors. With vendors finally settling around virtio as somewhat of a 'standard pipe' for this, expect rapid progress to continue.
VirtualBox is consistently (and significantly) slower when it uses HyperV as backend than when it uses its original driver, and many features are not supported at all with HyperV. In fact the GUI actually shows a "tortoise" icon in the status bar when running with HyperV backend.
And Windows many times forces HyperV onto you, taking exclusive control of the CPU's virtualization features, thereby forcing VirtualBox to either use Hyper-V as a (terrible) backend .... or not run at all.
But yes, of course you can also change your tools to use HyperV directly.
"Having to use HyperV" is not actually anything nefarious as the other comment seems to imply. You can't have two type 1 hypervisors running cooperatively on the bare metal and you cant implement your type 2 hypervisor hooks if you have a type 1 hypervisor running. So if you have enabled HyperV directly or indirectly by using WSL2 or installing any of the container runtime platforms (Docker Desktop et al) that use it, then you have to use HyperV as your hypervisor.
Note this is different than nested virtualization (ESXi on HyperV, etc.) which is supported but a completely different beast.
For the same reason you cannot run Xen and KVM VM's simultaneously on Linux (excepting nested virtualization).
The nefarious part is that Windows enables Hyper-V even if you don't actually use Hyper-V VMs and never will. KVM doesn't take exclusive control of VMX until you _actually_ run a KVM VM.
By the way, the distinction between type 1 / 2 is purely academic at this point: there is no definition where KVM is a type 1 hypervisor and VirtualBox isn't, as they are _literally_ the same conceptually-wise: both are a kernel module that implements a VMX manager/root. Same on Windows. The only remaining type 2 hypervisor these days is kqemu which can still work in binary translation mode (and therefore can work even without access to VMX).
It does not actually enable it by default but there are many settings or apps that can cause it to become enabled. Virtualization-based-security, WSL, container tools, etc. Providing a hypervisor and related functionality is part of what a modern OS kernel should do! It's not nefarious!
One of the reasons mentioned is that VirtualBox runs (some) emulated devices in kernel space but is not allowed to do when running with Hyper-V. The official API forces custom devices to strictly be user space, and only some basic hardcoded devices are emulated from kernel space.
The "secret sauce" of a desktop virtualizer is in part in the selection of devices it emulates, so this severely cripples VirtualBox.
Once I discovered that, I haven't looked at parsec. Moonlight/sunshine (whatever the pair is) is... terrible. And, When I was looking YUV444 wasn't a feature. Or, at least not one anybody actually knew how to use.
I like workstation and virtualbox because they're controllable and minimally impactful when I'm not using them.
Installing hyper v (and historically even WSL - not sure if it's still the case but it was never sufficiently explicit) now makes my primary OS a guest, with potential impact on my gaming, multimedia, and other performance (and occasional flaky issues with drivers and whatnots).
Am I the only grouchy geezer here?:-)
Did you measure the performance hit? How often did you encounter driver trouble?
Note, I'm less worried about percentage performance, as some things just not working well at all, because of assumptions of direct hardware access vs reality of running under hyper v. I.e. Are ALL hardware calls and capabilities 100% absolutely completely available once your main Windows install is running as a VM? Not most, majority, should be good; but actually, seamlessly all? My understanding was No, but things may have changed for the better.
As in, technically it supports snapshots.
But try have a tree of different snapshots of a VM based upon different points in time.
Super useful when doing integration work and testing out various approaches that evolve over time as things progress.
With VMware Workstation I've been able to do that for years, for Libvirt based KVM it's not even possible.
To be clear, I really wish it could be done in Libvirt/KVM too. ;)
Broadcom is bloodthirsty and I'd suggest they're doing this out of the goodness of their hearts but there is little evidence that they have one.
In this case, I admit that I think it's the right thing to do. These products don't really need to exist as commercial offerings except for a few very niche cases.
I'm not sure killing them actually makes a lot of sense - the products apparently share a lot of code with esxi, so it's two products for the R&D of one.
https://knowledge.broadcom.com/external/article?articleNumbe...
https://www.vmware.com/content/vmware/vmware-published-sites...
https://customerconnect.vmware.com/web/vmware/downloads/info...
The windows binaries have valid authenticode signatures so at least those haven't been tampered with.
Another broken link...
https://support.broadcom.com/group/ecx/productdownloads?subf...
I don't think many people had written Visual Studio off like that in 2014. Maybe now, given VSCode. But that didn't exist in 2014.
Not really. The VMWare Workstation Player had the same engine (but less management functionality) so personal user could actually use a VMWare virtualization product. For basic usage (including snapshotting), which fits a non-commercial user, it was a fitting choice.
Therefore, it's good that they're essentially giving more functionality for free, but they did have a free offer before (for non-commercial users).
I suppose it's a step in the right direction, bringing back ESXI for homelab users would be a good step too.
It would be interesting if they did. So many have now tried Proxmox and liked it.
Presently trialling a HA cluster with it, and likely to deploy that to a local data centre in the next few weeks.
I agree and frankly I think it was smart VMWare had a a free tier for homelab users. It produces new users who can now more easily enter the workforce with ESXi experience they might not otherwise have.
By locking it down and jacking up prices they'll squeeze out more money now, but eventually the market will shift to whatever everyone has the most experience with, which might end up being Proxmox.
If my theory is correct, in about two years (if they haven't killed it entirely by the) they'll introduce a "free for homelab use" variant - maybe.
But Workstation and Fusion were more used by personal people and as a support tool FOR professionals, so they needed to keep those going, but charging $79 for it just wasn't worth the hassle. Notice they're not even selling ANY licenses directly anymore; you have to go through someone else. VMWare sold directly.
And evenmore, the lesser versions were free for everyone to use.
But now, if you are a business you don't have any free offering anymore.
I guess it makes a lot of sense, to go only after the ones that can pay, the rest would have "other" ways to run it anyway.,,
You could actually cajole the free player to do this with ESXi but it was definitely not license kosher.
"Free" ESXi is.. well, free. They are converting enterprises to enterprise customers. Some bloke with WKS is not an enterprise customer.
Toggled back and forth maybe 5-6 times. Finally settled on Parallels and stopped upgrading Fusion. Haven't had problems since.
Glad it's free now, but that sometimes means the company is going to stop investing in it.
I'm using Parallels and it is great on an Apple Silicon Mac, but I'm a long-time VMware Workstation and Fusion user, so I'd like to try it again.
Open-source would help if there's any desire to keep it alive, otherwise this is a nice gesture but I would read this as a signal that I should stick away from it because it's dead or a trap.
My VMs are doing pretty well if they last the quarter.
First of all it's both Fusion, the Mac software and Workstation, the Windows one.
Secondly, they're making them free for personal use. They're still paid for commercial use and it's going to be a subscription.
Workstation also runs on Linux. :)
As a data point for anyone else running it on Linux, this repo is probably what you should keep an eye on for updated VMware modules that work with newer kernels:
https://github.com/mkubecek/vmware-host-modules
The ones bundled in VMware Workstation officially tend to break in weird ways as new kernels come along. (!)
I'd rather not use an Oracle product (VB) but are there any advantages in switching back? Main use is running Ubuntu VMs on Windows.
This is how products get killed.
I upgraded to Windows 11 for WSLg (figuring it would replace my Linux desktop), and it was buggy trash. You can't even get a high-resolution Ubuntu desktop (from Microsoft themselves, their own quickbox!) without jumping through hoops, searching all over reddit for knowledge obsoleted by the next update, tweaking arcane settings and running misc Powershell scripts. To say nothing of the occasional freezes.
By enabling WSL2/WSLg, your Windows host is now a privileged guest running under Hyper-V as a hypervisor. Which means lightweight desktop hypervisors like Virtualbox run like trash.
I ended up removing WSLg/turning Hyper-V off, using Virtualbox for desktop Linux, and using WSL1 (not 2) to have a quick Linux shell without enabling Hyper-V.
I'm now considering Workstation due to the superior graphics in the guest over Virtualbox.
Secondly Windows 11 doubles even more on having Hyper-V running for even more security capabilities.
I also think the future is type 1 hypervisors, and in regards to performance, my computers are beefy enough to hardly notice any major impact.
As for Linux configuration problems, business as usual, there is always something that needs hand holding, and I have been using distributions since Slackware 2.0 in 1995's Summer.
I also mostly used Virtualbox only when not allowed to use VMWare products, due to cheap project delivery conditions.
I have been using Hyper-V since the early days, and run it on both my development iron (Win11 23H2, heavily castrated) as well as my personal (non-commercial) Win2k22 21H2 Datacentre servers.
Why should I choose VMware over Hyper-V?
Genuinely curious.
Windows also has Sandbox (based on container technology), which replaces creating a VM to test some software without affecting the system.
0, https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-...
1, https://gist.github.com/bp2008/922b326bf30222b51da08146746c7...
Hyper-V's team only cares about supporting servers. You're not gonna run a full-screen Ubuntu VM without a lot of banging your head against the wall, unless you spend days trawling random Github comments and reddit posts and fixing it whenever it breaks.
Workstation (and Fusion too I think) also provide DirectX 10 + 11 support in Windows VMs.
So if you're wanting to run software that uses that in a Windows, you'll need something like Workstation or Fusion since virt-manager can't (yet) do that.
First of all every desktop now has its own mature virtualization.
And secondly, Broadcom has no interest in this market.
Given Broadcom's actions they need to rename it to "Broadcom fission" :-P
It's probably useful for the HomeLab crowd, but when you get an idea and want to scale it for business purposes, you get screwed by their recent commercial market moves.
There's the beginnings of real FLOSS virtualization projects out there. Broadcom will make some money off of the acquisition as measured by quarterly statements, but it's not sustainable over the long run. It's not 2005 anymore. Step on enough toes and the nerds will build their own and give it away for free.
Are these serious threats? I mean it seems like common sense that if you give a malicious container elevated privileges, it can do bad stuff.
Is a VM any different? If you create a VM and add your host's / directory as a share with write permissions (allowing the VM to modify your host filesystem/binaries) does that mean VMs are bad at isolation and shouldn't be used? Because that's what these "7 ways to escaper a container" ways look like to me.
"Container Escape: New Vulnerabilities Affecting Docker and RunC" - https://www.paloaltonetworks.com/blog/prisma-cloud/leaky-ves...
VMs offer a much better isolation mode.
I mean come on: "Attackers could try to exploit this issue by causing the user to build two malicious images at the same time, which can be done by poisoning the registry, typosquatting or other methods"
So basically ridiculous CVEs that will never affect people not in the habit of building random Dockerfiles off Github with 2 stars. Good to know. Only the 1st one isn't dismissable out of hand, I can't tell if it's bogus like the rest./
It's like saying "2 ways to escape an unprivileged user account: 1. type su then the root password, or 2. convince the admin to setuid your shell"