projectrelease . Als emulatore helpt QEMU om een programma dat voor een bepaalde hardware-architectuur is gebouwd, uit te voeren op een systeem met een totaal andere architectuur, bijvoorbeeld het uitvoeren van een applicatie voor ARM op een x86-compatibele pc. In de virtualisatiemodus is de uitvoering van code in een geïsoleerde omgeving bijna gelijk aan die van een native systeem door directe uitvoering van instructies op de CPU en het gebruik van de hypervisor Xen of de KVM-module.
Het project werd oorspronkelijk gestart door Fabrice Bellard met het doel om executables voor het x86-platform uit te voeren op architecturen die verschillen van x86. Door de jaren heen is volledige emulatie voor 14 hardware-architecturen toegevoegd, en het aantal geëmuleerde hardwareapparaten is meer dan 400. Voor versie 4.2 zijn meer dan 2200 wijzigingen aangebracht door 198 ontwikkelaars.
Belangrijkste , toegevoegd in QEMU 4.2:
- In de klassieke TCG (Tiny Code Generator) is ondersteuning voor plugins toegevoegd voor het monitoren van processorinstructies en geheugensverbindingen;
- In de blokapparaatstuurprogramma (Network Block Device) is efficiëntere verwerking van kopieerapporten bij lezen (copy-on-read) mogelijk gemaakt. De NBD-servercode is geoptimaliseerd voor het kopiëren van uitgedunde afbeeldingen (met lege ruimtes). Algemene verbeteringen zijn aangebracht in de implementatie van de NBD-client en -server;
- De prestaties van LUKS-schijfversleuteling met behulp van het AES-XTS-algoritme zijn verhoogd;
- In vfio-pci is ondersteuning voor de eigenschap 'failover_pair_id' toegevoegd om de migratie van VFIO-apparaten te vergemakkelijken;
- In virtio-mmio is ondersteuning voor de virtio-compatibele standaard 2 en een mechanisme voor verpakte virtuele wachtrijen gedefinieerd in de specificatie virtio 1.1 toegevoegd () voor gegevensuitwisseling met een virtueel invoer-/uitvoerapparaat in batchmodus;
- In de emulator van de x86-architectuur is een nieuw type geëmuleerde machines 'microvm' toegevoegd, die virtio-mmio gebruikt in plaats van PCI voor prestatieoptimalisatie. Er is een functie geïmplementeerd voor het in- en uitschakelen van VMX via de vlaggen '-cpu'. Ondersteuning voor het emuleren van AVX512 BFloat16-extensies is toegevoegd. Nieuwe CPU-modellen Denverton (server SoC op basis van Atom), Snowridge en Dhyana worden ondersteund. Ondersteuning voor het macOS Hypervisor Framework ('-accel hvf') is gestabiliseerd.
- In de ARM-architectuur emulator is ondersteuning toegevoegd voor het emuleren van SoC Aspeed AST2600 ("ast2600-evb"). Ondersteuning voor Semihosting 2.0 met uitbreidingen STDOUT_STDERR/EXIT_EXTENDED is toegevoegd, waardoor het geëmuleerde apparaat stdout, stderr en stdin kan gebruiken om bestanden aan de hostzijde te maken. In KVM is de mogelijkheid toegevoegd om meer dan 256 CPU's te gebruiken en is ondersteuning voor SIMD-instructies SVE geboden. In virtuele machines met het type "virt" is ondersteuning voor hot-plugging van geheugen gerealiseerd. De prestaties van de emulatie zijn verbeterd met behulp van de TCG-codegenerator." is ondersteuning voor het hot-pluggen van geheugen gerealiseerd. De prestaties van de emulatie zijn verbeterd met behulp van de TCG-codegenerator.
- In de PowerPC-architectuur emulator is de mogelijkheid tot emulatie van POWER9-instructies mffsce, mffscrn en mffscrni toegevoegd. In de geëmuleerde machines "powernv" is ondersteuning toegevoegd voor de systeemapparaten Homer en OCC SRAM;
- In de RISC-V-architectuur emulator is de optie "-initrd" toegevoegd en de mogelijkheid om de volledige status van de architectuur in de debugger te bekijken;
- In de s390-architectuur emulator is ondersteuning voor IEP-instructies (Instruction Execution Protection) gerealiseerd;
- In de 68k-architectuur emulator is de initiële mogelijkheid tot emulatie van Macintosh Quadro 800 en klassieke NeXTcube-systemen toegevoegd;
- In de xtensa-architectuur emulator is een nieuw type geëmuleerde machines "virt" toegevoegd en de ondersteuning voor ABI call0 voor emulatie in de gebruikersruimte is gerealiseerd.
Bron: opennet.ru
