lëshimi i projektit . Si një emulator, QEMU lejon që të ekzekutohet një program i ndërtuar për një platformë harduerike në një sistem me një arkitekturë krejtësisht tjetër, për shembull, të ekzekutohet një aplikacion për ARM në një PC të pajtueshëm me x86. Në modin e virtualizimit, performanca e ekzekutimit të kodit në një mjedis të izoluar është afërsisht e ngjashme me sistemin vendor për shkak të ekzekutimit të drejtpërdrejtë të instruksioneve në CPU dhe përfshirjes së hipervizorit Xen ose modulit KVM.
Fillimisht, projekti u krijua nga Fabrice Bellard me qëllimin e mundësisë për të ekzekutuar skedarë ekzekutivë të ndërtuar për platformën x86 në arkitekturë të ndryshme nga x86. Gjatë viteve të zhvillimit, u shtua mbështetje për emulimin e plotë për 14 arkitektura harduerike, numri i pajisjeve të emuluara kaloi 400. Gjatë përgatitjes së versions 4.1, janë bërë më shumë se 2000 ndryshime nga 276 zhvillues.
Karakteristikat kryesore , të shtuar në QEMU 4.1:
- Në emulatorin e arkitekturës x86 u shtua mbështetje për modelet e CPU Hygon Dhyana dhe Intel SnowRidge. U shtua emulimi i zgjerimit RDRAND (gjeneratori harduerik i numrave pseudo të rastësishëm). U shtuan flamujt
md-clear dhe mds-no për menaxhimin e mbrojtjes nga sulmet (Microarchitectural Data Sampling) në procesorët Intel. U mundësua identifikimi i topologjive të çipëve me flamurin «-smp …,dies=». U realizua versionimi për të gjitha modelet e CPU x86; - Drejtpërdrejtori bllokues SSH u kalua nga përdorimi në ;
- Në drejtpërdrejtori virtio-gpu (GPU virtual, e zhvilluar në kuadër të projektit ) u shtua mbështetje për të kaluar operacionet e vizatimit 2D/3D në procesin e jashtëm vhost-user (për shembull, vhost-user-gpu);
- Në emulatorin e arkitekturës ARM u shtua mbështetje për zgjerimin ARMv8.5-RNG për gjenerimin e numrave pseudo të rastësishëm. U realizua mbështetje për emulimin e FPU për çipat e familjes Cortex-M dhe u zgjidhën problemet me emulimin e FPU për Cortex-R5F. U propozua një sistem i ri për konfigurimin e opsioneve të ndërtimit, i dizajnuar në stilin Kconfig. Për SoC Exynos4210 u shtua mbështetje për kontrollorët DMA PL330;
- Në emulatorin e arkitekturës MIPS u përmirësua mbështetja për instrukcionet MSA ASE duke përdorur rendin e ndjekjes së byte-ve big-endian dhe u përputh me trajtimin standard të rasteve të ndarjes me zero. U rrit efektiviteti i emulimit të instrukcioneve MSA për llogaritjet e plota dhe operacionet e rregullimit;
- Në emulatorin e arkitekturës PowerPC u shfaq mbështetje për kalimin në GPU NVIDIA V100/NVLink2 përmes VFIO. Për pseries u realizua përshpejtimi i emulimit të kontrollorit të ndërprerjeve XIVE dhe u shtua mbështetje për lidhjen e nxehtë të urave PCI. U bënë optimizime në emulimin e instrukcioneve vektoriale (Altivec/VSX);
- Modeli i ri i pajisjeve "spike" është shtuar në emulatorin e arkitekturës RISC-V. Mbështetje për ISA 1.11.0 është shtuar. ABI e sistemit të thirrjeve 32-bit është përmirësuar, përpunimi i instruksioneve të papranueshme është zgjeruar dhe debugger-i i integruar është përmirësuar. Mbështetje për topologjinë e CPU-së është shtuar në tree-in e pajisjeve;
- Në emulatorin e arkitekturës s390, është shtuar mbështetje për emulimin e të gjitha instruksioneve vektor të grupit "Vector Facility" dhe janë shtuar elemente shtesë për mbështetje të sistemeve gen15 (përfshirë mbështetje për AP Queue Interruption Facility për vfio-ap). Është realizuar mbështetje BIOS për ngarkimin nga ECKD DASD, e lidhur me sistemin mikpritës përmes vfio-ccw;
- Në emulatorin e arkitekturës SPARC për sistemet sun4m, janë zgjidhur problemet me përdorimin e flagut "-vga none" për OpenBIOS;
- Në emulatorin e procesorëve të familjes Tensilica Xtensa, janë realizuar opsione për MPU (njësia e mbrojtjes së memories) dhe qasje ekskluzive;
- Në komandën "qemu-img convert" është shtuar opsioni "—salvage" për të çaktivizuar përfundimin e papritur të procesit të konvertimit të imazhit në rast të gabimeve të hyrjes/daljes (për shembull, mund të përdoret për rikuperimin e skedarëve të pjesërisht të dëmtuar qcow2). Në komandën
"qemu-img rebase" është siguruar funksionimi kur për skedarin hyrës nuk është krijuar ende skedari bazë (backing); - Është shtuar mundësia për të drejtuar daljen, e cila është organizuar duke përdorur teknologjinë "semihosting" (lejon pajisjen e emuluar të përdorë stdout, stderr dhe stdin për krijimin e skedarëve në anën e mikpritësit), në backend-in chardev ("-semihosting-config enable=on,target=native,chardev=[ID]");
- Në driver-in bllokues VMDK është shtuar mbështetje për subtim si seSparse në modalitetin vetëm për lexim;
- Në driver-in e emulimit GPIO, është shtuar mbështetje për kontrollorin GPIO SiFive.
Burimi: opennet.ru
