Is Qubes any more efficient in resource usage than a typical VM?
Privacy benefits aside, does qubes run better than a typical vm like virtualbox? I tend to fiddle with distros a lot and I feel qubes might be a good choice, though I'm wondering about how efficient it is
Xen, The backbone of qubes, is One of the very few microkernels that is widely deployed. It's extremely efficient. It only does the minimum amount of work necessary to dispatch resources to different virtual machine guests
So comparing a VM running on a dedicated microkernal hypervisor like qubes, compared to QEMU or KVM which requires a monolithic kernel, it's going to be much more efficient.
But, when you start talking about the full desktop experience, with a window manager and mice and keyboards, and a guest VM, and a VM to run the desktop, and a VM to run the USB for the mice and keyboard, and a VM for the network stack, and a VM for the firewall..... It's less efficient compared to a system running a single QEMU VM with a monolithic kernel, and everything handled with a traditional monolithic operating system.
It depends on your use case, what you want to optimize for, quite frankly if you don't care about segmentation and security qubes is probably going to be too much friction for you.
for me i will likely play some games or use proprietary apps in windows or something and swap back to linux. i also develop for linux sometimes so being able to swap distros quickly and with good efficiency while being able to share files easily would be nice.
i dont know how viable qubes is for this use case. i like the concept of privacy but i dont need 100% lockdown for each app.
i hate dual booting with a passion, and i also hate how much my base OS interferes with the operation of a virtualized os.
We do not provide GPU virtualization for Qubes. This is mostly a security decision, as implementing such a feature would most likely introduce a great deal of complexity into the GUI virtualization infrastructure. However, Qubes does allow for the use of accelerated graphics (e.g. OpenGL) in dom0’s Window Manager, so all the fancy desktop effects should still work. App qubes use a software-only (CPU-based) implementation of OpenGL, which may be good enough for basic games and applications.
For further discussion about the potential for GPU passthrough on Xen/Qubes, please see the following threads:
It’s faster than virtualbox because there is lower recourse use from the base system and it uses qemu. Qemu/kvm is the fastest option for vms on Linux, but it isn’t exklusiv to qubes, you can also use it via the terminal on any distro or with a GUI like gnome boxes
Probably, yes. Qubes AppVMs don't run the whole DE inside it. Also, Qubes uses automatic memory balancing for VMs, so users doesn't need to care about it much.
Qubes uses the type-1 Xen hypervisor that runs at a similar privilege to the kernel of other OSes. KVM is a type-1 hypervisor implemented as a Linux kernel module. VirtualBox is a type-2 hypervisor that runs in userspace. Of these three, Xen is the most performant hypervisor because virtualization is all it does.
If by "typical VM" you mean a guest OS running inside a window of the host OS, then Qubes will always come out on top because the graphics pipeline is much less of a bottleneck.
Qubes uses the type-1 Xen hypervisor that runs at a similar privilege to the kernel of other OSes. KVM is a type-1 hypervisor implemented as a Linux kernel module.
What tells them apart them? When would you use one vs the other?
Perhaps Xen for having all machines, including the one that controls the hypervisor, being virtualized, as opposed to KVM/QEMU running on the control bare-metal with VMs on top?
Basically, yes. Xen is a bespoke hypervisor. All it does, and all it can do, is run VMs. There is no host OS -- management is done through a privileged VM called dom0. KVM is a part of the Linux kernel. Virtualization is only one of its features. VMs run alongside, and are managed by, the host OS.
It is not like 'very limited'. But generally they are focused around modern Intel CPU, and can have issues on new AMD CPU. And it won't work on very old CPUs without proper virtualization features.