Программное обеспечение KVM состоит из загружаемого модуля ядра (называемого kvm.ko), предоставляющего базовый сервис виртуализации, процессорно-специфического загружаемого модуля kvm-amd.ko либо kvm-intel.ko, и компонентов пользовательского режима (модифицированного QEMU). Все компоненты программного обеспечения KVM открыты. Компонент ядра, необходимый для работы KVM, включён в основную ветку ядра Linux начиная с версии 2.6.20 (февраль 2007 года)[1]. KVM был также портирован на FreeBSD как модуль ядра[2]. Ведётся работа по включению модификаций, необходимых для работы с KVM, в основную ветку QEMU.
Сам по себе KVM не выполняет эмуляции. Вместо этого программа, работающая в пространстве пользователя, использует интерфейс/dev/kvm для настройки адресного пространства гостя виртуальной машины, через него же эмулирует устройства ввода-вывода и видеоадаптер.
Программное обеспечение KVM было создано, разрабатывается и поддерживается фирмой Qumranet, которая была куплена Red Hat за $107 млн 4 сентября 2008 года.[3]. После сделки KVM (наряду с системой управления виртуализацией oVirt) вошла в состав платформы виртуализации RHEV[англ.].
QEMU-библиотека виртуального процессора (libqemu.a) и эмулятор системы QEMU PC: LGPL.
Эмулятор пользовательского режима Linux QEMU: GPL.
Файлы BIOS (bios.bin, vgabios.bin и vgabios-cirrus.bin): SeaBIOS (LGPL v2 или более поздняя).
Системные требования
KVM требует наличия x86-совместимого процессора с поддержкой одной из технологий аппаратной виртуализации — Intel VT либо AMD SVM. На данный момент[уточнить] KVM в состоянии запускать в качестве гостевых операционных систем 32-битные и 64-битные системы на базе ядра Linux, Windows и другие системы[уточнить][4].
Графические утилиты управления
Virtual Machine Manager: создание, редактирование, запуск и остановка виртуальных машин, основанных на KVM
ConVirt: создание, редактирование, запуск и остановка виртуальных машин, основанных на KVM, как горячую, так и холодную миграцию с других VM хостов.
Proxmox Virtual Environment. Свободная виртуализация, основанная на KVM и OpenVZ — установка на урезанный дистрибутив Linux, управление через GUI и возможность получения коммерческой поддержки
AQEMU: создание, редактирование, запуск, остановка, сохранение мгновенных снимков виртуальных машин, основанных на KVM и QEMU. Программа создана русскоязычным разработчиком с использованием Qt4, позволяет задать все параметры для KVM/QEMU. Хостится на SourceForge.
GKVM: для рабочей среды GNOME. Создание, редактирование, запуск, остановка, сохранение мгновенных снимков виртуальных машин KVM. Хостится на SourceForge.
QtEmu: графическая оболочка для QEMU и KVM, написана на Qt4. Интерфейс на десяти языках. Хостится на SourceForge.
Текущие разработки
KVM использует QEMU в качестве фронтенда и для эмуляции некоторых устройств[5]. Ведётся работа по оптимизации использования возможностей аппаратной виртуализации, заложенных в современных процессорах Intel и AMD. Производительность KVM сравнивалась с производительностью Xen, работающего в режиме аппаратной виртуализации (не паравиртуализации), и при определённых видах нагрузок KVM показывал лучшую производительность (но не в большинстве случаев)[6].