I want to run Linux virtual machines on a Linux computer mainly for testing and experimenting with different distributions. High performance isn't essential, though support for running containers inside the guest would be useful. I'm considering VirtualBox, QEMU/KVM, or a simpler desktop tool such as GNOME Boxes. I've only previously used virtualization to run a different operating system, so I'm wondering whether running Linux inside Linux provides any meaningful performance advantage. What setup would you recommend for a desktop or server host?
5 Answers
For a Linux desktop, GNOME Boxes is probably the easiest option if you’re using GNOME. It uses KVM/QEMU underneath while providing a much simpler interface for creating and managing VMs. Virtual Machine Manager is another good graphical option if you want more control over the VM settings.
Running a Linux guest on a Linux host does not automatically make it faster just because both use Linux. The important factors are whether the guest and host use a compatible CPU architecture, whether hardware-assisted virtualization is enabled, and how much CPU, memory, and disk I/O you allocate. With KVM and a same-architecture guest, performance can be close to native, but there is still some virtualization overhead.
Containers can run inside a Linux VM as long as the guest has a working kernel and enough resources. For example, Docker or Podman can run normally inside the guest. If you only need isolated user spaces rather than a separate kernel, containers directly on the host will be lighter, but VMs are better when you want to test complete operating systems or kernel behavior.
VirtualBox is also perfectly reasonable for occasional testing, especially if you already know its interface. Put the VM storage on an SSD or NVMe drive if possible; a hard disk will work but can make booting and installing noticeably slower. If this is a dedicated server rather than a desktop, a virtualization platform such as Proxmox may be a better fit.
KVM with QEMU is generally the best-performing and most flexible choice on Linux. Virtual Machine Manager gives you a graphical interface for managing it, so you don’t have to build every command by hand. Make sure hardware virtualization is enabled in your firmware, and install the appropriate KVM/libvirt packages for your distribution.

That’s been my experience too. Boxes is much less intimidating than configuring QEMU manually, and it works well for quickly trying different distributions.