QEMU, популярный эмулятор и виртуализатор машин с открытым исходным кодом, только что представил свою версию 9.2, в которой появился целый ряд заслуживающих внимания улучшений, исправлений и удалений.
Несмотря на то, что обновление включает в себя несколько изменений, оно также предлагает более четкую дорожную карту и улучшенную поддержку новых аппаратных функций и конфигураций. Другими словами, хотя QEMU 9.2 может потребовать от пользователей корректировки некоторых существующих настроек, в конечном итоге оно призвано проложить путь к созданию более гибкой и перспективной среды виртуализации.
Начнем с того, что в QEMU 9.2 удалены несколько давно устаревших функций и опций. Например, опции командной строки -rotate и -portrait, которые ранее ассоциировались с машинами PXA2xx, были отменены, поскольку эти машины больше не поддерживаются.
Аналогично, старый прокси-бэкенд для 9pfs и сопутствующая программа virtfs-proxy-helper были отменены в пользу драйвера локального бэкенда или более современного решения virtio-fs. Кроме того, некоторые свойства, такие как loaded у типов объектов secret и tlscreds, были полностью удалены, так как они не выполняли никакой практической функции.
Между тем, различные опции перешли в категорию deprecated, сигнализируя о том, что пользователям следует готовиться к отказу от них. Например, команда query-migrationthreads, бэкенд gluster для блочных устройств и опция reconnect для символьных и сетевых устройств были помечены как устаревшие.
Пользователям предлагается принять предложенные замены – например, reconnect-ms для устройств – или изучить новые стратегии миграции блоков и ввода-вывода. Хотя поначалу эти изменения могут показаться неудобными, сопровождающие QEMU намерены обеспечить более чистую и согласованную кодовую базу в долгосрочной перспективе.
С точки зрения аппаратной эмуляции, архитектура Arm получила несколько важных улучшений. Появились новые архитектурные особенности процессора, такие как FEAT_EBF16 и FEAT_CMOW. Кроме того, платы sbsa-ref и virt теперь оснащены блоками управления системной памятью (SMMU) с возможностью двухступенчатой трансляции, что обеспечивает более мощные возможности виртуализации памяти.
На хостах macOS под управлением 15-й или более новой версии ускоритель hvf теперь может работать с виртуальными машинами с большим объемом памяти – помимо 36-битной адресации – при условии, что базовый процессор поддерживает ее. Это открывает возможности для более серьезных рабочих нагрузок и ресурсоемких приложений, которые могут бесперебойно работать на новом оборудовании Apple.
Кроме того, в QEMU 9.2 удалены некоторые старые типы машин Arm, которые ранее были устаревшими. В результате, такие типы, как akita, borzoi и некоторые другие, были окончательно сняты с производства.
Аналогичным образом, цель CRIS, которую стало практически невозможно поддерживать из-за отсутствия поддержки Linux и современных инструментальных цепочек, была полностью удалена, что упростило поддержку QEMU для практически актуальных архитектур.
На фронте RISC-V этот выпуск принес существенный прогресс. Например, в QEMU 9.2 появилось свойство для установки vl в ceil(AVL/2), добавлен регистр fcsr в журнал для расширения F, и даже внесены улучшения в инструкции векторной загрузки/хранения.
Кроме того, расширена поддержка архитектуры прерываний AIA (Advanced Interrupt Architecture) под KVM и пользователи могут экспериментировать с расширениями IOMMU и Control Flow Integrity (CFI) на оборудовании RISC-V. Эти усовершенствования подчеркивают неизменную приверженность QEMU к RISC-V, поскольку эта архитектура находит все большее применение в отрасли.
Что касается x86, то здесь дебютирует новый тип машин под названием nitro-enclave, позволяющий эмулировать среду AWS Nitro Enclave и поддерживающий загрузку из файлов EIF (Enclave Image Format). Это еще один шаг вперед в удовлетворении потребностей пользователей, ориентированных на облачные вычисления и нуждающихся в безопасных изолированных средах выполнения.
Кроме того, поддержка QEMU KVM теперь включает инструкции AVX10, которые могут быть настроены различными способами (например, avx10-128, avx10-256 и так далее) в зависимости от требований пользователей и возможностей центрального процессора.
В области эмуляции устройств и внешних функций QEMU 9.2 расширяет virtio-gpu с инкапсуляцией venus для Vulkan, что потенциально повышает производительность графики в специализированных случаях использования. Между тем, virtio-mem теперь поддерживает приостановку/возобновление на x86-64, что обещает более динамичное и гибкое поведение при распределении памяти.
Что касается разработки и процессов, то в QEMU 9.2 появилась экспериментальная поддержка Rust для моделей устройств. Хотя это пока не рекомендуется для использования в производстве, включение моделей устройств на основе Rust не сложнее, чем настройка QEMU с помощью -enable-rust (при условии, что хост-система соответствует требуемым версиям компилятора Rust и bindgen).
Стоит отметить, что в политике платформы есть исключения, и некоторые дистрибутивы могут столкнуться с проблемами при сборке QEMU с включенным Rust. Тем не менее, включение Rust знаменует собой поворотный момент в практике разработки проекта и, возможно, повлияет на то, как будут реализованы будущие функции QEMU.
Наконец, для бесперебойной сборки и работы QEMU теперь требуется Meson версии 1.5.0 или новее, а новый тип машины nitro-enclave вводит зависимость от libcbor. Кроме того, для функционального тестирования теперь включен Python-модуль pycotap, что отражает постепенный отход QEMU от старых фреймворков, таких как Avocado, в пользу более современных, удобных в обслуживании решений.
Новый релиз можно загрузить с официальной страницы загрузки QEMU, где пользователи могут найти tarball. Для тех, кто интересуется подробностями, посетите журнал изменений, в котором приведен полный список изменений.
Комментарии (0)