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

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

Спочатку проект був створений Фабрисом Белларом (Fabrice Bellard) з метою забезпечення можливості запуску зібраних для платформи x86 файлів Linux, що виконуються, на архітектурах, відмінних від x86. За роки розробки було додано підтримку повної емуляції для 14 апаратних архітектур, кількість емульованих апаратних пристроїв перевищила 400. Під час підготовки версії 5.0 внесено понад 2800 змін від 232 розробників.

Ключові поліпшення, додані в QEMU 5.0:

  • Можливість прокидання частини файлової системи хост-оточення в гостьову систему за допомогою virtiofsd. Гостьова система може примонтувати каталог, помічений для експорту за хост-системи, що значно спрощує організацію спільного доступу до каталогів у системах віртуалізації. На відміну від застосування мережевих ФС, таких як NFS і virtio-9P, virtiofs дозволяє досягти продуктивності, близької до локальної файлової системи;
  • Підтримка live-міграції даних зовнішніх процесів, що використовують шину QEMU D-Bus;
  • Можливість використання бекендів пам'яті задля забезпечення роботи основний оперативної пам'яті гостьової системи. Бекенд задається за допомогою опції "-machine memory-backend";
  • Новий фільтр “compress”, який можна використовувати для створення стислих резервних копій образів;
  • Команда qemu-img measure тепер може працювати з образами LUKS, а в команду qemu-img convert додана опція target-is-zero для пропуску обнулення цільового образу;
  • Додано експериментальну підтримку процесу qemu-storage-daemon, що надає доступ до блочного рівня QEMU та команд QMP, включаючи виконання робіт з блочними пристроями та вбудований сервер NBD, без необхідності запуску повної віртуальної машини;
  • У емулятор архітектури ARM додана можливість емуляції CPU Cortex-M7 та забезпечена підтримка плат tacoma-bmc, Netduino Plus 2 та Orangepi PC. У емульовані машини 'virt' додана підтримка пристроїв vTPM та virtio-iommu. Оголошено застарілою можливість використання хост-систем AArch32 для запуску гостьових оточень KVM. Реалізовано підтримку емуляції наступних можливостей архітектур:
    • ARMv8.1: HEV, VMID16, PAN, PMU
    • ARMv8.2: UAO, DCPoP, ATS1E1, TTCNP
    • ARMv8.3: RCPC, CCIDX
    • ARMv8.4: PMU, RCPC
  • До емулятора архітектури HPPA додано підтримку графічної консолі з використанням графічного пристрою HP Artist;
  • До емулятора архітектури MIPS додано підтримку інструкції GINVT (Global Invalidation TLB);
  • У емуляторі архітектури PowerPC для машин 'powernv' додано емуляцію засобів апаратного прискорення KVM для запуску гостьових систем
    KVM з класичним генератором коду TCG (Tiny Code Generator). Для емуляції постійної пам'яті додано підтримку відбитих у файл NVDIMM. Для машин 'pseries' прибрано необхідність перезавантаження для узгодження роботи контролерів переривань XIVE/XICS у режимі ic-mode=dual;

  • В емуляторі архітектури RISC-V для плат 'virt' і 'sifive_u' реалізовано підтримку типових драйверів syscon в Linux для управління живленням і перезавантаженням. Для плати 'virt' додано підтримку Goldfish RTC. Додано експериментальну реалізацію розширень гіпервізора;
  • До емулятора архітектури s390 додано підтримку AIS (Adapter Interrupt Suppression) при роботі в режимі KVM.

Джерело: opennet.ru

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