Qubes is basically the Xen hypervisor with a nice VM template system and near-seamless desktop integration for VMs.
In addition to the security provided by putting stuff in separate VMs, it's great for development and other cases where you need to fire up a clean OS install. The integration tools like clipboard and file transfer makes working across multiple VMs practical.
There are several cons and caveats, though:
  • No GPU acceleration inside VMs (except you may be able to pass a discrete GPU through to a single VM). Forget about 3D design software, games etc. Websites with lots of advanced CSS filter stuff will be slow.
  • Certain software is slow/buggy, including LibreOffice and Inkscape (probably partly related to the lack of GPU acceleration).
  • No hibernation (suspend to disk), only suspend to RAM. And suspend to RAM might be buggy or not work at all depending on your hardware.
  • Many running VMs means high memory requirements. If you use the same computer for lots of different tasks, I'd recommend a minimum of 32 GB, optimally 64 GB of RAM if you want full compartmentalization.
  • Bugs and poor UX in the Qubes-specific interfaces. A lot of it feels rather hacky. Some of these interfaces could allow for cross-VM exploits if vulnerable, so that is a concern.