Представен е релиз на проекта QEMU 6.2. Като емулятор, QEMU позволява да стартирате програма, компилирана за една хардуерна платформа, на система с напълно различна архитектура, например, да изпълните приложение за ARM на компютър, съвместим с x86. В режим на виртуализация производителността на кода, изпълняван в изолирана среда, е близка до тази на хардуерната система благодарение на директното изпълнение на инструкции на CPU и използването на хипервизор Xen или модула KVM.
В началото проектът е създаден от Фабрис Беллар (Fabrice Bellard) с цел да се осигури възможността за стартиране на изпълними файлове Linux, събрани за платформа x86, на архитектури, различни от x86. През годините на разработка е добавена поддръжка за пълна емулация на 14 хардуерни архитектури, а броят на емулираните хардуерни устройства е надхвърлил 400. При подготовката на версия 6.2 са направени над 2300 промени от 189 разработчици.
Ключови подобрения, добавени в QEMU 6.2:
- В механизма virtio-mem, позволяващ горещо включване и изключване на памет, виртуални машини, е добавена пълна поддръжка за дампове на паметта на гостовите системи, операции по копиране преди и след миграцията на средата (pre-copy/post-copy) и създаване на снимки на гостовата система в фонов режим.
- В QMP (QEMU Machine Protocol) е реализирана обработка на грешки DEVICE_UNPLUG_GUEST_ERROR, възникващи на страната на гостовата система при провали при изпълнението на операции за горещо включване на оборудване.
- Разширен е синтаксисът на зареждащите аргументи, обработвани в плъгини за класическия генератор на код TCG (Tiny Code Generator). В плъгина "cache" е добавена поддръжка за многоядрени системи.
- В емулятора на архитектура x86 е реализирана поддръжка на модела CPU Intel Snowridge-v4. Добавена е поддръжка за достъп до анклавите Intel SGX (Software Guard eXtensions) от гостовите системи, използвайки устройството /dev/sgx_vepc на страната на хост-системата и бекенд "memory-backend-epc" в QEMU. За гостовите системи, защитавани чрез технологията AMD SEV (Secure Encrypted Virtualization), е добавена възможност за верифициран директен (без използване на зареждач) старт на ядрото (включва се чрез задаване на параметъра 'kernel-hashes=on' в 'sev-guest').
- В ARM емулатора на хост системи с Apple Silicon е реализирана поддръжка на механизма за хардуерно ускорение „hvf“ при стартиране на гост системи на базата на архитектура AArch64. Добавена е поддръжка за емулиране на модели на процесори Fujitsu A64FX. Въведен е нов тип емулирани машини „kudo-mbc“. За машините ‘virt’ е добавена поддръжка за емулация на ITS (Interrupt Translation Service) и възможност за използване на над 123 CPU в режим на емулация. Добавена е поддръжка на устройства BBRAM и eFUSE за емулираните машини „xlnx-zcu102“ и „xlnx-versal-virt“. За системите на базата на чипа Cortex-M55 е предоставена поддръжка за мобилния профил на разширенията на процесора MVE.
- В емулатора на архитектурата PowerPC е добавена начална поддръжка на модела CPU POWER10 DD2.0. Подобрена е поддръжката на архитектурата POWER10 за емулираните машини „powernv“, а за машините ‘pseries’ са добавени описания FORM2 PAPR NUMA.
- В емулатора на архитектурата RISC-V е добавена поддръжка на разширенията на набор от инструкции Zb[abcs]. За всички емулирани машини е разрешено прилагането на опциите „host-user“ и „numa mem“. Добавена е поддръжка за SiFive PWM (модулатор широчина на импулса).
- В емулатора на архитектурата 68k е подобрена поддръжката на шина NuBus, предложена от Apple, включително възможността за зареждане на образи на ПЗУ и поддръжката на слотове за прекъсвания.
- В блочното устройство qemu-nbd по подразбиране е включен режим на кеширане на операции за запис („writeback“ вместо „writethrough“) за съответствие с поведението на qemu-img. Добавена е опцията „—selinux-label“ за задаване на обозначения SELinux на Unix-сокетите.
Източник: opennet.ru
