La sortie de l'émulateur QEMU 6.0

La sortie du projet QEMU 6.0 a été présentée. En tant qu'émulateur, QEMU permet de faire fonctionner un programme conçu pour une plateforme matérielle sur un système avec une architecture totalement différente, par exemple, exécuter une application destinée à ARM sur un PC compatible x86. En mode virtualisation, la performance d'exécution du code dans un environnement isolé se rapproche 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.

À 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 différentes de x86. Au fil des ans, un support complet 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 préparation de la version 6.0, plus de 3300 modifications ont été faites par 268 développeurs.

Améliorations clés ajoutées dans QEMU 6.0 :

  • L'émulateur de contrôleurs NVMe a été mis en conformité avec la spécification NVMe 1.4 et est doté d'un support expérimental pour des espaces de noms zonés, le multipath I/O et le chiffrement des données au repos.
  • Ajout d'options expérimentales « -machine x-remote » et « -device x-pci-proxy-dev » pour déporter l'émulation de dispositifs vers des processus externes. Dans ce mode, seule l'émulation de l'adaptateur SCSI lsi53c895 est actuellement prise en charge.
  • Ajout d'un support expérimental pour la création de snapshots du contenu de la RAM.
  • Ajout d'un module FUSE pour l'exportation de dispositifs de bloc, permettant de monter un instantané de l'état de n'importe quel dispositif de bloc utilisé dans le système invité. L'exportation se fait par la commande QMP block-export-add ou par l'option « —export » dans l'outil qemu-storage-daemon.
  • L'émulateur ARM a ajouté le support de l'architecture ARMv8.1-M ‘Helium’ et des processeurs Cortex-M55, ainsi que des instructions avancées ARMv8.4 TTST, SEL2 et DIT. Le support des plateformes ARM mps3-an524 et mps3-an547 a également été ajouté. En outre, pour les plateformes xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx et sabrelite, une émulation supplémentaire des dispositifs a été réalisée.
  • Pour ARM, le mode d'émulation au niveau du système et de l'environnement utilisateur inclut la prise en charge de l'extension ARMv8.5 MTE (MemTag, Memory Tagging Extension), permettant d'associer des étiquettes à chaque opération d'allocation mémoire et d'organiser une vérification du pointeur lors de l'accès à la mémoire, celui-ci devant être lié à une étiquette valide. Cette extension peut être utilisée pour bloquer l'exploitation des vulnérabilités causées par l'accès à des blocs mémoire déjà libérés, des débordements de tampon, des accès avant initialisation et un usage en dehors du contexte actuel.
  • L'émulateur d'architecture 68k a ajouté la prise en charge d'un nouveau type de machines émulateurs « virt », utilisant pour l'optimisation des performances le dispositif virtio.
  • L'émulateur d'architecture x86 a ajouté la possibilité d'appliquer la technologie AMD SEV-ES (Secure Encrypted Virtualization) pour le cryptage des registres du processeur utilisés dans le système invité, rendant le contenu des registres inaccessible à l'environnement hôte, sauf si le système invité y accorde explicitement l'accès.
  • Dans le générateur de code classique TCG (Tiny Code Generator), lors de l'émulation des systèmes x86, la prise en charge du mécanisme PKS (Protection Keys Supervisor) a été mise en œuvre, pouvant être utilisée pour protéger l'accès aux pages mémoire privilégiées.
  • L'émulateur d'architecture MIPS a ajouté un nouveau type de machines émulateurs « virt » avec prise en charge des processeurs chinois Loongson-3.
  • Dans l'émulateur d'architecture PowerPC pour les machines émulateurs « powernv », la prise en charge des contrôleurs BMC externes a été ajoutée. Pour les machines émulateurs pseries, une notification des échecs a été mise en place lors de tentatives de retrait à chaud de la mémoire et de la CPU.
  • Ajout de la prise en charge de l'émulation des processeurs Qualcomm Hexagon avec DSP.
  • Dans le générateur de code classique TCG (Tiny Code Generator), la prise en charge des environnements hôtes macOS sur des systèmes avec le nouveau processeur ARM d'Apple M1 a été réalisée.
  • Dans l'émulateur RISC-V pour les cartes Microchip PolarFire, la prise en charge du flash NOR QSPI a été mise en œuvre.
  • L'émulateur Tricore a ajouté la prise en charge du nouveau modèle de cartes TriBoard, émulateur du SoC Infineon TC27x.
  • Dans l'émulateur ACPI, il est maintenant possible d'attribuer aux adaptateurs réseaux dans les systèmes invités des noms indépendants de l'ordre de connexion au bus PCI.
  • Dans virtiofs, la prise en charge de l'option FUSE_KILLPRIV_V2 a été ajoutée pour améliorer les performances des systèmes invités.
  • La prise en charge de la transparence du curseur et du redimensionnement de la résolution d'écran dans virtio-vga a été ajoutée à VNC, en fonction de la taille de la fenêtre.
  • Le support de l'accès parallèle asynchrone lors de l'exécution des tâches de sauvegarde a été ajouté au QMP (QEMU Machine Protocol).
  • L'émulateur USB a été mis à jour pour permettre la sauvegarde du trafic généré par l'utilisation d'appareils USB dans un fichier pcap distinct pour une inspection ultérieure dans Wireshark.
  • De nouvelles commandes QMP load-snapshot, save-snapshot et delete-snapshot ont été ajoutées pour gérer les snapshots qcow2.
  • Des vulnérabilités CVE-2020-35517 et CVE-2021-20263 ont été corrigées dans virtiofs. Le premier problème permet l'accès à l'environnement hôte depuis le système invité par la création par un utilisateur privilégié dans le système invité d'un fichier de périphérique spécial dans un répertoire partagé avec l'environnement hôte. Le second problème est dû à une erreur dans le traitement des attributs étendus dans l'option 'xattrmap' et peut entraîner l'ignorance du rétablissement des droits d'écriture et une élévation des privilèges à l'intérieur du système invité.

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