Виртуализация в QEMU работает за счёт эмуляции различных устройств. 1 Программа позволяет запускать операционные системы, предназначенные под одну архитектуру, на другой (например, ARM —> x86). 1 Кроме процессора, QEMU эмулирует различные периферийные устройства: сетевые карты, HDD, видеокарты, PCI, USB и другие. 1
Виртуализация в QEMU может работать в нескольких режимах: 2
- Эмуляция в пользовательском режиме. 2 В этом режиме QEMU запускает отдельные программы, которые были скомпилированы для другого набора инструкций. 2
- Эмуляция системы. 2 В этом режиме QEMU эмулирует всю компьютерную систему, включая периферийные устройства. 2 Можно обеспечить виртуальный хостинг нескольких виртуальных компьютеров на одном компьютере. 2
- Поддержка гипервизора. 2 В этом режиме QEMU действует либо как диспетчер виртуальных машин (VMM), либо как серверная часть эмуляции устройства для виртуальных машин, работающих под управлением гипервизора. 2
При использовании обычных виртуальных дисков и сетевых карт система работает следующим образом: 5
- В гостевую систему предоставляются копии реальных устройств. 5
- В гостевой системе драйвера устройств преобразуют высокоуровневые запросы в низкоуровневые. 5
- Виртуальная система их перехватывает, преобразует в высокоуровневые и передаёт уже драйверам хост-системы. 5
При использовании virtio-устройств цепочка сокращается, virtio-драйвера ничего не преобразуют, а передают напрямую хост-системе высокоуровневые запросы, что приводит к ускорению работы виртуальных машин. 5