релиz на проекта . Като емулятор, QEMU позволява стартирането на програми, компилирани за една хардуерна платформа, на система с напълно различна архитектура, например, изпълнение на приложение за ARM на персонален компютър, съвместим с x86. В режим на виртуализация в QEMU производителността на изпълнението на кода в изолирана среда е близка до нативната система благодарение на директното изпълнение на инструкциите на CPU и използването на хипервизора Xen или модула KVM.
Проектът първоначално е създаден от Фабрис Беллар (Fabrice Bellard) с цел осигуряване на възможност за стартиране на изпълними файлове за платформа x86 на архитектури, различни от x86. През годините на разработка е добавена поддръжка за пълна емулация на 14 хардуерни архитектури, а числото на емулираните хардуерни устройства надвишава 400. При подготовката на версия 4.2 са внесени над 2200 промени от 198 разработчици.
Ключови , добавени в QEMU 4.2:
- В класическия генератор на код TCG (Tiny Code Generator) е реализирана поддръжка на плъгини за наблюдение на CPU инструкции и адреси в паметта;
- В драйвера на блокови устройства (Network Block Device) е осигурена по-ефективна обработка на искания за копиране при четене (copy-on-read). Кодът на NBD сървъра е оптимизиран за копиране на разредени образи (с празни места). Направени са общи подобрения в реализацията на клиента и сървъра на NBD;
- Повишена е производителността на криптиране на LUKS дискове, използващи алгоритъма AES-XTS;
- В vfio-pci е добавена поддръжка на свойството «failover_pair_id» за опростяване на миграцията на устройства VFIO;
- В virtio-mmio е добавена поддръжка на стандартa virtio-compatible 2 и определен в спецификацията virtio 1.1 механизъм за опаковани виртуални опашки () за обмен на данни с виртуално устройство за вход/изход в пакетен режим;
- В емулатора на архитектурата x86 е добавен нов тип емулирани машини «microvm», използващи virtio-mmio вместо PCI за оптимизация на производителността. Реализирана е възможност за включване и изключване на VMX чрез флаговете «-cpu». Добавена е поддръжка на емулция на разширения AVX512 BFloat16. Осигурена е поддръжка на нови модели CPU Denverton (сървърен SoC на базата на Atom), Snowridge и Dhyana. Стабилизирана е поддръжката на macOS Hypervisor Framework («-accel hvf»);
- В емулатора на архитектурата ARM е добавена поддръжка на емулиране на SoC Aspeed AST2600 («ast2600-evb»). Добавена е поддръжка на технологията Semihosting 2.0 с разширения STDOUT_STDERR/EXIT_EXTENDED, която позволява на емулираното устройство да използва stdout, stderr и stdin за създаване на файлове на хоста. В KVM е добавена възможност за използване на повече от 256 CPU и е осигурена поддръжка на SIMD инструкции SVE. В виртуалните машини с тип «» е реализирана поддръжка на горещо свързване на памет. Увеличена е производителността на емулация с използване на генератора на код TCG.
- В емулатора на архитектурата PowerPC се появи възможност за емулиране на инструкции POWER9: mffsce, mffscrn и mffscrni. В емулираните машини "powernv" е добавена поддръжка на системните устройства Homer и OCC SRAM;
- В емулатора на архитектурата RISC-V е добавена опция "-initrd" и възможност за преглед на целия статус на архитектурата в отладчика;
- В емулатора на архитектурата s390 е реализирана поддръжка на инструкции IEP (Instruction Execution Protection);
- В емулатора на архитектурата 68k е добавена първоначална възможност за емулиране на Macintosh Quadro 800 и класическите системи NeXTcube;
- В емулатора на архитектурата xtensa е добавен нов тип емулативни машини "virt" и е реализирана поддръжка на ABI call0 за емулиране в потребителското пространство.
Източник: opennet.ru
