релиz на проекта . Като емулятор, QEMU позволява стартирането на програми, компилирани за една хардуерна платформа, на система с напълно различна архитектура, например, изпълнение на приложение за ARM на персонален компютър, съвместим с x86. В режим на виртуализация в QEMU производителността на изпълнението на кода в изолирана среда е близка до нативната система благодарение на директното изпълнение на инструкциите на CPU и използването на хипервизора Xen или модула KVM.
Проектът първоначално е създаден от Фабрис Беллар (Fabrice Bellard) с цел да осигури възможност за стартиране на Linux изпълними файлове, събрани за платформата x86, на архитектури, различни от 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
