релиз на проекта . Като емулятор QEMU позволява стартирането на програма, компилирана за една хардуерна платформа, на система с напълно различна архитектура, например, изпълнение на приложение за ARM на PC, съвместим с x86. В режима на виртуализация в QEMU производителността на изпълнение на кода в изолирана среда е близка до тази на нативна система благодарение на директното изпълнение на инструкциите на CPU и използването на хипервизора Xen или модула KVM.
Първоначално проектът е създаден от Фабрис Беллар (Fabrice Bellard) с цел осигуряване на възможността за стартиране на компилирани за x86 изпълними файлове на Linux на архитектури, различни от x86. През годините на разработка беше добавена поддръжка за пълна емуляция на 14 хардуерни архитектури, а броят на емулираните хардуерни устройства надхвърли 400. При подготовката на версия 5.1 са направени над 2500 изменения от 235 разработчици.
Ключови , добавени в QEMU 5.1:
- Добавена е поддръжка за емуляция на CPU на база архитектурата . Реализирана е поддръжка на платки Arduino Duemilanove (ATmega168), Arduino Mega 2560 (ATmega2560),
Arduino Mega (ATmega1280) и Arduino UNO (ATmega328P). - В емулятора на архитектура ARM е добавена възможност за горещо отключване на паметта (hot-unplug), а също и за горещо включване на памет nvdimm за хост системи с ACPI. Реализирана е поддръжка на разширения ARMv8.2 и . Осигурена е поддръжка на платка 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). Подобрена е поддръжката за ускорение за 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) е реализирана възможност за използване на процеси , включително virtiofsd. В vhost-user е добавено разширение VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS, позволяващо регистриране на повече от 8 слота за RAM.
Източник: opennet.ru
