version du projet . En tant qu'émulateur, QEMU permet d'exécuter un programme compilé pour une plateforme matérielle sur un systÚme avec une architecture complÚtement différente, par exemple, d'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 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é 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 années, la prise en charge de l'émulation complÚte a été ajoutée pour 14 architectures matérielles, et le nombre de périphériques matériels émulés a dépassé 400. Plus de 2500 modifications ont été apportées par 235 développeurs lors de la préparation de la version 5.1.
Améliorations clés , ajoutées dans QEMU 5.1 :
- Ajout de la prise en charge de l'émulation des CPU basés sur l'architecture . La prise en charge des cartes Arduino Duemilanove (ATmega168), Arduino Mega 2560 (ATmega2560),
Arduino Mega (ATmega1280) et Arduino UNO (ATmega328P) a Ă©tĂ© mise en Ćuvre. - Dans l'Ă©mulateur ARM, il a Ă©tĂ© ajoutĂ© la possibilitĂ© de dĂ©connexion Ă chaud de la mĂ©moire (hot-unplug), ainsi que la connexion Ă chaud de la mĂ©moire nvdimm pour les systĂšmes invitĂ©s avec ACPI. La prise en charge des extensions ARMv8.2 et . La prise en charge de la carte sonorapass-bmc a Ă©tĂ© assurĂ©e.
- Dans l'émulateur MIPS, la prise en charge des CPU Loongson 3A (R1 et R4) a été ajoutée. Les performances de l'émulation des instructions FPU et MSA ont été améliorées.
- Dans l'Ă©mulateur RISC-V, la prise en charge des CPU SiFive E34 et Ibex a Ă©tĂ© ajoutĂ©e. La prise en charge des cartes HiFive1 revB et OpenTitan a Ă©tĂ© mise en Ćuvre. Pour les machines Spike, un support de plusieurs CPU a Ă©tĂ© ajoutĂ©.
- Dans l'émulateur PowerPC, la prise en charge de la récupération des erreurs dans les systÚmes invités via FWNMI a été implémentée.
- Pour l'architecture s390, la prise en charge de KVM pour la virtualisation sécurisée (mode d'exécution sécurisé) a été ajoutée.
- Dans l'émulateur x86, les coûts de virtualisation des systÚmes invités non adaptés sous Windows ont été réduits grùce à la fourniture d'une table des périphériques ACPI emulés WAET (Table des périphériques ACPI émulés de Windows). La prise en charge de l'accélération a été améliorée pour macOS.
- Dans le pilote de périphériques de bloc, la prise en charge des périphériques de stockage virtuels avec des blocs logiques et physiques de 2 Mo a été ajoutée.
- Ajout de la possibilité de transmettre des mots de passe et des clés pour le cryptage à QEMU via le keyring du noyau Linux à l'aide d'objets de type nouveau "secret-keyring".
- Pour le format qcow2, la prise en charge de l'algorithme de compression zstd a Ă©tĂ© mise en Ćuvre.
- Dans l'outil qemu-img, une nouvelle commande 'bitmap' a Ă©tĂ© ajoutĂ©e pour manipuler des bitmaps persistants dans des fichiers qcow2. La gestion des clĂ©s LUKS (keyslot) a Ă©galement Ă©tĂ© implĂ©mentĂ©e dans qemu-img, et des options supplĂ©mentaires ont Ă©tĂ© proposĂ©es pour les commandes « map » (âstart-offset, âmax-length) et « convert » (âbitmaps). La commande « measure » a Ă©tĂ© complĂ©tĂ©e par l'affichage des informations sur la taille des bitmaps persistants dans les fichiers qcow2.
- Le pilote NVMe a ajouté le support des régions de mémoire persistante (Persistent Memory Region), introduites dans la spécification NVMe 1.4.
- Dans virtio pour les systÚmes invités avec le générateur de code classique TCG (Tiny Code Generator), la possibilité d'utiliser des processus a été intégrée. , y compris virtiofsd. Un nouvel ajout dans vhost-user est l'extension VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS, qui permet d'enregistrer plus de 8 slots de RAM.
Source : opennet.ru
