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