+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Подано реліз емулятора QEMU 4.1 для запуску програм на системах з різною архітектурою

Наведено реліз емулятора QEMU 4.1 для запуску програм на системах з різною архітектурою

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

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

Ключові покращення, додані в QEMU 4.1:

  • У емулятор архітектури x86 додано підтримку моделей CPU Hygon Dhyana та Intel SnowRidge. Додано емуляцію розширення RDRAND (апаратний генератор псевдовипадкових чисел). Додані прапори md-clear і mds-no для управління захистом від атак MDS (Microarchitectural Data Sampling) на процесори Intel. Додано можливість визначення топологій інтегральних схем за допомогою прапора "-smp...,dies=". Реалізовано версіонування для всіх моделей CPU x86;
  • Блоковий драйвер SSH переведено з використання libssh2 на libssh;
  • У драйвер virtio-gpu (віртуальний GPU, що розвивається в рамках проекту Virgil) додана підтримка виносу операцій малювання 2D/3D у зовнішній процес vhost-user (наприклад, vhost-user-gpu);
  • Емулятор архітектури ARM додає підтримку розширення ARMv8.5-RNG для генерації псевдовипадкових чисел. Реалізовано підтримку емуляції FPU для чіпів сімейства Cortex-M та вирішено проблеми з емуляцією FPU для Cortex-R5F. Запропоновано нову систему налаштування опцій збирання, оформлену в стилі Kconfig. Для SoC Exynos4210 додано підтримку DMA-контролерів PL330;
  • У емуляторі архітектури MIPS покращена підтримка інструкцій MSA ASE при використанні порядку слідування байт big-endian і приведена у відповідність до еталонного обладнання обробка випадків розподілу на нуль. Збільшено продуктивність емуляції інструкцій MSA для цілих обчислень та операцій перестановки;
  • У емуляторі архітектури PowerPC з'явилася підтримка прокидання до GPU NVIDIA V100/NVLink2 за допомогою VFIO. Для pseries реалізовано прискорення емуляції контролера переривань XIVE та додано підтримку гарячого підключення PCI мостів. Внесено оптимізацію до емуляції векторних інструкцій (Altivec/VSX);
  • У емулятор архітектури RISC-V додано нову модель обладнання - "spike". Додано підтримку ISA 1.11.0. Покращено 32-розрядний ABI системних викликів, розширено обробку неприпустимих інструкцій та покращено вбудований відладчик. Додано підтримку топології CPU у device tree;
  • У емулятор архітектури s390 додано підтримку емуляції всіх векторних інструкцій групи "Vector Facility" та додано додаткові елементи для підтримки систем gen15 (у тому числі додано підтримку AP Queue Interruption Facility для vfio-ap). Реалізовано підтримку BIOS для завантаження з ECKD DASD, прив'язаного до гостьової системи через vfio-ccw;
  • У емуляторі архітектури SPARC для систем sun4m вирішено проблеми з використанням прапора "-vga none" для OpenBIOS;
  • У емуляторі процесорів сімейства Tensilica Xtensa реалізовані опції для MPU (memory protection unit) та ексклюзивного доступу;
  • У команду "qemu-img convert" додано опцію "--salvage" для відключення аварійного завершення роботи процесу перетворення образу у разі виникнення помилок вводу/виводу (наприклад, можна застосовувати для відновлення частково пошкоджених файлів qcow2). У команді "qemu-img rebase" забезпечено роботу, коли для вхідного файлу поки не створено базовий (backing) файл;
  • Додано можливість перенаправлення виводу, організованого з використанням технології "semihosting" (дозволяє емульованому пристрою використовувати stdout, stderr і stdin для створення файлів на стороні хоста), в бекенд chardev ("-semihosting-config enable=on,target=native, chardev=[ID]");
  • У блочному драйвері VMDK додано підтримку субформату seSparse у режимі тільки для читання;
  • У драйвері емуляції GPIO додано підтримку GPIO-контролера SiFive.

Інші новини