релиз на проекта . Като емулятор QEMU позволява стартирането на програма, компилирана за една хардуерна платформа, на система с напълно различна архитектура, например, изпълнение на приложение за ARM на PC, съвместим с x86. В режима на виртуализация в QEMU производителността на изпълнение на кода в изолирана среда е близка до тази на нативна система благодарение на директното изпълнение на инструкциите на CPU и използването на хипервизора Xen или модула KVM.
Първоначално проектът е създаден от Фабрис Беллар (Fabrice Bellard) с цел да предостави възможност за стартиране на компилирани за платформата x86 изпълними файлове на Linux на архитектури, различни от x86. Силата на разработката добави поддръжка на пълна емуляция за 14 хардуерни архитектури, а броят на емулираните хардуерни устройства надхвърли 400. При подготовката на версия 4.1 бяха направени повече от 2000 промени от 276 разработчици.
Ключови , добавени в QEMU 4.1:
- В емулятора на x86 архитектурата е добавена поддръжка на модели CPU Hygon Dhyana и Intel SnowRidge. Добавена е емуляция на разширение RDRAND (хардуерен генератор на псевдослучайни числа). Добавени са флаговете
md-clear и mds-no за управление на защитата от атаки (Microarchitectural Data Sampling) на Intel процесорите. Добавена е възможност за определяне на топологии на интегрални схеми с флага «-smp …,dies=». Реализирано е версиониране за всички модели CPU x86; - Блочният драйвер SSH е преминал от употреба на на ;
- В драйвера virtio-gpu (виртуален GPU, разработван в рамките на проекта ) е добавена поддръжка на изнасяне на операции по рендериране 2D/3D във външния процес vhost-user (например, vhost-user-gpu);
- В емулатора на архитектурата ARM е добавена поддръжка за разширението ARMv8.5-RNG за генериране на псевдослучайни числа. Реализирана е поддръжка за емулация на FPU за чиповете от семейството Cortex-M и са решени проблеми с емулацията на FPU за Cortex-R5F. Предложена е нова система за настройка на опции за сборка, оформена в стил Kconfig. За SoC Exynos4210 е добавена поддръжка на DMA контролери PL330;
- В емулатора на архитектурата MIPS е подобрена поддръжката на инструкциите MSA ASE при използване на реда на байтовете big-endian и обработката на случаи на делене на нула е приведена в съответствие с еталонното оборудване. Производителността на емулацията на MSA инструкции за целочислени изчисления и операции за перестановка е увеличена;
- В емулатора на архитектурата PowerPC е добавена поддръжка за прехвърляне към GPU NVIDIA V100/NVLink2 с помощта на VFIO. За pseries е реализирано ускорение на емулацията на контролер на прекъсвания XIVE и е добавена поддръжка за горещо свързване на PCI мостове. Направени са оптимизации в емулацията на векторни инструкции (Altivec/VSX);
- В емулатора на архитектурата RISC-V е добавен нов модел на хардуер — "spike". Добавена е поддръжка на ISA 1.11.0. Подобрен е 32-битовият ABI за системни повиквания, разширена е обработката на невалидни инструкции и е подобрен вграденият отладчик. Добавена е поддръжка на топология на CPU в device tree;
- В емулатора на архитектурата s390 е добавена поддръжка на емулация на всички векторни инструкции от групата "Vector Facility" и са добавени допълнителни елементи за поддръжка на системи gen15 (включително добавена е поддръжка на AP Queue Interruption Facility за vfio-ap). Реализирана е поддръжка на BIOS за зареждане от ECKD DASD, свързан с гостуващата система чрез vfio-ccw;
- В емулатора на архитектурата SPARC за системи sun4m са решени проблемите с използването на флага "-vga none" за OpenBIOS;
- В емулатора на процесорите от семейството Tensilica Xtensa са реализирани опции за MPU (единица за защита на паметта) и ексклузивен достъп;
- В командата "qemu-img convert" е добавена опция "—salvage" за деактивиране на аварийното прекратяване на процеса на конвертиране на образа при възникване на грешки при вход/изход (например, може да се прилага за възстановяване на частично повредени файлове qcow2). В командата
Работата с „qemu-img rebase“ е осигурена, когато за входния файл все още не е създаден основен (backing) файл; - Добавена е възможността за пренасочване на изхода, организиран чрез технологията „semihosting“ (позволява на емулираното устройство да използва stdout, stderr и stdin за създаване на файлове на хост системата), в backend chardev („-semihosting-config enable=on,target=native,chardev=[ID]“);
- В блочния драйвер VMDK е добавена поддръжка на субформата seSparse в режим само за четене;
- В драйвера за емулация на GPIO е добавена поддръжка на GPIO-контролера SiFive.
Източник: opennet.ru
