QEMU 10.2 расширяет возможности эмуляции RISC-V, PowerPC и s390x

QEMU, популярный эмулятор и виртуализатор с открытым исходным кодом, официально выпустил версию 10.2 (после цикла из четырёх предварительных выпусков) в качестве второго точечного обновления для серии 10.x.
Заметным изменением стало уточнение политики безопасности QEMU. Теперь в проекте чётко определено, какие типы машин подпадают под «вариант использования виртуализации» при определении того, что является уязвимостью в системе безопасности.
Несколько устаревших компонентов были удалены. Давно устаревшая опция -old-param больше не поддерживается, а семейство процессоров Arm PXA было полностью удалено.
Что касается архитектуры, то эмуляция Arm получила множество новых функций для процессора, включая SCTLR2, TCR2, LSE128 и расширения, связанные с RME. Улучшена поддержка отладки: gdbstub теперь предоставляет доступ к регистрам SME и SME2.
Поддержка платформы расширена за счёт новых и обновлённых моделей плат, в том числе новой платы amd-versal2-virt, улучшенного моделирования для систем Xilinx ZynqMP, а также добавления устройств, связанных с PCIe и безопасной загрузкой, для нескольких однокристальных систем ASPEED.
RISC-V стабильно развивается: исправлена целостность потока управления, добавлена настраиваемая степень детализации PMP, обновлена прошивка OpenSBI, а также исправлены многочисленные ошибки, связанные с таймерами, обработкой MMU и поведением инструкций.
Эмуляция PowerPC добавляет поддержку новых компьютеров PowerNV и PPE, вводит поддержку FADUMP на pSeries, обновляет компоненты прошивки и удаляет устаревшие процессоры, которые невозможно использовать. Аналогичные постепенные улучшения коснулись s390x, LoongArch, HPPA и других поддерживаемых архитектур.
Что касается эмуляции устройств, в QEMU 10.2 добавлена поддержка Replay Protected Memory Block (RPMB) для модели eMMC, удалены устаревшие устройства платформы VFIO и улучшена поддержка подсистем PCIe, хранения данных, сетевых подключений и virtio. Расширена поддержка хоста FreeBSD в таких областях, как 9pfs, а эмуляция в пользовательском режиме получила новые системные вызовы, улучшенную обработку сигналов и исправления для конкретной архитектуры.
Что касается безопасности и криптографии, были повышены минимальные версии GNUTLS, libgcrypt и nettle. Теперь QEMU поддерживает загрузку нескольких сертификатов X.509, что является необходимым условием для перехода на постквантовую криптографию. Обработка TLS была улучшена за счёт исправлений потенциальных проблем с использованием после освобождения и более точной логики проверки сертификатов.
Также улучшены миграция и производительность. В QEMU 10.2 появились новые режимы миграции, исправлены многочисленные ошибки, связанные с копированием и созданием снимков, а также устранены проблемы с производительностью, связанные с VFIO, после миграции. На хостах, поддерживающих эту функцию, основной цикл QEMU теперь использует io_uring, что закладывает основу для будущих улучшений производительности и масштабируемости.
Наконец, для разработчиков была оптимизирована генерация трассировочного кода, что позволило уменьшить размер двоичного файла. Теперь доступны новые хуки плагинов TCG, а минимальная поддерживаемая версия Rust составляет 1.83. Поддержка Rust остаётся экспериментальной и предназначена только для разработки, но функциональность устройств на базе Rust продолжает улучшаться.
Дополнительную информацию можно найти в журнале изменений. Исходный код QEMU 10.2 доступен для скачивания на веб-сайте проекта.
Редактор: AndreyEx
Важно: Данная статья носит информационный характер. Автор не несёт ответственности за возможные сбои или ошибки, возникшие при использовании описанного программного обеспечения.