1. What is the relation between Virtual Machine Manager and KVM/QEMU? The Wikipedia links says

    In computing, the Red Hat Virtual Machine Manager, also known as virt-manager, is a desktop virtual machine manager

    and links "virtual machine manager" to https://en.wikipedia.org/wiki/Hypervisor. So if Virtual Machine Manager is a hypervisor, then what is KVM/QEMU?

  2. Why is VirtualBox not separated into two things in parallel to Virtual Machine Manager and KVM/QEMU? In VirtualBox, which part is similar to Virtual Machine Manager, and which part similar to KVM/QEMU? Or is VirtualBox itself more similar to Virtual Machine Manager or to KVM/QEMU?
  3. Is it correct that libvirt is a server process, and VMM a client process? Is QEMU also a server to VMM? What is the relation and difference between QEMU and libvirt processes? Do all the four components communicate by KVM <->QEMU <-> libvirt <-> VMM?


1 Answer 1

  1. I’m not sure why the Wikipedia article links that particular phrase to the hypervisor article; the description of Virtual Machine Manager on its own web site is more accurate:

    The virt-manager application is a desktop user interface for managing virtual machines through libvirt.

    VMM isn’t a hypervisor itself, it’s a GUI used to manage virtual machines (and LXC containers). VMM and the VMs it manages run in separate processes; in QEMU’s case, VMM and QEMU communicate using Unix domain sockets (under /var/lib/libvirt/qemu).

  2. VirtualBox is split into multiple components. The GUI you’re presumably used to is one component; VMs can be run separately and managed using other tools, e.g. VBoxManage. The GUI is similar to Virtual Machine Manager, and the VM engine is similar to KVM/QEMU. They also run in separate processes.

  3. As explained here, libvirtd is a dæmon, which might qualify as a server process in your terminology. VMM is a libvirt client. VMM doesn’t communicate directly with QEMU, so it’s not a QEMU client. QEMU runs a virtual machine (i.e. it emulates the underlying hardware and handles communications with the host), libvirtd manages virtual machines (i.e. it manages images, storage, starting and stopping VMs, etc.). KVM provides hardware acceleration on systems which provide hypervisor support in hardware; when run with KVM, QEMU doesn’t need to handle non-virtualisable CPU instructions, the hardware takes care of them.

    Communications between the four components you mention are as follows:

    • QEMU uses KVM via its /dev/kvm device node;
    • libvirt connects to QEMU using domain sockets, as described above;
    • VMM connects to libvirt also using domain sockets, as far as I can tell.

    The whole libvirt setup is loosely coupled: VMs continue running even if VMM and/or libvirtd are stopped, and libvirtd can reconnect to VMs it manages (if it has an XML descriptor for the VMs).

  • Thanks. Can the VM engines of VirtualBox and KVM/QEMU also communicate with their GUI by internet domain sockets? If yes, does that mean a GUI can connect to a nonlocal VM engine of VirtualBox or KVM/QUMU, by internet domain sockets?
    – Tim
    Commented Feb 25, 2019 at 14:08
  • I don’t know about VirtualBox, but VMM can connect to remote systems, using SSH. Commented Feb 25, 2019 at 14:18
  • Thanks. (1) What does KVM do about virtual machines? (implement?) (2)"QEMU runs a virtual machine, libvirtd manages virtual machines". Isn't running virtual machines part of managing virtual machines? What differences are between the purposes of QEMU and libvirtd? (3) When QEMU works without KVM, does QEMU do the job of KVM? When QEMU works with KVM, does QEMU do less job?
    – Tim
    Commented Mar 28, 2019 at 21:53
  • (4) In virtualbox, where "VMs can be run separately and managed using other tools, e.g. VBoxManage". In KVM/QEMU case, QEMU runs VMs, libvirt manages VMs, and VMM does what? What does VBoxManage correspond to, VMM or QEMU or both? Is there something similar to QEMU in virtualBox?
    – Tim
    Commented Mar 28, 2019 at 22:27
  • (1-3) See the updated answer. (4) Point 1 in the answer explains what VMM does. VBoxManage corresponds to virsh. I’m not sure what you’re looking for in VirtualBox, I gave the link to the list of components, you should be able to find what you need there. Commented Mar 29, 2019 at 12:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .