
iPhone 11 emuliert auf QEMU
QEMU ist ein generischer und quelloffener Emulator und Virtualisierer für Maschinen und Benutzerbereiche.
QEMU ist in der Lage, eine komplette Maschine in Software zu emulieren, ohne dass Hardware-Virtualisierungsunterstützung erforderlich ist. Durch dynamische Übersetzung wird eine sehr gute Leistung erzielt. QEMU kann auch mit den Hypervisoren Xen und KVM zusammenarbeiten, um emulierte Hardware bereitzustellen, während der Hypervisor die CPU verwaltet. Mit Hypervisor-Unterstützung kann QEMU eine nahezu native CPU-Leistung erreichen. Wenn QEMU CPUs direkt emuliert, ist es in der Lage, Betriebssysteme, die für eine Maschine (z. B. ein ARMv7-Board) entwickelt wurden, auf einer anderen Maschine (z. B. einem x86_64-PC-Board) auszuführen.
QEMU kann auch eine Benutzerbereichs-API-Virtualisierung für Linux- und BSD-Kernschnittstellen bereitstellen. Dies ermöglicht es, Binärdateien, die gegen eine Architektur-ABI (z. B. die Linux-PPC64-ABI) kompiliert wurden, auf einem Host mit einer anderen Architektur-ABI (z. B. der Linux-x86_64-ABI) auszuführen. Dies beinhaltet keine Hardware-Emulation, sondern lediglich CPU- und Syscall-Emulation.
QEMU zielt darauf ab, in eine Vielzahl von Anwendungsfällen zu passen. Es kann direkt von Benutzern aufgerufen werden, die die volle Kontrolle über sein Verhalten und seine Einstellungen wünschen. Es zielt auch darauf ab, die Integration in übergeordnete Verwaltungsschichten zu erleichtern, indem es eine stabile Befehlszeilenschnittstelle und eine Monitor-API bietet. Es wird häufig indirekt über die libvirt-Bibliothek aufgerufen, wenn Open-Source-Anwendungen wie oVirt, OpenStack und virt-manager verwendet werden.
QEMU als Ganzes wird unter der GNU General Public License, Version 2, veröffentlicht. Vollständige Lizenzdetails finden Sie in der LICENSE-Datei.
Die Dokumentation ist online unter
<https://www.qemu.org/documentation/>_ verfügbar. Die Dokumentation für die
aktuelle Entwicklungsversion, die unter
<https://www.qemu.org/docs/master/>_ verfügbar ist, wird aus dem Ordner
docs/ im Quellbaum generiert und mit Sphinx <https://www.sphinx-doc.org/en/master/>_ erstellt.
QEMU ist eine plattformübergreifende Software, die auf allen modernen Linux-Plattformen, OS‑X, Win32 (über die Mingw64-Toolchain) und einer Reihe anderer UNIX-Ziele kompilierbar sein soll. Die einfachen Schritte zum Bauen von QEMU sind:
.. code-block:: shell
mkdir build cd build ../configure make
Zusätzliche Informationen finden Sie auch online auf der QEMU-Website:
<https://wiki.qemu.org/Hosts/Linux>_<https://wiki.qemu.org/Hosts/Mac>_<https://wiki.qemu.org/Hosts/W32>_Der QEMU-Quellcode wird unter dem GIT-Versionskontrollsystem verwaltet.
.. code-block:: shell
git clone https://gitlab.com/qemu-project/qemu.git
Ein gängiger Ansatz beim Einreichen von Patches ist die Verwendung von 'git
format-patch' und/oder 'git send-email', um die E-Mail zu formatieren und an
die Mailingliste [email protected] zu senden. Alle eingereichten Patches
müssen eine 'Signed-off-by'-Zeile des Autors enthalten. Patches sollten den
Richtlinien folgen, die im Style-Abschnitt <https://www.qemu.org/docs/master/devel/style.html>_ des
Entwicklerleitfadens dargelegt sind.
Weitere Informationen zum Einreichen von Patches finden Sie online auf der QEMU-Website:
<https://wiki.qemu.org/Contribute/SubmitAPatch>_<https://wiki.qemu.org/Contribute/TrivialPatches>_Die QEMU-Website wird ebenfalls unter Quellcodeverwaltung gepflegt.
.. 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/>_Das Dienstprogramm 'git-publish' wurde entwickelt, um den obigen Prozess weniger umständlich zu machen, und wird für regelmäßige Beiträge oder sogar nur zum Senden aufeinanderfolgender Patch-Serienrevisionen sehr empfohlen. Es erfordert auch eine funktionierende 'git send-email'-Einrichtung und automatisiert standardmäßig nicht alles, daher möchten Sie die obigen Schritte vielleicht einmal manuell durchgehen.
Installationsanweisungen finden Sie unter
<https://github.com/stefanha/git-publish>_Der Arbeitsablauf mit 'git-publish' ist:
.. code-block:: shell
$ git checkout master -b my-feature $ # Arbeit an neuen Commits, fügen Sie Ihre 'Signed-off-by'-Zeilen zu jedem hinzu $ git publish
Ihre Patch-Serie wird gesendet und als my-feature-v1 gekennzeichnet, falls Sie später darauf zurückverweisen müssen.
Senden von v2:
.. code-block:: shell
$ git checkout my-feature # gleicher Themenzweig $ # Änderungen an den Commits (z. B. mit 'git rebase') $ git publish
Ihre Patch-Serie wird mit dem 'v2'-Tag im Betreff gesendet und der Git-Tipp wird als my-feature-v2 getaggt.
Das QEMU-Projekt verwendet GitLab Issues, um Fehler zu verfolgen. Fehler, die beim Ausführen von Code aus QEMU Git oder veröffentlichten Quellen gefunden werden, sollten gemeldet werden über:
<https://gitlab.com/qemu-project/qemu/-/issues>_Wenn Sie QEMU über ein vorab erstelltes Binärpaket eines Betriebssystemanbieters verwenden, ist es vorzuziehen, Fehler zuerst im eigenen Bug-Tracker des Anbieters zu melden. Wenn der Fehler auch den aktuellsten Upstream-Code betrifft, kann er auch über GitLab gemeldet werden.
Weitere Informationen zur Fehlermeldung finden Sie unter:
<https://wiki.qemu.org/Contribute/ReportABug>_Versionsgeschichte und Veröffentlichungshinweise finden Sie unter
<https://wiki.qemu.org/ChangeLog/>_ oder in der Git-Historie für
detailliertere Informationen.
Die QEMU-Community kann auf verschiedene Weise kontaktiert werden, wobei die beiden Hauptmethoden E-Mail und IRC sind:
<mailto:[email protected]>_<https://lists.nongnu.org/mailman/listinfo/qemu-devel>_Informationen zu weiteren Kontaktmöglichkeiten finden Sie online auf der QEMU-Website:
<https://wiki.qemu.org/Contribute/StartHere>_