Lansarea emulatorului QEMU 6.0

A fost prezentată lansarea proiectului QEMU 6.0. Ca emulator, QEMU vă permite să rulați un program compilat pentru o platformă hardware pe un sistem cu o arhitectură complet diferită, de exemplu, să rulați o aplicație ARM pe un PC compatibil x86. În modul de virtualizare în QEMU, performanța execuției codului într-un mediu izolat este apropiată de cea a unui sistem hardware datorită execuției directe a instrucțiunilor pe CPU și utilizării hypervisorului Xen sau a modulului KVM.

Proiectul a fost creat inițial de Fabrice Bellard pentru a oferi capacitatea de a rula executabile Linux compilate pentru platforma x86 pe arhitecturi non-x86. De-a lungul anilor de dezvoltare, a fost adăugat suport pentru emulare completă pentru 14 arhitecturi hardware, numărul de dispozitive hardware emulate a depășit 400. În pregătirea versiunii 6.0, au fost făcute peste 3300 de modificări de la 268 de dezvoltatori.

Îmbunătățiri cheie adăugate la QEMU 6.0:

  • Эмулятор контроллеров 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 и sabrelite реализована дополнительная эмуляция устройств.
  • Для ARM в режимах эмуляции на уровне системы и пользовательского окружения реализована поддержка расширения ARMv8.5 MTE (MemTag, Memory Tagging Extension), позволяющего привязать теги к каждой операции выделения памяти и организовать при доступе к памяти проверку указателя, который должен быть связан с корректным тегом. Расширение может применяться для блокирования эксплуатации уязвимостей, вызванных обращением к уже освобождённым блокам памяти, переполнениями буфера, обращениями до инициализации и использованием вне текущего контекста.
  • В эмуляторе архитектуры 68k добавлена поддержка нового типа эмулируемых машин «virt», использующих для оптимизации производительности устройства virtio.
  • В эмуляторе архитектуры x86 добавлена возможность применения технологии AMD SEV-ES (Secure Encrypted Virtualization) для шифрования регистров процессора, используемых в гостевой системе, что делает содержимое регистров недоступным для хост-окружения, если гостевая система явно не предоставит к ним доступ.
  • В классическом генераторе кода TCG (Tiny Code Generator) при эмуляции систем x86 реализована поддержка механизма PKS (Protection Keys Supervisor), который можно применять для защиты доступа к привилегированным страницам памяти.
  • В эмуляторе архитектуры MIPS добавлен новый тип эмулируемых машин «virt» c поддержкой китайских процессоров Loongson-3.
  • В эмуляторе архитектуры PowerPC для эмулируемых машин «powernv» добавлена поддержка внешних BMC-контроллеров. Для эмулируемых машин pseries обеспечено информирование о сбоях при попытке горячего извлечения памяти и CPU.
  • Добавлена поддержка эмуляции процессоров Qualcomm Hexagon c DSP.
  • В классическом генераторе кода TCG (Tiny Code Generator) реализована поддержка хост-окружений macOS на системах с новым ARM-чипом Apple M1.
  • В эмуляторе архитектуры RISC-V для плат Microchip PolarFire реализована поддержка QSPI NOR flash.
  • В эмуляторе Tricore появилась поддержка новой модели плат TriBoard, эмулирующей SoC Infineon TC27x.
  • В эмуляторе ACPI предоставлена возможность назначения сетевым адаптерам в гостевых системах имён, независящих от порядка подключения к шине PCI.
  • В virtiofs добавлена поддержка опции FUSE_KILLPRIV_V2 для повышения производительности гостевых систем.
  • В VNC добавлена поддержка прозрачности курсора и поддержка масштабирования разрешения экрана в virtio-vga, отталкивающаяся от размера окна.
  • В QMP (QEMU Machine Protocol) добавлена поддержка асинхронного параллельного доступа при выполнении задач резервного копирования.
  • В эмуляторе USB добавлена возможность сохранения трафика, образующегося при работе с USB-устройствами, в отдельный pcap-файл для последующего инспектирования в Wireshark.
  • Добавлены новые QMP-команды load-snapshot, save-snapshot и delete-snapshot для управления снапшотами qcow2.
  • В virtiofs устранены уязвимости CVE-2020-35517 и CVE-2021-20263. Первая проблема позволяет получить доступ к хост-окружению из гостевой системы через создание привилегированным пользователем в гостевой системе специального файла устройств в каталоге, совместно используемом c хост-окружением. Вторая проблема вызвана ошибкой при обработке расширенных атрибутов в опции ‘xattrmap’ и может привести к игнорированию сброса прав на запись и повышению привилегий внутри гостевой системы.

Sursa: opennet.ru

Adauga un comentariu