Qubes OS is a security-focused desktop operating system that aims to provide security through isolation. Isolation is provided through the use of virtualization technology. This allows the segmentation of applications into secure virtual machines called qubes. Virtualization services in Qubes OS are provided by the Xen hypervisor.

The runtimes of individual qubes are generally based on a unique system of underlying operating system templates. Templates provide a single, immutable root file system which can be shared by multiple qubes.

Qubes OS

This approach has a two major benefits. First, updates to a given template are automatically "inherited" by all qubes based on it. Second, shared templates can dramatically reduce storage requirements compared to separate VMs with a full operating install per secure domain.

Qubes OS

The base installation of Qubes OS provides a number of officially supported templates based on the Fedora and Debian Linux distributions. Alternative community-supported templates include Whonix, Ubuntu, Arch Linux, CentOS, or Gentoo. Users may also create their own templates.

Qubes OS

Operating Systems like Qubes OS are referred to in academia as Converged Multi-Level Secure (MLS) Systems. Other proposals of similar systems have surfaced and SecureView and VMware vSphere are commercial competitors.

Security goals

Qubes implements a Security by Isolation approach. The assumption is that there can be no perfect, bug-free desktop environment: such an environment counts millions of lines of code and billions of software/hardware interactions. One critical bug in any of these interactions may be enough for malicious software to take control of a machine.

To secure a desktop using Qubes OS, the user takes care to isolate various environments, so that if one of the components gets compromised, the malicious software would get access to only the data inside that environment.

In Qubes OS, the isolation is provided in two dimensions: hardware controllers can be isolated into functional domains (e.g. network domains, USB controller domains), whereas the user's digital life is divided into security domains with different levels of trust.

For instance: work domain (most trusted), shopping domain, random domain (less trusted). Each of these domains is run in a separate qube.

The qubes have passwordless root access (e.g. passwordless sudo) by default. UEFI Secure Boot is not supported out of the box, but this is not considered a major security issue. Qubes is not a multiuser system.

Installation and System Requirements

As a desktop-focused operating system, Qubes OS targets personal computer hardware. This market is dominated by laptops running Intel and AMD processors and chipsets.

The base system requirements for Qubes OS are as follows (discussion below):

64-bit Intel or AMD processor with virtualization extensions*

6 GB RAM minimum

32 GB disk space minimum

[*Since 2013, Qubes OS only supports 64-bit processors.

In addition, since release 4.x, Qubes OS requires either an Intel processor with support for VT-x with EPT and Intel VT-d or an AMD processor with support for AMD-V with RVI (SLAT) and AMD-Vi (aka AMD IOMMU). This is not a major issue for AMD processors since AMD IOMMU is functionally identical to Intel's VT-d.]

In practice, Qubes OS typically needs 8 GB+ of RAM. Even though it is possible to run it with only 6 GB of RAM, users will likely be limited to running no more than a couple of qubes at a time.

By default, the Qubes OS installer allocates all space on the selected storage medium. No provision is made for sharing disk space with other operating system partitions on the target device. Full disk encryption is provided using LUKS/dm-crypt.

The 32 GB minimum space requirement does not include space needed for new qubes, user applications, additional templates, user data, etc..

Important Note: Qubes OS is not intended to be run as part of a multi-boot system. If an attacker were to take control of one of the other running operating systems, they could potentially compromise the Qubes OS installation.

That said, it is technically possible to use Qubes OS as part of a multi-boot system and even to use grub2 as the boot loader/boot manager.

It is also possible to customize much of the Qubes OS installation but for security reasons this is recommended only for expert users.

User experience

Users interact with Qubes OS in much the same manner that they interact with any standard graphical desktop operating systems with some key differences: