После года разработки вышел эмулятор QEMU 6.0

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прошел ровно год с момента выхода эмулятора QEMU 5.0, и сейчас разработчики представили новую версию. Проект дает возможность запустить программное обеспечение, подготовленное для одной архитектуры, на аппаратной платформе с другой архитектурой.

Пример — выполнение приложения для ARM на ПК с процессором x86. Благодаря особенностям эмулятора приложение в изолированном окружении выполняется почти с той же эффективностью, что и в нативном окружении. Достигается это, в частности, за счет прямого выполнения инструкций на процессоре, а также за счет применения гипервизора Xen или модуля KVM. Сейчас эмулятор поддерживает 14 аппаратных архитектур и может эмулировать около 400 разных устройств. За год разработчики внесли свыше 3 тысяч изменений от 268 разработчиков.

Подробнее о ключевых изменениях


Понятно, что объем статьи не позволит внести все 3 тысячи изменений, поэтому ограничимся ключевыми, наиболее важными:

  • Эмулятор контроллеров NVMe теперь приведен к полному соответствию со спецификацией NVMe 1.4. Также он получил экспериментальную поддержку нескольких новых фич, включая зонированные пространства имен, multipath I/O и сквозное шифрование данных на накопителе.
  • Кроме того, добавлены экспериментальные опции "-machine x-remote" и "-device x-pci-proxy-dev", которые нужны для выноса эмуляции устройств во внешние процессы. В текущем режиме эмулятор поддерживает пока лишь SCSI-адаптер lsi53c895.
  • Есть экспериментальная поддержка снапшотов содержимого ОЗУ.
  • Появился новый FUSE-модуль, который необходим для экспорта блочных устройств. Он дает возможность примонтировать срез состояния практически любого блочного устройства, которое используется в гостевой системе. Эксперт при этом реализуется благодаря QMP-команде block-export-add или через опцию "--export" в утилите qemu-storage-daemon.
  • Важное обновление получил эмулятор архитектуры ARM — так, добавлены архитектуры ARMv8.1-M 'Helium' и процессоров Cortex-M55, а также расширенных инструкций ARMv8.4 TTST, SEL2 и DIT. А еще появилась поддержка ARM-плат mps3-an524 и mps3-an547, плюс добавлена дополнительная эмуляция устройств для плат xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx.
  • Что касается режимов эмуляции на уровне системы для ARM, то здесь появилась поддержка расширения ARMv8.5 MTE (MemTag, Memory Tagging Extension). Оно позволяет привязать теги к каждой операции выделения памяти, организовав при доступе к ней проверку указателя. Последний должен быть связан с корректным тегом. Для чего потребовалось расширение? Оно дает возможность блокировать эксплуатацию уязвимостей, которые вызваны обращением к уже освобожденным блокам памяти, переполнениями буфера, обращениями до инициализации и использованием вне текущего контекста.
  • В эмуляторе для 68k разработчики добавили новый тип эмулируемых машин virt. Нововведение позволяет использовать для оптимизации производительности устройства virtio.
  • В архитектуре x86 появилась возможность применения технологии AMD SEV-ES (Secure Encrypted Virtualization) для шифрования регистров процессора, используемых в гостевой системе. В итоге содержимое регистров недоступно для хост-окружения в том случае, если гостевая система не предоставляет к ним явный доступ.
  • Для архитектуры MIPS также добавлен новый тип эмулируемых машин «virt» с поддержкой новых китайских процессоров Loongson-3.
  • Для PowerPC, точнее, для эмулируемых машин добавлена поддержка внешних BMC-контроллеров. Если случается сбой с pseries из-за попытки горячего извлечения памяти и CPU, то обеспечивается информирование о сбоях.
  • Появилась поддержка эмуляции процессоров Qualcomm Hexagon c DSP.
  • Реализована поддержка хост-окружений macOS на системах с новым ARM-чипом Apple M1 в классическом генераторе кода TCG (Tiny Code Generator).
  • При эмуляции архитектуры RISC-V для плат Microchip PolarFire реализована поддержка QSPI NOR flash.
  • В эмуляторе Tricore добавлена поддержка новой модели плат TriBoard, эмулирующей SoC Infineon TC27x.
  • В ACPI-эмуляторе теперь можно назначать сетевые адаптеры в гостевых системах имен, которые не зависят от порядка подключения к шине PCI.

С полным списком изменений и дополнений можно ознакомиться вот здесь.

Источник: https://habr.com/ru/company/selectel/blog/554354/


Интересные статьи

Интересные статьи

Под конец года принято подводить итоги и кажется стоит вспомнить, что же было в этом непростом году хорошего. Например, я читал много отличных книг (что еще делать дома?). Вот немного...
Хотя сообщество мобильных разработчиков давно нахваливает Flutter, большие компании не спешат переходить на эту технологию. Так получилось, что здесь мы стали одними из п...
Вячеслав Ермолин, 5 августа 2020 г. 2020-й пугает не только пандемией. Сокращение, задержки и переносы пусковых программа орбитальных ракет затронуло все страны мира. А количество ...
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него. Читать дальше →
Один из самых острых вопросов при разработке на Битрикс - это миграции базы данных. Какие же способы облегчить эту задачу есть на данный момент?