What's killing virtualization?

Hi all,

What’s killing virtualization?

For a brief moment, we had FOSS virtualization, and now it feels like it’s becoming so abstract and technical that it’s practically impossible to enjoy. People treat this entire subject as taboo—like some sort of secret knowledge that’s never to be shared.

If you want GPU passthrough, you have to know C, remove hard-coded barriers, and code your own solutions. Then you need to optimize those solutions just to get decent frame rates.

Here are apps we’d like to run:

CAD software other than OpenSCAD/FreeCAD (too bare-bones for our needs)

Office 365 (company uses macros only supported in the MS Office suite)

Directory Opus (All Linux file managers are too bare-bones and often break. For example, I can’t auto-mount drives on boot and have them show up in the GUI!!!)

If you’ve gotten any of these apps running, please share screenshots and steps to make them work. I haven’t succeeded with tools like Bottles, PlayOnLinux, or Lutris. The only semi-workable option is virt-manager, but CAD becomes unbearably slow and janky.

Bottles feels unsupported—everything crashes eventually. Winapps, the only alternative, is a 5-year-old project that isn’t even available on NixOS.

Apologies if this sounds rant-y, but the frustration is justified when we’re hard-coding barriers to limit access to this technology.

Final question: Have we moved from donating to broad entities toward funding specific tasks/goals? I’d LOVE to donate directly to projects like:

“GNOME Files app: Split panels / terminal integration / regex search”

“FOSS GPU passthrough solutions”

If you know platforms for targeted donations (like a GoFundMe for FOSS features), share links! If none exist… that’s a golden idea.

I’m sorry—I’m just frustrated. I’m halfway through migrating my entire infrastructure to Linux.

Links:

  1. Bottles.
  2. Winapps, a +5 year old project.
  3. True VFIO with GPU pass-through is gate-kept through hard coding… and the only solution is to know so much about PCIe (closed source), IOMMU, Virtualization, C, …etc, that you can code your way out. Excerpt that perfectly encapsulates 2+ years of reddit discussion on the topic. Source.

Edit reason: grammar / spelling / coherence improvements.

1 Like

I have barely any real experience with what the challenges you describe, but I’d share that I work with NixOS-WSL on the office’s Windows PC, and I personally think I’m enjoying the best of both worlds without too much friction and frustration.

P.S: Technically, Wine and also Bottles to my understanding are not ‘virtualizations’, but rather abstraction layers.

2 Likes

Of course you can! You have to understand that because of how mounting works on unixy systems - everything is just a subdirectory of the root dir, “mounting” and “showing up in the GUI” are separate things.

The GUI will just show you the file tree. Anything you mount at all will be visible in the GUI.

What you probably want is for your mounted drive to show up with a special icon in a different menu, because that’s what you’re used to from windows land. That’s not a very unixy way of thinking about the file tree, so you need to work a little to get that.

Generally, this type of functionality is provided by udisks. Gnome-disks - which sounds like what you’re using - is just a front-end for it. If you want a path to show up with a special icon in a separate UI, you have to mount it specifically with udisks instead of the normal way to mount things - otherwise udisks won’t know about it.

To actually have this happen on startup (or well, user login, because udisks is all about mounting disks as a user with the right permissions so your user can interact with files on it), all you need to do is add an appropriate script to your user session.

You can do that with systemd.user.units, an freedesktop .desktop autostart file, or even your .profile. Either way, you need to run this kind of command on login:

udisksctl mount --block-device /dev/disk/by-uuid/<uuid> 

Unintuitive? Maybe, but this isn’t how the unix filesystem is supposed to work. This is only not intuitive because your intuition is built on - presumably - decades of DOS.

@TLATER ,

I was doing it the “Nix-way” through a .nix file (which I’ve since deleted). In short, I configured it to mount my hard drives at system boot. While the drives were mounted (I could see the files in /mnt/<hard drive name>), they wouldn’t appear in any GUI file manager (e.g., Dolphin, Thunar, or GNOME Files).

For some reason, it never occurred to me to try a “non-Nix-way” approach—partly because I want to set things up once and never deal with them again. If I start doing too much the “non-Nix-way,” what’s the point, you know? If possible I will try not to, but for the sake of science I’ll give this a try and just add a note on my readme.md file. Thx for the suggestion.

@doronbehar

Thanks, but I can’t / won’t go back to windows. Too many of the things I want / need are already running in Linux. I don’t have the time and I’ve already spent so much effort. Plus, everything is so seamless now… It’s kinda hard to give that up.

What I describe can be done the “nix way”, so long as you use nix to create the service/desktop file/shell profile.

There’s no NixOS module, sure, but that’s just because nobody has bothered to write one yet.

1 Like