Представлен релиз проекта QEMU 7.2. В качестве эмулятора QEMU позволяет запустить программу, собранную для одной аппаратной платформы, на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к аппаратной системе за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM.
Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. При подготовке версии 7.2 внесено более 1800 изменений от 205 разработчиков.
Ключевые улучшения, добавленные в QEMU 7.2:
- В эмуляторе архитектуры x86 в классическом генераторе кода TCG добавлена поддержка инструкций AVX, AVX2, F16C, FMA3 и VAES, а также проведена оптимизация производительности, связанная с использованием инструкций SSE. Для KVM добавлена поддержка механизма отслеживания выхода из виртуальной машины (“notify vmexit”), позволяющего обойти ошибки в CPU, которые могут привести к зависанию.
- В эмуляторе ARM реализована поддержка CPU Cortex-A35 и процессорных расширений ETS (Enhanced Translation Synchronization), PMU Extensions 3.5, GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (аппаратное управление флагом доступа и состоянием “dirty”) и E0PD (предотвращение доступа EL0 к разделённым картам адресов).
- В эмуляторе LoongArch добавлена поддержка fw_cfg DMA, горячего подключения памяти и эмуляция устройств TPM (Trusted Platform Module).
- В эмуляторе архитектуры OpenRISC реализован новый тип эмулируемой машины ‘virt’ для проведения тестов устройств и использования в системах непрерывной интеграции. Реализована поддержка многопоточного выполнения классического генератора кода TCG (Tiny Code Generator).
- В эмулятор архитектуры RISC-V в эмулируемых машинах ‘virt’ реализована возможность загрузки прошивки из pflash в S-режиме (S-mode). Улучшена работа с device tree.
- В эмуляторе архитектуры 390x обеспечена поддержка расширения MSA5 (Message-Security-Assist Extension 5 с инструкцией PRNO для генерации псевдослучайных чисел), инструкций KIMD/KLM (реализация SHA-512) и расширенной интерпретации zPCI для гостевых систем на базе гипервизора KVM.
- В бэкендах для работы с памятью обеспечено предварительное выделение памяти с учётом архитектуры NUMA.
- Усилена проверка заголовков шифрованных блочных устройств LUKS, добавлена возможность создания образов LUKS в macOS.