
iPhone 11 émulé sur QEMU
QEMU est un émulateur et virtualiseur de machines et d'espace utilisateur générique et open source.
QEMU est capable d'émuler une machine complète dans un logiciel sans aucun besoin de support matériel de virtualisation. En utilisant la traduction dynamique, il atteint de très bonnes performances. QEMU peut également s'intégrer aux hyperviseurs Xen et KVM pour fournir du matériel émulé tout en permettant à l'hyperviseur de gérer le CPU. Avec le support de l'hyperviseur, QEMU peut atteindre des performances quasi natives pour les CPUs. Lorsque QEMU émule directement les CPUs, il est capable d'exécuter des systèmes d'exploitation conçus pour une machine (par exemple une carte ARMv7) sur une machine différente (par exemple une carte PC x86_64).
QEMU est également capable de fournir une virtualisation de l'API de l'espace utilisateur pour les interfaces du noyau Linux et BSD. Cela permet d'exécuter des binaires compilés pour une architecture ABI (par exemple l'ABI Linux PPC64) sur un hôte utilisant une architecture ABI différente (par exemple l'ABI Linux x86_64). Cela n'implique aucune émulation matérielle, simplement une émulation de CPU et d'appels système.
QEMU vise à s'adapter à une variété de cas d'utilisation. Il peut être invoqué directement par les utilisateurs souhaitant avoir un contrôle total sur son comportement et ses paramètres. Il vise également à faciliter l'intégration dans des couches de gestion de plus haut niveau, en fournissant une interface en ligne de commande stable et une API de moniteur. Il est généralement invoqué indirectement via la bibliothèque libvirt lors de l'utilisation d'applications open source telles que oVirt, OpenStack et virt-manager.
QEMU dans son ensemble est publié sous la licence publique générale GNU, version 2. Pour plus de détails sur les licences, consultez le fichier LICENSE.
La documentation peut être trouvée en ligne sur
<https://www.qemu.org/documentation/>. La documentation de la version de développement actuelle disponible sur
<https://www.qemu.org/docs/master/> est générée à partir du dossier docs/ de l'arborescence source, et est construite par Sphinx <https://www.sphinx-doc.org/en/master/>_.
QEMU est un logiciel multiplateforme destiné à être compilable sur toutes les plateformes Linux modernes, OS-X, Win32 (via la chaîne d'outils Mingw64) et une variété d'autres cibles UNIX. Les étapes simples pour compiler QEMU sont :
.. code-block:: shell
mkdir build cd build ../configure make
Des informations supplémentaires peuvent également être trouvées en ligne sur le site Web de QEMU :
<https://wiki.qemu.org/Hosts/Linux>_<https://wiki.qemu.org/Hosts/Mac>_<https://wiki.qemu.org/Hosts/W32>_Le code source de QEMU est maintenu sous le système de contrôle de version GIT.
.. code-block:: shell
git clone https://gitlab.com/qemu-project/qemu.git
Lors de la soumission de correctifs, une approche courante consiste à utiliser 'git
format-patch' et/ou 'git send-email' pour formater et envoyer le courrier à la
liste de diffusion [email protected]. Tous les correctifs soumis doivent contenir
une ligne 'Signed-off-by' de l'auteur. Les correctifs doivent suivre les
directives énoncées dans la section de style <https://www.qemu.org/docs/master/devel/style.html>_ du
Guide du développeur.
Des informations supplémentaires sur la soumission de correctifs peuvent être trouvées en ligne via le site Web de QEMU
<https://wiki.qemu.org/Contribute/SubmitAPatch>_<https://wiki.qemu.org/Contribute/TrivialPatches>_Le site Web de QEMU est également maintenu sous contrôle de source.
.. code-block:: shell
git clone https://gitlab.com/qemu-project/qemu-web.git
<https://www.qemu.org/2017/02/04/the-new-qemu-website-is-up/>_Un utilitaire 'git-publish' a été créé pour rendre le processus ci-dessus moins fastidieux, et est fortement recommandé pour faire des contributions régulières, ou même simplement pour envoyer des révisions consécutives de séries de correctifs. Il nécessite également une configuration fonctionnelle de 'git send-email', et par défaut n'automatise pas tout, vous voudrez donc peut-être passer par les étapes ci-dessus manuellement une fois.
Pour les instructions d'installation, veuillez consulter
<https://github.com/stefanha/git-publish>_Le flux de travail avec 'git-publish' est :
.. code-block:: shell
$ git checkout master -b my-feature $ # travail sur de nouveaux commits, ajoutez vos lignes 'Signed-off-by' à chacun $ git publish
Votre série de correctifs sera envoyée et étiquetée comme my-feature-v1 si vous avez besoin d'y faire référence à l'avenir.
Envoi de la v2 :
.. code-block:: shell
$ git checkout my-feature # même branche thématique $ # apporter des modifications aux commits (en utilisant 'git rebase', par exemple) $ git publish
Votre série de correctifs sera envoyée avec la balise 'v2' dans l'objet et le sommet git sera étiqueté comme my-feature-v2.
Le projet QEMU utilise les issues GitLab pour suivre les bogues. Les bogues trouvés lors de l'exécution de code construit à partir de QEMU git ou de sources publiées en amont doivent être signalés via :
<https://gitlab.com/qemu-project/qemu/-/issues>_Si vous utilisez QEMU via un paquet binaire pré-construit par un fournisseur de système d'exploitation, il est préférable de signaler d'abord les bogues au tracker de bogues du fournisseur. Si le bogue est également connu pour affecter le dernier code amont, il peut également être signalé via GitLab.
Pour plus d'informations sur le signalement de bogues, consultez :
<https://wiki.qemu.org/Contribute/ReportABug>_Pour l'historique des versions et les notes de version, veuillez visiter
<https://wiki.qemu.org/ChangeLog/>_ ou consultez l'historique git pour des informations
plus détaillées.
La communauté QEMU peut être contactée de plusieurs façons, les deux principales méthodes étant le courrier électronique et l'IRC
<mailto:[email protected]>_<https://lists.nongnu.org/mailman/listinfo/qemu-devel>_Des informations sur d'autres méthodes pour contacter la communauté peuvent être trouvées en ligne via le site Web de QEMU :
<https://wiki.qemu.org/Contribute/StartHere>_