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

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

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

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

  • Додано підтримку емуляції CPU на базі архітектури AVR. Реалізована підтримка плат Arduino Duemilanove (ATmega168), Arduino Mega 2560 (ATmega2560),
    Arduino Mega (ATmega1280) та Arduino UNO (ATmega328P).

  • У емулятор ARM додана можливість гарячого відключення пам'яті (hot-unplug), а також гарячого підключення пам'яті nvdimm для гостьових систем з ACPI. Реалізовано підтримку розширень ARMv8.2 TTS2UXN и ARMv8.5 MemTag. Забезпечено підтримку плати sonorapass-bmc.
  • До емулятора архітектури MIPS додано підтримку CPU Loongson 3A CPUs (R1 і R4). Підвищено продуктивність емуляції інструкцій FPU та MSA.
  • У емулятор архітектури RISC-V додано підтримку CPU SiFive E34 та Ibex. Реалізовано підтримку плат HiFive1 revB і OpenTitan. Для машин Spike надано підтримку більше одного CPU.
  • В емуляторі архітектури PowerPC з'явилася підтримка відновлення помилок у гостьових системах за допомогою FWNMI.
  • Для архітектури s390 додано підтримку KVM для захищеної віртуалізації (режим безпечного виконання).
  • У емуляторі архітектури x86 скорочені накладні витрати на віртуалізацію неадаптованих гостьових систем з Windows, через надання таблиці пристроїв, що емулюються ACPI WAET (Windows ACPI Emulated Device Table). Поліпшено підтримку прискорення HVF для MacOS.
  • У драйвері блокових пристроїв з'явилася підтримка віртуальних пристроїв зберігання з логічними та фізичними блоками розміром 2MB.
  • Додана можливість передачі в QEMU паролів та ключів для шифрування через keyring ядра Linux за допомогою об'єктів нового типу «secret-keyring».
  • Для формату qcow2 реалізовано підтримку алгоритму стиснення zstd.
  • В утиліті qemu-img додана нова команда bitmap для маніпуляції постійними бітовими картами у файлах qcow2. У qemu-img також реалізовано управління ключами LUKS (keyslot) та запропоновано додаткові можливості для команд «map» (start-offset, max-length) і convert (bitmaps), в команді measure додано висновок відомостей про розмір постійних бітових карток у файлах qcow2.
  • У драйвері NVMe з'явилася підтримка постійних областей пам'яті (Persistent Memory Region), що з'явилися у специфікації NVMe 1.4.
  • У virtio для гостьових систем з класичним генератором коду TCG (Tiny Code Generator) реалізована можливість використання процесів vhost-користувачвключаючи virtiofsd. Vhost-user додане розширення VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS, що дозволяє реєструвати більше 8 слотів ОЗУ.

Джерело: opennet.ru

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