XCP-ng and Qubes OS are very different things, let’s clear up terminology:
- Xen: A hypervisor providing virtualization
- XenServer: a commercial offering by Citrix that uses Xen to build a virtualization platform, now called Citrix Hypervisor
- XCP-ng: an open-source virtualization platform that also uses Xen
- Qubes OS: a phenomenal, ground-breaking, reasonably secure, single-user operating system that uses Xen
And for comparison sake,
- KVM: An alternative hypervisor providing virtualization
- ProxMox: virtualization platform using KVM
In most basic terms, XCP-ng, XenServer, ProxMox - these are things you install on one or more physical machines which then allows provisioning as many virtual machines as the hardware can handle. This is commonly used in lab environments, home labs, or even some VPS environments. The goal is, provision a VM, give it an IP, run a web server or ssh into it and do things. Or enable remote desktop and use it as if it was physical. It’s typically accessed over a network.
With Qubes OS, the goal is primarily a single-user desktop environment, that uses virtualization to accomplish the goal of a secure system through isolation. For example, read your email in one window, click an attachment and the attachment opens in another window…and each of these windows is technically in a separate VM but all shows up on the desktop in a seamless desktop environment. This is one example of the special sauce of Qubes, but there are many others.
So instead of looking at Qubes as a collection of VMs (like XCP-ng), think of Qubes as a collection of activities that are isolated by VMs.