Why are vms in KVM/QEMU called domains?

They're not kvm exclusive terminology (xen also refers to machines as domains). A hypervisor is a rough equivalent to domain zero, or dom0, which is the first system initialized on the kernel and has special privileges. Other domains started later are called domU and are the equivalent to a guest system or virtual machine.

The reason is probably that both are very similar as they are executed on the kernel that handles them.


According to Xen wiki (https://wiki.xen.org/wiki/Domain),

A domain is one of the virtual machines that run on the system. Domain0 is the first domain started by the Xen hypervisor at boot, and will be running a Linux OS.

The Xen project has greatly influenced the developers of virtualization tools. This name certainly comes from there.


To reiterate as others have, it's virsh/libvirt that calls virtual machines domains--not QEMU/KVM.

The fact that Xen originally called virtual machines domains gives a great historical perspective, but it still begs the question--why?

I think the answer follows logically from the definition of domain.

Original definition of domain: "an area of territory owned or controlled by a particular ruler or government."

In computer networking, a domain name "defines a realm of administrative autonomy, authority or control within the Internet"

So a domain is just a subset within a larger space. In computer networking, it is a subset of an address space.

And in computer virtualization, a domain (virtual machine) is a subset of hardware resource space.

To put it another way, a host is just a server containing a pool of resources (CPU processing power, memory, storage, etc.). A virtual machine is a subset of that pool of resources, dedicated to running an operating system or application.

enter image description here

Tags:

Qemu

Kvm