Выпуск эмулятора QEMU 6.0

Представен е релиз на проекта QEMU 6.0. Като емулатор, QEMU позволява стартирането на програма, компилирана за една хардуерна платформа, на система с напълно различна архитектура, например, да изпълните приложение за ARM на x86-съвместим компютър. В режим на виртуализация производителността на кода в изолирана среда е близка до хардуерната система чрез директно изпълнение на инструкции на CPU и ползването на хипервизора Xen или модула KVM.

Първоначално проектът е създаден от Фабрис Беллар (Fabrice Bellard) с цел да осигури възможността за стартиране на изпълними файлове Linux, компилирани за x86 платформи, на архитектури, различни от x86. През годините на разработка е добавена поддръжка за пълна емулация на 14 хардуерни архитектури, а броят на емулираните хардуерни устройства надхвърля 400. При подготовката на версия 6.0 са внесени над 3300 изменения от 268 разработчици.

Ключовите подобрения, добавени в 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“ с поддръжка на китайските процесори Loongson-3.
  • В емулатора на архитектура PowerPC за емулани машини „powernv“ е добавена поддръжка на външни BMC контролери. За емуланите машини pseries е осигурено информираност за неизправности при опити за горещо извлечение на памет и CPU.
  • Добавена е поддръжка на емулация на процесори Qualcomm Hexagon с 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. Първият проблем позволява достъп до хост средата от гостуващата система чрез създаване на специален файл на устройства от привилегирован потребител в гостуващата система в директория, споделена с хост средата. Вторият проблем е предизвикан от грешка при обработка на разширените атрибути в опцията ‘xattrmap’ и може да доведе до игнориране на нулиране на права за запис и повишаване на привилегиите в рамките на гостуващата система.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster