Опубликован эмулятор QEMU 9.2.0 с поддержкой Rust и Vulkan
Представлен релиз проекта QEMU 9.2. В качестве эмулятора QEMU позволяет запустить программу, собранную для одной аппаратной платформы на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к аппаратной системе за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM в Linux, или модуля NVMM в NetBSD.
Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. При подготовке версии 9.2 внесено более 1700 изменений от 209 разработчиков.
Ключевые улучшения, добавленные в QEMU 9.2:
- Добавлена экспериментальная поддержка создания моделей устройств, написанных на языке Rust. При сборке QEMU с поддержкой Rust по умолчанию задействована альтернативная реализация драйвера PL011 UART, написанная на Rust, но пока не рекомендованная для широкого использования.
В настоящее время по умолчанию поддержка Rust отключена и активируется при сборке через указание опции »--enable-rust» при запуске скрипта configure. Для сборки с Rust требуются как минимум версии rustc 1.63.0 и bindgen 0.60.0 (например, в Debian 12 придётся отдельной устанавливать более новую версию Rust). В будущем компилятор Rust и генератор привязок bindgen планируют добавить в число обязательных сборочных зависимостей.
Из планов, связанных с продвижением Rust в QEMU, можно отметить доведение до рабочего состояния драйвера HPET (High Precision Event Timer) и драйвера для блочных устройств, продолжение развития обвязок для использования Rust в различных компонентах QEMU (например, в драйверах блочных устройств, таймеров и GPIO), переписывание на Rust критичных с точки зрения безопасности систем, таких как virtio.
В устройство VirtIO-GPU, обеспечивающее работу виртуального GPU, добавлена поддержка 3D-ускорения с использованием графического API Vulkan, реализованная через входящий в состав Mesa Vulkan-драйвер Venus, который позволяет предоставить гостевой системе виртуальный GPU для 3D-рендеринга без открытия эксклюзивного прямого доступа к физическому GPU. Для работы необходимо наличие библиотеки virglrenderer на стороне хост-системы и Mesa-драйвера Venus на стороне гостевой системы. Инструкция по настройке поддержки Vulkan в QEMU.
В инструментарий миграции гостевых добавлена поддержка ускорения операций сжатия одновременно передаваемых потоков данных при помощи библиотеки QATzip, обеспечивающей задействование встроенного в процессоры Intel ускорителя QAT (QuickAssist Technology), предлагающего средства для ускорения вычислений, используемых при сжатии и шифровании.
В криптографический бэкенд на базе GLib добавлена поддержка алгоритма хэширования SHA-384.
В эмулятор архитектуры ARM добавлена поддержка процессорных расширений FEAT_EBF16 и FEAT_CMOW, а также расширений для обеспечения безопасности, используемых в платах xilinx-zynq-a9. При использовании HVF (задействует Hypervisor.framework для ускорения) на новых системах Mac обеспечена поддержка более чем 64 ГБ памяти. Для плат sbsa-ref и virt добавлена поддержка двухэтапной трансляции адресов в SMMU (System Memory Management Unit). Прекращена поддержка устаревших типов эмулируемого оборудования akita, borzoi, cheetah, connex, mainstone, n800, n810, spitz, terrier, tosa, verdex и z2.
- В эмулятор архитектуры x86 добавлена поддержка нового типа аппаратной конфигурации — nitro-enclave, эмулирующего окружение AWS Nitro Enclave и способного загружать системные образы в формате Enclave Image Format.
В эмуляторе архитектуры x86 для гипервизора KVM реализована возможность включения поддержки набора инструкций AVX10, а также специфичных версий AVX10 — avx10–128, avx10–256 и avx10–512.
- В эмулятор архитектуры RISC-V добавлена поддержка расширений архитектуры набора команд Svvptc, Bitmanip (Bit-Manipulation) и CFI (Control Flow Integrity), используемых на платах OpenTitan. В тип эмулируемых систем «virt» добавлена поддержка IOMMU. Повышена производительность инструкций ld и st.
В эмуляторе архитектуры HPPA до версии 17 обновлена прошивка SeaBIOS-hppa.
В эмулятор архитектуры s390x добавлена возможность загрузки с других устройств, если не удалось загрузиться с указанного устройства.
Источник: http://www.opennet.ru/opennews/art.shtml? num=62390
© OpenNet