Представен е релиз на проекта QEMU 6.1. Като емулатор, QEMU позволява стартирането на програма, компилирана за една хардуерна платформа, на система с напълно различна архитектура, например, изпълнение на приложение за ARM на x86-совместим ПК. В режим на виртуализация, производителността на изпълнение на кода в изолирана среда е близка до тази на хардуерната система благодарение на директното изпълнение на инструкциите на CPU и използването на хипервизора Xen или модула KVM.
Първоначално проектът е създаден от Фабрис Беллар (Fabrice Bellard) с цел осигуряване на възможността за изпълнение на файлове, компилирани за x86 платформи, на архитектури, различни от x86. През годините на разработка е добавена поддръжка на пълна емулация за 14 хардуерни архитектури, а броят на емулираните хардуерни устройства надхвърля 400. При подготовката на версия 6.1 са направени над 3000 изменения от 221 разработчик.
Ключови подобрения в QEMU 6.1:
- В QMP (QEMU Machine Protocol) е добавена команда „blockdev-reopen“ за промяна на настройките на вече създадено блочно устройство.
- Като приоритетен криптодрайвер е използван gnutls, който е по-бърз от другите драйвери. Предложението по подразбиране на драйвера на базата на libgcrypt е преместено в категория опции, а драйверът базиран на nettle остава като резервен вариант, прилаган в отсъствието на GnuTLS и Libgcrypt.
- В емулатора I2C е добавена поддръжка за PMBus и I2C-мултиплексори (pca9546, pca9548).
- По подразбиране е включена поддръжка на плъгини за класическия генератор на код TCG (Tiny Code Generator). Добавени са нови плъгини execlog (журнал за изпълнение) и cache modelling (симулация на поведението на кэш L1 в CPU).
- В емулатора ARM е добавена поддръжка за платформи, базирани на чипове Aspeed (rainier-bmc, quanta-q7l1), npcm7xx (quanta-gbs-bmc) и Cortex-M3 (stm32vldiscovery). Добавена е поддръжка на хардуерни модули за криптиране и хеширане, предоставени от чиповете Aspeed. Добавена е поддръжка за емулация на инструкции SVE2 (включително bfloat16), оператори за умножаване на матрици и команди за нулиране на буферите за асоциативна транслация (TLB).
- В емулатора на архитектурата PowerPC за емулираните машини „pseries“ е добавена поддръжка за определяне на сбой при горещо свързване на устройства в новите хост машинни среди, увеличен е лимита на броя на CPU и е реализирана емулация на някои инструкции, специфични за процесорите POWER10. Добавена е поддръжка за платки, базирани на чиповете Genesi/bPlan Pegasos II (pegasos2).
- В емулатора RISC-V е реализирана поддръжка на платформата OpenTitan и виртуален GPU virtio-vga (на базата на virgl).
- В емулатора s390 е добавена поддръжка за 16-то поколение CPU и векторни разширения.
- В емулатора x86 е добавена поддръжка на новите модели CPU Intel (Skylake-Client-v4, Skylake-Server-v5, Cascadelake-Server-v5, Cooperlake-v2, Icelake-Client-v3, Icelake-Server-v5, Denverton-v3, Snowridge-v3, Dhyana-v2), в които е реализирана инструкцията XSAVES. В емулатора на чипсета Q35 (ICH9) е реализирана поддръжка за горещо свързване на PCI устройства. Подобрена е емулацията на разширенията за виртуализация, предоставяни от процесорите AMD. Добавена е опция bus-lock-ratelimit за ограничаване на интензивността на блокировка на шина от хост системата.
- Добавена е поддръжка за използване на NVMM хипервизор, разработван от проекта NetBSD, като ускорител.
- В GUI поддръжката на удостоверяване с парола при използване на VNC протокол вече се включва само при компилация с външен криптографски бекенд (gnutls, libgcrypt или nettle).
Източник: opennet.ru
