Sortie de l'émulateur QEMU 7.2

La version du projet QEMU 7.2 est présentée. En tant qu'émulateur, QEMU vous permet d'exécuter un programme conçu pour une plate-forme matérielle sur un système avec une architecture complètement différente, par exemple, exécutez une application ARM sur un PC compatible x86. En mode virtualisation dans QEMU, les performances d'exécution de code dans un environnement isolé sont proches d'un système matériel du fait de l'exécution directe des instructions sur le CPU et de l'utilisation de l'hyperviseur Xen ou du module KVM.

Le projet a été créé à l'origine par Fabrice Bellard pour permettre aux exécutables Linux conçus pour la plate-forme x86 de s'exécuter sur des architectures non x86. Au fil des années de développement, une prise en charge complète de l'émulation a été ajoutée pour 14 architectures matérielles, le nombre de périphériques matériels émulés a dépassé 400. En préparation de la version 7.2, plus de 1800 modifications ont été apportées par 205 développeurs.

Améliorations clés ajoutées dans QEMU 7.2 :

  • L'émulateur x86 du générateur de code TCG classique a ajouté la prise en charge des instructions AVX, AVX2, F16C, FMA3 et VAES, ainsi que des optimisations de performances liées à l'utilisation des instructions SSE. Pour KVM, la prise en charge d'un mécanisme de suivi des sorties de machine virtuelle (« notify vmexit ») a été ajoutée, ce qui vous permet de contourner les erreurs dans le CPU pouvant entraîner des blocages.
  • L'émulateur ARM prend en charge les extensions de processeur et de processeur Cortex-A35 ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4 Ko, 16 Ko, 64 Ko), HAFDBS (contrôle matériel de l'indicateur d'accès et de l'état « sale »). et E0PD (empêchant l'accès EL0 aux cartes d'adresses partitionnées).
  • L'émulateur LoongArch ajoute la prise en charge de fw_cfg DMA, de la mémoire hot-plug et de l'émulation de périphérique TPM (Trusted Platform Module).
  • L'émulateur d'architecture OpenRISC implémente la plateforme « virt » pour tester les appareils et les utiliser dans des systèmes d'intégration continue. La prise en charge de l'exécution multithread du générateur de code classique TCG (Tiny Code Generator) a été implémentée.
  • L'émulateur de l'architecture RISC-V dans les machines émulées « virt » a la capacité de charger le firmware depuis pflash en mode S. Travail amélioré avec l'arborescence des périphériques.
  • L'émulateur 390x prend en charge MSA5 (Message-Security-Assist Extension 5 avec l'instruction PRNO pour générer des nombres pseudo-aléatoires), les instructions KIMD/KLM (implémentation de SHA-512) et l'interprétation zPCI étendue pour les systèmes invités basés sur l'hyperviseur KVM. .
  • Les backends pour travailler avec la mémoire fournissent une pré-allocation de mémoire en tenant compte de l'architecture NUMA.
  • La vérification des en-têtes des appareils bloqués cryptés LUKS a été renforcée et la possibilité de créer des images LUKS sur macOS a été ajoutée.
  • Le backend 9pfs, qui permet d'utiliser le système de fichiers réseau Plan 9 pour accéder d'une machine virtuelle à une autre, est passé à l'utilisation du hachage GHashTable dans la table d'identification, ce qui, dans certaines situations, a entraîné une augmentation des performances de 6 à 12 fois.
  • Ajout d'un nouveau flux et dgram backends netdev.
  • La prise en charge de FreeBSD a été ajoutée à l'agent pour les invités basés sur ARM.
  • Les versions GUI pour macOS offrent la possibilité d'inclure des interfaces basées sur Cocoa et SDL/GTK dans un seul fichier exécutable.
  • Le sous-module intégré « slirp » a été supprimé, il est recommandé d'utiliser la bibliothèque système libslirp.
  • En raison du manque de capacité de test, la prise en charge des systèmes hôtes dotés de processeurs MIPS 32 bits utilisant l'ordre des octets Big Endian est obsolète.

Source: opennet.ru

Ajouter un commentaire