релиз на проекта . Като емулятор QEMU позволява стартирането на програма, компилирана за една хардуерна платформа, на система с напълно различна архитектура, например, изпълнение на приложение за ARM на PC, съвместим с x86. В режима на виртуализация в QEMU производителността на изпълнение на кода в изолирана среда е близка до тази на нативна система благодарение на директното изпълнение на инструкциите на CPU и използването на хипервизора Xen или модула KVM.
Проектът първоначално е създаден от Фабрис Беллар (Fabrice Bellard) с цел да осигури възможност за стартиране на компилирани за платформата x86 изпълними файлове Linux на архитектури, различни от x86. През годините на разработка е добавена поддръжка на пълна емулация за 14 хардуерни архитектури, а числото на емулираните хардуерни устройства надвишава 400. В подготовката на версия 4.2 са направени над 2200 промени от 198 разработчици.
Ключови , добавени в QEMU 4.2:
- В класическия генератор на код TCG (Tiny Code Generator) е реализирана поддръжка на плъгини за мониторинг на инструкции на процесора и адреси в паметта;
- В драйвера за блокови устройства (Network Block Device) е осигурена по-ефективна обработка на заявки за копиране при четене (copy-on-read). Кодът на NBD-сървъра е оптимизиран за копиране на разредени образи (с празни пространства). Направени са общи подобрения в реализирането на клиента и сървъра NBD;
- Повишена е производителността на криптиране на LUKS-дискове с използване на алгоритъма AES-XTS;
- В vfio-pci е добавена поддръжка на свойството „failover_pair_id“, за да се улесни миграцията на VFIO устройства;
- В virtio-mmio е добавена поддръжка на стандарт 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
