релиз на проекта . Като емулятор QEMU позволява стартирането на програма, компилирана за една хардуерна платформа, на система с напълно различна архитектура, например, изпълнение на приложение за ARM на PC, съвместим с x86. В режима на виртуализация в QEMU производителността на изпълнение на кода в изолирана среда е близка до тази на нативна система благодарение на директното изпълнение на инструкциите на CPU и използването на хипервизора Xen или модула KVM.
Проект беше създаден от Фабрис Беллар с цел да осигури възможност за стартиране на изпълними файлове Linux, събрани за платформа x86, на архитектури различни от x86. През годините на разработка е добавена поддръжка за пълна емулация на 14 хардуерни архитектури, а броят на еймулираните хардуерни устройства надвиши 400. При подготовката на версия 4.0 бяха направени над 3100 промени от 220 разработчици.
Ключови , добавени в QEMU 4.0:
- В емулатора на архитектура ARM е добавена поддръжка на разширенията на инструкциите ARMv8+: SB, PredInv, HPD, LOR, FHM, AA32HPD,
PAuth, JSConv, CondM, FRINT и BTI. Добавена е поддръжка за емулация на платки „Musca“ и „MPS2“. Подобрена е емулацията на ARM PMU (Power Management Unit). В платформата е добавена възможност за използване на над 255 ГБ RAM и поддръжка на образи u-boot от тип „noload“; - В емулатора на архитектура x86 в двигателя за ускорение на виртуализацията (Intel Hardware Accelerated Execution) е добавена поддръжка за POSIX-совместими хостове, като Linux и NetBSD (представлявани преди само на платформата Darwin). В емулатора на чипсета Q35 (ICH9) за основни PCIe портове сега опционално може да бъде зададена максимална скорост (16GT/s) и брой линии на връзка (x32), определени в спецификацията PCIe 4.0 (за осигуряване на съвместимост по подразбиране за стари типове машини QEMU е настроен на 2.5GT/s и x1). Осигурена е възможността за зареждане на образи Xen PVH с опция „-kernel“;
- В емулатора на архитектура MIPS е добавена поддръжка за многопоточна емулация с използване на класическия генератор на код TCG (Tiny Code Generator). Също така е добавена поддръжка за емулация на CPU I7200 (nanoMIPS32 ISA) и I6500 (MIPS64R6 ISA), възможност за обработка на CPU запитвания с използване на QMP (QEMU Management Protocol), добавена е поддръжка за конфигурационни регистри SAARI и SAAR. Подобрена е работата на виртуални машини от тип Fulong 2E. Актуализирана е реализацията на Interthread Communication Unit;
- В емулатора на архитектура PowerPC е добавена поддръжка за емулация на контролера за прекъсвания XIVE, разширена е поддръжката на POWER9, за P series е добавена възможност за горещо свързване на главни мостове PCI (PHB, PCI host bridge). По подразбиране е внедрена защита от атаки Spectre и Meltdown;
- В емулатора на архитектура RISC-V е добавена поддръжка за емулация на PCI и USB. В вграденния отладчик (gdbserver) е реализирана поддръжка за задаване на списъци с регистри в XML файлове. Добавена е поддръжка за полета mstatus TSR, TW и TVM;
- В емулатора на архитектурата s390 е добавена поддръжка на модела CPU z14 GA 2, както и поддръжка за емулация на разширения на инструкциите за изчисления с плаваща запетая и векторни операции. В vfio-ap е добавена възможността за горещо свързване на устройства;
- В емулатора на процесорите от семейството Tensilica Xtensa е подобрена поддръжката на SMP за Linux и е добавена поддръжка на разширението FLIX (разширение на инструкции с гъвкава дължина);
- В графичния интерфейс е добавена опцията ‘-display spice-app’ за настройване и стартиране на вариант на клиента за дистанционен достъп Spice с оформление, подобно на GTK-интерфейса на QEMU;
- В реализацията на VNC-сервера е добавена поддръжка за управление на достъпа чрез опции tls-authz/sasl-authz;
- В QMP (Протокол за управление на QEMU) е добавена поддръжка за централизирано/външно (Out-of-band) изпълнение на команди и са реализирани допълнителни команди за работа с блочни устройства;
- В VFIO е добавена реализация на интерфейса EDID за поддържаните mdev (Intel vGPU), позволяваща смяна на резолюцията на екрана, използвайки опциите xres и yres;
- За Xen е добавено ново устройство ‘xen-disk’, което може самостоятелно да създава дисков бекенд за Xen PV (без обращение към xenstore). Увеличена е производителността на дисковия бекенд Xen PV и е добавена възможност за промяна на размера на диска;
- В мрежовите блочни устройства са разширени възможностите за диагностика и проследяване, подобрена е съвместимостта на клиента с проблемни реализации на сървъра NBD. В qemu-nbd са добавени опциите ‘—bitmap’, ‘—list’ и ‘—tls-authz’;
- В емулираното устройство IDE/via е добавена поддръжка на режим PCI IDE;
- Добавена е поддръжка за използване на алгоритъма lzfse за компресиране на dmg изображения. За формата qcow2 е добавена поддръжка за свързване на външни файлове с данни. Операциите по разархивиране на qcow2 са изнесени в отделен поток. В изображенията vmdk е добавена поддръжка за операция ‘blockdev-create’;
- В блочното устройство virtio-blk е добавена поддръжка за операции DISCARD (информиране за освобождаване на блокове) и WRITE_ZEROES (нулиране на диапазон от логически блокове);
- В устройството pvrdma е реализирана поддръжка на RDMA Management Datagram services (MAD);
- Внесени , нарушаващи обратната съвместимост. Например, вместо опцията «handle» в «-fsdev» и «-virtfs» трябва да се използват опции «local» или «proxy». Премахнати са опции «-virtioconsole» (заменена с «-device virtconsole»), «-no-frame», «-clock», «-enable-hax» (заменена с «-accel hax»). Премахнато е устройството «ivshmem» (трябва да се използват «ivshmem-doorbell» или «ivshmem-plain»). Поддръжката на сглобяването с SDL1.2 е прекратена (трябва да се използва SDL2).
Източник: opennet.ru
