Випуск емулятора QEMU 4.0

Сформовано реліз проекту QEMU 4.0. Як емулятор QEMU дозволяє запустити програму, зібрану для однієї апаратної платформи, на системі з зовсім іншою архітектурою, наприклад, виконати додаток для ARM на x86-сумісному ПК. У режимі віртуалізації QEMU продуктивність виконання коду в ізольованому оточенні близька до нативної системи за рахунок прямого виконання інструкцій на CPU і залучення гіпервізора Xen або модуля KVM.

Спочатку проект був створений Фабрисом Белларом (Fabrice Bellard) з метою забезпечення можливості запуску зібраних для платформи x86 файлів Linux, що виконуються, на архітектурах, відмінних від 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 Гб ОЗП та підтримка образів u-boot з типом «noload»;

  • В емуляторі архітектури x86 у движку прискорення віртуалізації HAX (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 (Flexible length instructions extension);
  • До графічного інтерфейсу додано опцію '-display spice-app' для налаштування та запуску варіанта клієнта віддаленого доступу Spice з оформленням, схожим на GTK-інтерфейс QEMU;
  • У реалізацію VNC-сервера додано підтримку управління доступом за допомогою опцій tls-authz/sasl-authz;
  • У QMP (QEMU Management Protocol) додано підтримку централізованого/зовнішнього (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

Додати коментар або відгук