Sortie de l'émulateur QEMU 4.1

Introduit lancement du projet QEMU 4.1. En tant qu'émulateur, QEMU vous permet d'exécuter un programme compilé pour une plate-forme matérielle sur un système avec une architecture complètement différente, par exemple, d'exécuter une application ARM sur un PC compatible x86. En mode virtualisation dans QEMU, les performances d'exécution de code dans un environnement isolé sont proches du système natif 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é créé à l'origine par Fabrice Bellard pour permettre aux exécutables Linux conçus pour la plate-forme x86 de s'exécuter sur des architectures non x86. Au fil des années de développement, une prise en charge complète de l'émulation a été ajoutée pour 14 architectures matérielles, le nombre de périphériques matériels émulés a dépassé 400. En préparation de la version 4.1, plus de 2000 modifications ont été apportées par 276 développeurs.

Clé améliorationsajouté dans QEMU 4.1 :

  • La prise en charge des modèles de processeurs Hygon Dhyana et Intel SnowRidge a été ajoutée à l'émulateur d'architecture x86. Ajout de l'émulation de l'extension RDRAND (générateur matériel de nombres pseudo-aléatoires). Drapeaux ajoutés
    md-clear et mds-no pour contrôler la protection contre les attaques MDS (Microarchitectural Data Sampling) sur les processeurs Intel. Ajout de la possibilité de déterminer les topologies de circuits intégrés à l'aide de l'indicateur « -smp ...,dies= ». La gestion des versions a été implémentée pour tous les modèles de processeurs x86 ;

  • Le pilote de bloc SSH a été déplacé de l'utilisation libssh2 sur libsh;
  • Le driver virtio-gpu (GPU virtuel développé dans le cadre du projet Virgile) ajout de la prise en charge du déplacement des opérations de rendu 2D/3D vers un processus utilisateur vhost externe (par exemple, vhost-user-gpu) ;
  • L'émulateur d'architecture ARM a ajouté la prise en charge de l'extension ARMv8.5-RNG pour générer des nombres pseudo-aléatoires. La prise en charge de l'émulation FPU a été implémentée pour les puces de la famille Cortex-M et les problèmes d'émulation FPU pour Cortex-R5F ont été résolus. Un nouveau système de définition des options de construction, conçu dans le style Kconfig, a été proposé. Pour le SoC Exynos4210, la prise en charge des contrôleurs PL330 DMA a été ajoutée ;
  • L'émulateur d'architecture MIPS a amélioré la prise en charge des instructions MSA ASE lors de l'utilisation de l'ordre des octets big-endian et a aligné la gestion de la division par zéro avec le matériel de référence. Les performances d'émulation des instructions MSA pour les calculs d'entiers et les opérations de permutation ont été augmentées ;
  • L'émulateur d'architecture PowerPC prend désormais en charge le transfert vers les GPU NVIDIA V100/NVLink2 à l'aide de VFIO. Pour les pseries, l'accélération de l'émulation du contrôleur d'interruption XIVE a été implémentée et la prise en charge du branchement à chaud des ponts PCI a été ajoutée. Des optimisations ont été apportées à l'émulation d'instructions vectorielles (Altivec/VSX) ;
  • Un nouveau modèle matériel a été ajouté à l'émulateur d'architecture RISC-V - « spike ». Ajout de la prise en charge d'ISA 1.11.0. L'appel système 32 bits ABI a été amélioré, la gestion des instructions non valides a été améliorée et le débogueur intégré a été amélioré. Ajout de la prise en charge de la topologie du processeur dans l'arborescence des périphériques ;
  • L'émulateur d'architecture s390 a ajouté la prise en charge de l'émulation de toutes les instructions vectorielles du groupe « Vector Facility » et a ajouté des éléments supplémentaires pour prendre en charge les systèmes gen15 (y compris la prise en charge supplémentaire de la fonction d'interruption de file d'attente AP pour vfio-ap). Implémentation de la prise en charge du BIOS pour le démarrage à partir d'ECKD DASD lié au système invité via vfio-ccw ;
  • Dans l'émulateur d'architecture SPARC pour les systèmes sun4m, les problèmes liés à l'utilisation de l'indicateur « -vga none » pour OpenBIOS ont été résolus ;
  • L'émulateur de processeur de la famille Tensilica Xtensa comprend des options pour MPU (unité de protection de la mémoire) et un accès exclusif ;
  • L'option « -salvage » a été ajoutée à la commande « qemu-img convert » pour désactiver le crash du processus de conversion d'image en cas d'erreurs d'E/S (par exemple, peut être utilisée pour restaurer des fichiers qcow2 partiellement endommagés). Dans une équipe
    « qemu-img rebase » fonctionne lorsqu'un fichier de sauvegarde n'a pas encore été créé pour le fichier d'entrée ;

  • Ajout de la possibilité de rediriger la sortie organisée à l'aide de la technologie "semihosting" (permet au périphérique émulé d'utiliser stdout, stderr et stdin pour créer des fichiers côté hôte) vers le backend chardev ("-semihosting-config activate=on,target=native ,chardev=[ID]");
  • Ajout de la prise en charge du sous-format seSparse en mode lecture seule dans le pilote de bloc VMDK ;
  • Ajout de la prise en charge du contrôleur SiFive GPIO dans le pilote d'émulation GPIO.

Source: opennet.ru

Ajouter un commentaire