Sortie de l'émulateur QEMU 4.0

Formé lancement du projet QEMU 4.0. En tant qu'émulateur, QEMU vous permet d'exécuter un programme compilé pour une plate-forme matérielle sur un système avec une architecture complètement différente, par exemple, d'exécuter 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 du système natif grâce à l'exécution directe des instructions sur le CPU et à 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 4.0, plus de 3100 modifications ont été apportées par 220 développeurs.

Clé améliorationsajouté dans QEMU 4.0 :

  • La prise en charge des extensions d'instructions ARMv8+ a été ajoutée à l'émulateur d'architecture ARM : SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT et BTI. Ajout de la prise en charge de l'émulation des cartes Musca et MPS2. Émulation ARM PMU (Power Management Unit) améliorée. Vers la plateforme vertu ajout de la possibilité d'utiliser plus de 255 Go de RAM et prise en charge des images u-boot avec le type « noload » ;

  • Dans l'émulateur d'architecture x86 dans le moteur d'accélération de virtualisation hax (Intel Hardware Accelerated Execution) a ajouté la prise en charge des hôtes compatibles POSIX tels que Linux et NetBSD (auparavant, seule la plate-forme Darwin était prise en charge). Dans l'émulateur de chipset Q35 (ICH9) pour les principaux ports PCIe, la vitesse maximale (16 GT/s) et le nombre de lignes de connexion (x32) définis dans la spécification PCIe 4.0 peuvent désormais être déclarés en option (pour assurer la compatibilité, 2.5 GT est installé par défaut pour les anciens types de machines QEMU /s et x1). Il est possible de charger des images Xen PVH avec l'option « -kernel » ;
  • L'émulateur d'architecture MIPS a ajouté la prise en charge de l'émulation multithread à l'aide du générateur de code classique TCG (Tiny Code Generator). Ajout également de la prise en charge de l'émulation des CPU I7200 (nanoMIPS32 ISA) et I6500 (MIPS64R6 ISA), de la possibilité de traiter les demandes de type de CPU à l'aide de QMP (QEMU Management Protocol), et ajout de la prise en charge des registres de configuration SAARI et SAAR. Amélioration des performances des machines virtuelles de type Fulong 2E. Implémentation mise à jour de l'unité de communication Interthread ;
  • Dans l'émulateur d'architecture PowerPC, la prise en charge de l'émulation du contrôleur d'interruption XIVE a été ajoutée, la prise en charge de POWER9 a été étendue et pour la série P, la possibilité de brancher à chaud des ponts hôtes PCI (PHB, pont hôte PCI) a été ajoutée. La protection contre les attaques Spectre et Meltdown est activée par défaut ;
  • La prise en charge de l'émulation PCI et USB a été ajoutée à l'émulateur d'architecture RISC-V. Le serveur de débogage intégré (gdbserver) prend désormais en charge la spécification de listes de registres dans les fichiers XML. Ajout de la prise en charge des champs mstatus TSR, TW et TVM ;
  • L'émulateur d'architecture s390 a ajouté la prise en charge du modèle de processeur z14 GA 2, ainsi que la prise en charge de l'émulation des extensions d'instructions pour les opérations à virgule flottante et vectorielles. La possibilité de brancher des appareils à chaud a été ajoutée à vfio-ap ;
  • L'émulateur de processeur de la famille Tensilica Xtensa a amélioré la prise en charge de SMP pour Linux et ajouté la prise en charge de FLIX (extension d'instructions de longueur flexible) ;
  • L'option '-display spice-app' a été ajoutée à l'interface graphique pour configurer et lancer une version du client d'accès à distance Spice avec un design similaire à l'interface QEMU GTK ;
  • Ajout de la prise en charge du contrôle d'accès à l'aide des options tls-authz/sasl-authz dans l'implémentation du serveur VNC ;
  • QMP (QEMU Management Protocol) a ajouté la prise en charge de l'exécution de commandes centralisées/externes (hors bande) et implémenté des commandes supplémentaires pour travailler avec des périphériques en bloc ;
  • Une implémentation de l'interface EDID a été ajoutée à VFIO pour les mdev pris en charge (Intel vGPU), vous permettant de modifier la résolution de l'écran à l'aide des options xres et yres ;
  • Un nouveau périphérique « xen-disk » a été ajouté pour Xen, qui peut créer indépendamment un backend de disque pour Xen PV (sans accéder à xenstore). Les performances du backend du disque Xen PV ont été augmentées et la possibilité de modifier la taille du disque a été ajoutée ;
  • Les capacités de diagnostic et de traçage ont été étendues aux périphériques de bloc réseau, et la compatibilité client avec les implémentations problématiques de serveur NBD a été améliorée. Ajout des options « --bitmap », « --list » et « --tls-authz » à qemu-nbd ;
  • Ajout de la prise en charge du mode PCI IDE au périphérique IDE/via émulé ;
  • Ajout de la prise en charge de l'utilisation de l'algorithme lzfse pour compresser les images dmg. Pour le format qcow2, la prise en charge de la connexion de fichiers de données externes a été ajoutée. Les opérations de décompression qcow2 sont déplacées vers un thread séparé. Ajout de la prise en charge de l'opération « blockdev-create » dans les images vmdk ;
  • Le périphérique de bloc virtio-blk a ajouté la prise en charge des opérations DISCARD (informant de la libération des blocs) et WRITE_ZEROES (mise à zéro d'une plage de blocs logiques) ;
  • Le périphérique pvrdma prend en charge les services de datagramme de gestion RDMA (MAD) ;
  • Contribué changements, violant la rétrocompatibilité. Par exemple, au lieu de l'option « handle » dans « -fsdev » et « -virtfs », vous devez utiliser les options « local » ou « proxy ». Les options « -virtioconsole » (remplacé par « -device virtconsole »), « -no-frame », « -clock », « -enable-hax » (remplacé par « -accel hax ») ont été supprimées. Appareil supprimé « ivshmem » (devrait utiliser « ivshmem-doorbell » et « ivshmem-plain »). La prise en charge de la construction avec SDL1.2 a été interrompue (vous devez utiliser SDL2).

Source: opennet.ru

Ajouter un commentaire