Издание на емулатора QEMU 11.0.0

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

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

Ключови подобрения, добавени в QEMU 11.0:

  • Премахната е поддръжката на 32-битови хост системи, която беше обявена за остаряла през април миналата година в QEMU 10.0. В декемврийското издание 10.2 в генератора на код TCG (Tiny Code Generator) беше преустановена поддръжката на платформите mips32 и ppc32, а в версия QEMU 11.0 бяха премахнати останалите платформи i386, arm, ppc и riscv32, както и извършена чистка на кодовата база и системата за събиране от компоненти за работа на 32-битови хостове.
  • Реализиран е ускорител за виртуализация „nitro“ („-accel nitro“) и нов тип емулирани системи „nitro“, позволяващи стартирането в QEMU на изолирани анклави, базирани на технологията за конфиденциални изчисления AWS Nitro Enclave, например, за локално тестване в QEMU на Nitro Enclave среди. В AWS EC2 технологията Nitro Enclave позволява стартиране в виртуална машина на вложени изолирани анклави за работа с конфиденциални данни, отделяйки им част от своите ресурси.
  • Подобрена е поддръжката на ускорители за виртуализация MSHV (Microsoft Hypervisor) и WHPX (Разширения на Microsoft Windows Hypervisor Platform).
  • При използване на хипервизора KVM („-accel kvm“) е предоставена поддръжка за виртуализация на разширението Intel CET (Control-flow Enforcement Technology) за приложение в виртуални машини защита от експлойти, използващи методи за завратно-ориентирано програмиране (ROP — Return-Oriented Programming). Също така е добавена поддръжка за перезареждане на конфиденциални на виртуални машини, използващи за криптиране на паметта разширения AMD SEV-SNP (Secure Encrypted Virtualization — Secure Nested Paging) и Intel TDX (Trust Domain Extensions).
  • В устройството VirtIO-GPU, осигуряващо работа на виртуален GPU, е добавена възможност за задаване на различаващи се разрешения на екрана за различни устройства за изход.
  • В VirtIO-GPU е добавена поддръжка на контексти DRM (Direct Rendering Manager native context), което позволява повишаване на производителността при работа с виртуалния GPU от гостоприемащата система чрез директно предаване на команди към реалния хостов GPU. Поддръжката на контекстите DRM се активира при използване на новото устройство virtio-gpu-gl с опцията 'drm_native_context=on'. В отличие от контекстите Virgl и Venus, работещи на ниво API OpenGL и Vulkan, контекстът DRM е реализиран на ниво UAPI на ядрото на Linux.
  • Добавена е възможността за използване на езика C++ за разработка на плъгини към генератора на код TCG (Tiny Code Generator).
  • В блочния драйвер NFS е добавена поддръжка за компилация с библиотеката libnfs 6.
  • В блочния драйвер curl е добавена опция 'force-range' за принудително използване на HTTP-заглавка 'Range' при изтегляне на изображения без предварителна проверка за поддръжка с отделен заявка с заглавка HEAD.
  • В блочния драйвер FUSE е деактивирана обработката на операции за експортиране в синхронен режим, което водеше до блокиране на стартирането на виртуалната машина до приключване на обработката на други FUSE заявки. Добавена е възможност за използване на няколко потока вход/изход (iothread) при извършване на експорти в FUSE.
  • В емулатора на архитектурата x86 е добавена поддръжка за CPU Intel Diamond Rapids ('Xeon 7').
  • В емулатора на архитектурата ARM са добавени разширенията на процесора FEAT_ASID2 и FEAT_E2H0. В генератора на код TCG е реализирана емулация на разширенията SME (Scalable Matrix Extension).
  • В емулатора на архитектурата HPPA е добавена поддръжка за емулация на 64-битови CPU с 40- и 44-битови адресни пространства. С помощта на SeaBIOS-hppa 24 е осигурена инициализация на PCI контролера Astro, позволяваща използването на PCI видеокарти в 64-битови системи.
  • В емулатора на архитектурата LoongArch се появи възможност за миграция на PMU (Performance Monitoring Unit) при използване на хипервизор KVM. В генератора на код TCG е реализирана емулация на разширенията LA v1.1, sc.q и llacq/screl, както и инструкциите FRECIP и DRECIP за изчисляване на обратните стойности.
  • В емулатора на архитектура PowerPC е добавена поддръжка за snapshot.
  • В емулатора на архитектурата RISC-V е реализирана поддръжка на CPU MIPS P8700 и разширения на набора от команди Zilsd, Zclsd, ZALASR и Smpmpmt.
  • В емулатора на архитектурата s390 е добавена поддръжка за зареждане от устройства virtio-blk-pci и е реализирана еймуляция на инструкцијата „DIVIDE TO INTEGER“.
  • Прието е поправка, която намалява забавянията от 50 до 80 пъти при работа с fdmon (мониторинг на файлови дескриптори) в режим „aio=io_uring“ и при състояние на системата в режим на покой (idle).

    Източник: opennet.ru
Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster