Publication de l'émulateur QEMU 4.0

Formé version du projet QEMU 4.0. En tant qu'émulateur, QEMU permet d'exécuter un programme compilé pour une plateforme matérielle sur un système avec une architecture complètement différente, par exemple, d'exécuter une application pour ARM sur un PC compatible x86. En mode de virtualisation, la performance d'exécution du code dans un environnement isolé est proche de celle d'un 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.

À l'origine, le projet a été créé par Fabrice Bellard dans le but de permettre l'exécution de fichiers exécutables Linux compilés pour la plateforme x86 sur des architectures autres que x86. Au fil des ans, le support pour une émulation complète de 14 architectures matérielles a été ajouté, et le nombre de dispositifs matériels émulés a dépassé 400. Pour la version 4.0, plus de 3100 modifications ont été apportées par 220 développeurs.

Améliorations clés améliorations, ajoutés dans QEMU 4.0 :

  • Dans l'émulateur de l'architecture ARM, le support des extensions d'instructions ARMv8+ a été ajouté : SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT et BTI. Le support de l'émulation des cartes "Musca" et "MPS2" a été ajouté. L'émulation de l'ARM PMU (Power Management Unit) a été améliorée. Sur la plateforme virt la possibilité d'utiliser plus de 255 Go de RAM et le support des images u-boot de type "noload" a été ajoutée ;
  • Dans l'émulateur de l'architecture x86 du moteur d'accélération de virtualisation HAX (Exécution Accélérée par Matériel Intel) le support des hôtes compatibles POSIX, tels que Linux et NetBSD, a été ajouté (auparavant, seule la plateforme Darwin était prise en charge). Dans l'émulateur du chipset Q35 (ICH9), pour les ports PCIe principaux, la vitesse maximale (16GT/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é par défaut pour les anciens types de machines QEMU, 2.5GT/s et x1 sont configurés). Il est désormais possible de charger des images Xen PVH avec l'option "-kernel" ;
  • Dans l'émulateur de l'architecture MIPS, le support de l'émulation multithread avec l'utilisation du générateur de code classique TCG (Tiny Code Generator) a été ajouté. De plus, le support de l'émulation CPU I7200 (nanoMIPS32 ISA) et I6500 (MIPS64R6 ISA), la prise en charge des requêtes de type CPU avec le protocole QMP (QEMU Management Protocol), ainsi que le support des registres de configuration SAARI et SAAR a été ajouté. Le fonctionnement des machines virtuelles de type Fulong 2E a été amélioré. L'implémentation de l'Unité de Communication Interthreads a été mise à jour ;
  • Dans l'émulateur de l'architecture PowerPC, le support de l'émulation du contrôleur d'interruption XIVE a été ajouté, le support de POWER9 a été étendu, et pour la série P, la possibilité de connecter à chaud les ponts PCI (PHB, PCI host bridge) a été ajoutée. La protection contre les attaques Spectre et Meltdown est activée par défaut ;
  • Dans l'émulateur de l'architecture RISC-V, le support de l'émulation PCI et USB a été ajouté. Dans le serveur de débogage intégré (gdbserver), le support de la spécification des listes de registres dans des fichiers XML a été mis en œuvre. Le support des champs mstatus TSR, TW et TVM a été ajouté ;
  • L'émulateur d'architecture s390 a ajouté la prise en charge du modèle de CPU z14 GA 2, ainsi que la prise en charge de l'émulation des extensions d'instructions pour les calculs en virgule flottante et les opérations vectorielles. Dans vfio-ap, la possibilité de connecter des appareils à chaud a été ajoutée.
  • Dans l'émulateur de processeurs de la famille Tensilica Xtensa, le support SMP pour Linux a été amélioré et le support de l'extension FLIX (Flexible Length Instructions Extension) a été ajouté.
  • Une option ‘-display spice-app’ a été ajoutée à l'interface graphique pour configurer et exécuter une variante du client d'accès à distance Spice avec un design similaire à celui de l'interface GTK de QEMU.
  • Le serveur VNC a été amélioré avec la prise en charge de la gestion d'accès via les options tls-authz/sasl-authz.
  • Le QMP (QEMU Management Protocol) a ajouté le support de l'exécution centralisée/externe (Out-of-band) des commandes et a mis en œuvre des commandes supplémentaires pour travailler avec des dispositifs de stockage.
  • Dans VFIO, une implémentation de l'interface EDID pour les mdev pris en charge (Intel vGPU) a été ajoutée, permettant de changer la résolution de l'écran en utilisant les options xres et yres.
  • Pour Xen, un nouvel appareil ‘xen-disk’ a été ajouté, capable de créer un backend de disque pour Xen PV (sans faire appel à xenstore). Les performances du backend de disque Xen PV ont été améliorées et la possibilité de redimensionner le disque a été ajoutée.
  • Dans les dispositifs de stockage en réseau, les capacités de diagnostic et de traçage ont été étendues, et la compatibilité du client avec les implémentations problématiques du serveur NBD a été améliorée. Des options «—bitmap», «—list» et «—tls-authz» ont été ajoutées à qemu-nbd.
  • Le dispositif émulé IDE/via a ajouté la prise en charge du mode PCI IDE.
  • Ajout de la prise en charge de l'algorithme lzfse pour la compression des images dmg. Pour le format qcow2, un support pour le montage de fichiers externes contenant des données a été ajouté. Les opérations de décompression de qcow2 ont été déplacées dans un fil distinct. Dans les images vmdk, le support de l'opération «blockdev-create» a été ajouté.
  • Dans le dispositif de stockage virtio-blk, la prise en charge des opérations DISCARD (notification de la libération des blocs) et WRITE_ZEROES (remise à zéro d'une plage de blocs logiques) a été ajoutée.
  • Dans le dispositif pvrdma, la prise en charge des services de datagrammes de gestion RDMA (MAD) a été mise en œuvre.
  • Des modifications, qui rompent la compatibilité ascendante. Par exemple, au lieu de l'option «handle» dans «-fsdev» et «-virtfs», il convient d'utiliser les options «local» ou «proxy». Les options «-virtioconsole» (remplacée par «-device virtconsole»), «-no-frame», «-clock», «-enable-hax» (remplacée par «-accel hax») ont été supprimées. Le périphérique «ivshmem» a été retiré (il faut utiliser «ivshmem-doorbell» ou «ivshmem-plain»). Le support de la compilation avec SDL1.2 a été arrêté (il faut utiliser SDL2).

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster