La version 7.1 du projet QEMU a été publiée. 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 virtualisation, les performances d'exécution du code dans un environnement isolé sont proches de celles d'un système matériel grâce à l'exécution directe des instructions sur le CPU et à l'utilisation de l'hyperviseur Xen ou du module KVM.
Initialement, 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 différentes de x86. Au fil des années, le support a été étendu à la pleine émulation pour 14 architectures matérielles, et le nombre de périphériques matériels émulés a dépassé 400. Pour la version 7.1, plus de 2800 modifications ont été apportées par 238 développeurs.
Améliorations clés ajoutées dans QEMU 7.1 :
- Sur la plateforme Linux, une option zero-copy-send a été mise en œuvre, permettant d'organiser le transfert de pages de mémoire lors de la migration à chaud sans mise en tampon intermédiaire.
- Dans le QMP (QEMU Machine Protocol), il est désormais possible d’utiliser la commande block-export-add pour exporter des images NBD avec des informations sur les pages dans un état 'dirty'. De nouvelles commandes 'query-stats' et 'query-stats-schema' ont également été ajoutées pour interroger les statistiques de divers sous-systèmes QEMU.
- Dans l'agent pour systèmes invités, le support de la plateforme Solaris a été amélioré et de nouvelles commandes 'guest-get-diskstats' et 'guest-get-cpustats' ont été ajoutées pour afficher l'état des disques et du CPU. La commande 'guest-get-disks' a été augmentée pour inclure les informations du NVMe SMART, et la commande 'guest-get-fsinfo' fournit des données sur le type de bus NVMe.
- Un nouvel émulateur LoongArch a été ajouté, avec prise en charge de la variante 64 bits de l'architecture du jeu d'instructions LoongArch (LA64). L'émulateur prend en charge les processeurs Loongson 3 5000 et les ponts nord Loongson 7A1000.
- Dans l'émulateur ARM, de nouveaux types de machines émulateurs ont été introduits : SoC Aspeed AST1030, Qualcomm et AST2600 / AST1030 (fby35). Le support de l'émulation du CPU Cortex-A76 et Neoverse-N1 a également été ajouté, ainsi que des extensions de processeur SME (Scalable Matrix Extensions), RAS (Reliability, Availability, Serviceability) et des commandes pour bloquer les fuites de cache interne lors de l'exécution spéculative des instructions sur le CPU. Pour les machines 'virt', l'émulation du contrôleur d'interruptions GICv4 a été mise en œuvre.
- Dans l'émulateur de l'architecture x86 pour KVM Ajout du support de la virtualisation du mécanisme de traçage LBR (Last Branch Record).
- Dans l'émulateur de l'architecture HPPA, un nouveau firmware basé sur SeaBIOS v6 a été proposé, prenant en charge l'utilisation du clavier PS/2 dans le menu de démarrage. L'émulation du port série a été améliorée. Des polices de console STI supplémentaires ont été ajoutées.
- Dans l'émulateur de l'architecture MIPS pour les cartes Nios2 (-machine 10m50-ghrd), l'émulation du contrôleur d'interruption vectorielle (Vectored Interrupt Controller) et de l'ensemble de registres shadow a été mise en œuvre. Le traitement des exceptions a été amélioré.
- Dans l'émulateur de l'architecture OpenRISC pour la machine ‘or1k-sim’, la possibilité d'utiliser jusqu'à 4 périphériques UART 16550A a été ajoutée.
- Dans l'émulateur de l'architecture RISC-V, le support de nouvelles extensions du jeu d'instructions (ISA), définies dans la spécification 1.12.0, a été ajouté, ainsi que le support de l'extension Sdtrig et une amélioration du support des instructions vectorielles. Les fonctionnalités de débogage ont été étendues. Le support TPM (Trusted Platform Module) a été ajouté à la machine ‘virt’, et le support Ibex SPI a été ajouté à la machine ‘OpenTitan’.
- Dans l'émulateur de l'architecture 390x, le support des extensions VEF 2 (Vector-Enhancements Facility 2) a été assuré. Dans le BIOS s390-ccw, la possibilité de démarrer à partir de disques ayant une taille de secteur différente de 512 octets a été mise en œuvre.
- Dans l'émulateur de l'architecture Xtensa, le support des cœurs lx106 et des codes objets pour le test du cache a été ajouté.
Source : opennet.ru
