La version 10.0.0 du projet QEMU a été lancé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 totalement 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 la plateforme x86 sur des architectures autres que x86. Au fil des années de développement, un support complet d'émulation a été ajouté pour 14 architectures matérielles, et le nombre de périphériques matériels émulés a dépassé 400. Pour la version 10.0, plus de 2800 modifications ont été apportées par 211 développeurs.
Améliorations clés ajoutées dans QEMU 10.0 :
- Dans le pilote virtio-scsi, qui fournit un contrĂŽleur SCSI virtuel (SCSI Host Bus Adapter) pour machines virtuelles, le support d'un systĂšme de files d'attente multilevel (multiqueue) a Ă©tĂ© ajoutĂ©, permettant de sĂ©parer les files d'attente pour diffĂ©rents pĂ©riphĂ©riques de blocs afin d'assurer un accĂšs multithread sur des systĂšmes multicĆurs (diffĂ©rentes files d'un mĂȘme disque peuvent ĂȘtre traitĂ©es par diffĂ©rents threads d'E/S). ComparĂ© au pilote de pĂ©riphĂ©rique de bloc virtuel (virtio-blk), le contrĂŽleur SCSI virtuel est lĂ©gĂšrement moins performant, mais permet d'utiliser plus de 28 disques.
- Dans VFIO (Virtual Function I/O), le support du passage d'IGD (Integrated Graphics Device) pour les GPU intégrés, utilisés dans les processeurs Intel des générations 11 (Rocket Lake) et 12 (Alder Lake), a été amélioré. Le support des anciens GPU ATI (x550) a été ajouté. Un support de base pour PCI PM (Power Management) a été mis en place.
- La documentation du protocole QMP (QEMU Machine Protocol) a été complÚtement révisée et étendue, permettant aux applications de gérer QEMU.
- Un nouveau mode de migration Live «cpr-transfer» (CheckPoint and Restart) a Ă©tĂ© ajoutĂ©, permettant de dĂ©placer un systĂšme invitĂ© vers une nouvelle instance de QEMU exĂ©cutĂ©e sur le mĂȘme hĂŽte. Ce mode minimise le temps d'arrĂȘt en rĂ©flĂ©chissant la mĂ©moire du systĂšme invitĂ© dans l'espace d'adressage virtuel du nouveau QEMU sans copier le contenu.
- Des dispositifs graphiques âapple-gfx-pciâ et âapple-gfx-mmioâ ont Ă©tĂ© ajoutĂ©s, utilisant le cadre ParavirtualizedGraphics, fourni dans macOS pour l'accĂ©lĂ©ration matĂ©rielle des graphiques dans les systĂšmes invitĂ©s. Le premier pilote est destinĂ© Ă ĂȘtre utilisĂ© sur des dispositifs x86-64, tandis que le second - ARM64.
- L'émulateur d'architecture x86 a implémenté la prise en charge des modÚles de processeurs Intel Xeon Clearwater Forest et Sierra Forest v2. L'émulation des instructions pour la manipulation des données textuelles a été accélérée.
- L'Ă©mulateur d'architecture ARM a mis en Ćuvre la prise en charge des cartes NPCM8445 Evaluation et i.MX 8M Plus EVK. L'Ă©mulation des extensions FEAT_AFP, FEAT_RPRES et FEAT_XS a Ă©tĂ© ajoutĂ©e, ainsi que des minuteurs physiques et virtuels EL2. La prise en charge du CPU Arm PXA2xx et l'Ă©mulation des instructions iwMMXt ont Ă©tĂ© dĂ©clarĂ©es obsolĂštes.
- L'Ă©mulateur d'architecture RISC-V a rĂ©alisĂ© l'Ă©mulation des cartes Microblaze V, CPU Ascalon et CPU RV64 Xiangshan Nanhu. La prise en charge des extensions d'architecture du jeu d'instructions âsvukteâ, âssstateenâ, âsmrnmiâ, âsmdbltrpâ/âssdbltrpâ, âsupmâ, âsspmâ a Ă©tĂ© ajoutĂ©e, ainsi que les balises de traduction IOMMU et les dispositifs riscv-iommu-sys.
- L'émulateur d'architecture HPPA a assuré l'émulation des cartes Diva GSP BMC. Le firmware SeaBIOS-hppa a été mis à jour jusqu'à la version 18. La vitesse de traduction a été augmentée. Le code pour réinitialiser le CPU virtuel a été amélioré. Sur les systÚmes 64 bits, l'émulation des configurations avec une mémoire allant jusqu'à 256 Go a été assurée.
- L'Ă©mulateur d'architecture LoongArch a introduit la prise en charge du branchement Ă chaud des CPU. Un IPI (inter-processor interrupt) paravirtualisĂ© a Ă©tĂ© mis en Ćuvre. Le suivi du temps d'attente pour la fourniture de ressources par l'hyperviseur a Ă©tĂ© garanti. KVM. La prise en charge de la routage virtuelle des interruptions externes (extioi) a Ă©tĂ© ajoutĂ©e.
- Dans l'Ă©mulateur d'architecture s390x, la prise en charge des 17e gĂ©nĂ©ration de CPU mainframes a Ă©tĂ© ajoutĂ©e, et le virtio-mem a Ă©tĂ© mis en Ćuvre. Pour amĂ©liorer les performances, il a Ă©tĂ© rendu possible d'interagir avec les dispositifs PCI en contournant l'IOMMU.
Source : opennet.ru
