
QEMU — эмулятор процессора, основанный на динамической двоичной трансляции.
Анонсирован запуск новой версии проекта QEMU 7.2, версия, в которой добавлены различные улучшения поддержки к различным эмуляторам, из которых наиболее выдающимся является реализация «virt» в OpenRISC, а также улучшения для ARM и многое другое. Эта новая выпущенная версия QEMU 7.1 содержит более 1800 коммитов от 205 авторов.
Для тех, кто плохо знаком с QEMU, следует знать, что он позволяет запускать программу, созданную для одной аппаратной платформы, в системе с совершенно другой архитектурой, например, запускать ARM-приложение на x86-совместимом ПК.
В режиме виртуализации в QEMU производительность выполнения кода в изолированной среде аналогична производительности аппаратной системы за счет прямого выполнения инструкций на ЦП и использования гипервизора Xen или модуля KVM.
Основные нововведения QEMU 7.2
В этой новой версии QEMU 7.2 подчеркивается, чтоДобавлена поддержка инструкций AVX, AVX2, F16C, FMA3 и VAES. к эмулятору архитектуры x86 в классическом генераторе кода TCG, а также оптимизации производительности, связанные с использованием инструкций SSE.
Еще одно заметное изменение заключается в том, что теперь Эмулятор ARM поддерживает расширения процессора Cortex-A35 и процессора ETS. (Расширенная синхронизация перевода), ПМУв3п5 (ПРасширения MU 3.5), ГТГ (Гранулы гостевого перевода 4 КБ, 16 КБ, 64 КБ), HAFDBS и E0PD (предотвращение доступа EL0 к общим картам адресов).
Кроме того, эмулятор архитектуры OpenRISC реализует виртуальную платформу для тестирования устройств и использования в системах непрерывной интеграции. Реализована поддержка многопоточного исполнения классического генератора кода TCG (Tiny Code Generator).
Эмулятор архитектуры RISC-V на эмулируемых «virt» машинах теперь есть возможность загрузки прошивки с pflash в S режиме, а эмулятор LoongArch добавляет поддержку fw_cfg DMA, горячего подключения памяти и эмуляции устройства TPM (Trusted Platform Module).
Эмулятор архитектуры 390x поддерживает расширение MSA5 (расширение Message-Security-Assist Extension 5 с инструкцией PRNO для генерации псевдослучайных чисел), инструкции KIMD/KLM (реализация SHA-512) и расширенную интерпретацию zPCI для гостей на основе KVM-гипервизор.
Добавлена поддержка механизма трассировки выхода KVM («уведомить vmexit») для предотвращения ошибок ЦП, которые могут привести к сбою.
Из другие изменения которые выделяются из этой новой версии:
- Бэкенды для работы с памятью обеспечивают предварительное выделение памяти с учетом архитектуры NUMA.
- Улучшена работа с деревом устройств
- Улучшена проверка заголовков устройства шифроблока LUKS, добавлена возможность создавать образы LUKS в macOS.
- В бэкэнде 9pfs, позволяющем использовать сетевую файловую систему Plan 9 для доступа с одной виртуальной машины на другую, изменено использование хэша GHashTable на таблице идентификаторов, что в некоторых ситуациях приводило к увеличению производительности от 6 до 12 раз.
- Добавлены новые бэкенды netdev и dgram.
- В гостевой агент ARM добавлена поддержка FreeBSD.
- Сборки с графическим интерфейсом для macOS позволяют включать интерфейсы Cocoa и SDL/GTK в один исполняемый файл.
- Удален встроенный подмодуль slirp, вместо него рекомендуется использовать системную библиотеку libslirp.
- Из-за отсутствия возможности тестирования поддержка 32-разрядных хостов MIPS, использующих порядок байтов Big Endian, устарела.
- Бинарные файлы qemu-i386 и qemu-x86_64 теперь по умолчанию используют модель ЦП «max» вместо «qemu32» / «qemu64».
- Поддержка сохранения/восстановления регистров SSE в кадрах сигналов в qemu-i386 (когда для FXSR установлено значение CPUID)
- Поддержка сохранения/восстановления состояния XSAVE для сигнальных кадров (когда для XSAVE установлено значение CPUID).
В конце концов если вам интересно узнать об этом больше об изменениях и нововведениях, представленных в этой новой версии QEMU 7.2, вы можете ознакомиться с подробностями и другими подробностями в следующую ссылку.