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