La version 8.0 du projet QEMU a été présentée. En tant qu'émulateur, QEMU permet d'exécuter un programme compilé pour une plateforme matérielle sur un système d'une architecture totalement différente, par exemple, 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 matériel 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é initialement 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 ans, le support a été ajouté pour une émulation complète de 14 architectures matérielles, et le nombre de périphériques matériels émulés a dépassé 400. Pour la version 8.0, plus de 2800 modifications ont été apportées par 238 développeurs.
Améliorations clés ajoutées dans QEMU 8.0 :
- Le support de l'émulation système (exécution complète du système d'exploitation, y compris avec des hyperviseurs) sur des hôtes 32 bits avec architecture x86 a été déclaré obsolète et sera bientôt interrompu. KVM Le support de l'émulation en mode utilisateur (exécution de processus individuels compilés pour un autre CPU) sur des hôtes x86 32 bits sera poursuivi.
- Dans l'émulateur d'architecture x86, le support du lancement de systèmes invités Xen dans un environnement basé sur l'hyperviseur KVM et des noyaux Linux 5.12+ a été ajouté.
- Dans le générateur de code classique TCG pour l'architecture x86, le support des drapeaux CPUID FSRM, FZRM, FSRS et FSRC a été ajouté. Le support d'un nouveau modèle de CPU Intel Sapphire Rapids (Intel 7) a été mis en œuvre.
- Dans l'émulateur ARM, le support des CPU Cortex-A55 et Cortex-R52 a été mis en place, un nouveau type de machines émulates Olimex STM32 H405 a été ajouté, ainsi que le support des extensions de processeur FEAT_EVT (Enhanced Virtualization Traps), FEAT_FGT (Fine-Grained Traps) et AArch32 ARMv8-R. Le gdbstub a également ajouté le support des registres systèmes pour l'architecture M-profile (profil des microcontrôleurs).
- Dans l'émulateur d'architecture RISC-V, la mise à jour de l'implémentation des machines émulates OpenTitan, PolarFire et OpenSBI a été réalisée. Le support de jeux d'instructions supplémentaires (ISA) et d'extensions a été ajouté : Smstateen, compteurs de débogage icount, événements PMU liés au cache en mode virtuel, ACPI, extensions Zawrs, Svadu, T-Head et Zicond.
- Dans l'émulateur d'architecture HPPA, le support de l'instruction fid (Floating-Point Identify) a été ajouté et l'émulation en mode 32 bits a été améliorée.
- L'émulateur d'architecture 390x prend en charge la déconnexion asynchrone de la mémoire lors du redémarrage des systèmes invités protégés KVM. Le traitement des appareils zPCI transférés a été amélioré.
- Dans le mécanisme virtio-mem, qui permet de connecter et déconnecter la mémoire des machines virtuelles à chaud, une allocation de ressources anticipée (preallocation) a été mise en œuvre lors de la migration en direct.
- Dans VFIO (Virtual Function I/O), le support expérimental de la migration a été mis à jour (la deuxième révision du protocole de migration est désormais utilisée).
- Dans le dispositif de blocs qemu-nbd, l'efficacité de fonctionnement sur TCP lors de l'utilisation de TLS a été améliorée.
- Un support initial pour OpenBSD et NetBSD a été ajouté à l'agent pour systèmes invités.
Source : opennet.ru
