La version 10.1.0 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 ayant une architecture complètement différente, par exemple, exécuter une application pour ARM sur un PC compatible x86. En mode virtualisation, la performance d'exécution du code dans un environnement isolé est proche de celle 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 sous Linux, ou du module NVMM sous NetBSD.
Le projet a été initialement créé par Fabrice Bellard dans le but de permettre l'exécution de fichiers exécutables Linux compilés pour l'architecture x86 sur des architectures différentes de x86. Au fil des années de développement, la prise en charge de l'émulation complète a été ajoutée pour 14 architectures matérielles, et le nombre de dispositifs matériels émulés a dépassé 400. Pour la préparation de la version 11.0, plus de 2700 modifications ont été apportées par 226 développeurs.
Améliorations clés ajoutées dans QEMU 10.1 :
- Dans VFIO (Virtual Function I/O), un support initial du mappage de la mémoire pour des environnements invités confidentiels a été implémenté, dans lesquels le chiffrement de la mémoire est utilisé pour se protéger contre l'intervention et l'analyse par l'administrateur du système hôte. Ce changement permet d'organiser le passage de dispositifs vers des systèmes invités protégés par des mécanismes Intel TDX (Trusted Domain Extensions) et AMD SEV-SNP (Secure Nested Paging).
- Il est désormais possible d'utiliser le mécanisme multifd pour accélérer la migration Live en mode postcopy, dans lequel, au départ, la cible est transférée et lancée sur l'hôte cible machine virtuelle, puis le contenu non sollicité de la mémoire vive est transféré progressivement. Le mode de migration Live precopy a été optimisé. Le support de la migration RDMA pour IPv6 a été ajouté.
- Dans QEMU Guest Agent, une commande « guest-get-load » a été ajoutée pour obtenir des informations sur le niveau de charge système (load average) dans des machines virtuelles sous Windows.
- Dans virtio-gpu, la prise en charge de la substitution de nom dans l'EDID (Extended Display Identification Data) a été ajoutée.
- Dans l'émulateur de l'architecture x86, la possibilité d'utiliser le mécanisme Intel TDX (Trusted Domain Extensions) pour chiffrer la mémoire vive des systèmes invités fonctionnant sous l'hyperviseur KVM a été implémentée. Un support pour l'initialisation de systèmes confidentiels machines virtuelles au format IGVM (Independent Guest Virtual Machine), pour lesquels les mécanismes Intel TDX et AMD SEV-SNP sont utilisés pour assurer la protection, a également été ajouté.
- L'émulateur de l'architecture ARM prend en charge les cartes (Analog Devices 'max78000fthr', 'ast2700fc', Meta 'catalina-bmc', NVIDIA 'gb200-bmc' et 'ast2700a0-evb'). L'émulation des extensions CPU FEAT_SME2, FEAT_SME2p1, FEAT_SME_B16B16, FEAT_SME_F16F16, FEAT_SVE_B16B16 et FEAT_SVE2p1 a été ajoutée. Le support de la virtualisation imbriquée lors de l'utilisation de KVM a été ajouté à la plateforme virt ARM standard 'virt', ainsi que le support du bus CXL (Compute Express Link) et le branchement à chaud des périphériques PCI via ACPI.
- L'émulateur de l'architecture RISC-V a ajouté l'émulation du processeur Kunminghu et de la plateforme basée sur celui-ci. Le support de l'extension de l'architecture du jeu d'instructions Ziccif avec la mise en œuvre d'une variante atomique de l'instruction fetch a été ajouté.
- Dans l'émulateur de l'architecture LoongArch, le support de l'émulation du contrôleur d'interruptions irqchip du côté du noyau a été ajouté.
- Le support expérimental de la compilation en WebAssembly (WASM) a été ajouté, en utilisant le compilateur Emscripten.
- Le support de Debian 11 a été supprimé dans les composants pour environnements d'hébergement.
Source : opennet.ru
