
iPhone 11 emulato su QEMU
QEMU è un emulatore e virtualizzatore generico e open source di macchine e spazio utente.
QEMU è in grado di emulare una macchina completa via software senza alcuna necessità di supporto per la virtualizzazione hardware. Utilizzando la traduzione dinamica, raggiunge prestazioni molto buone. QEMU può anche integrarsi con gli hypervisor Xen e KVM per fornire hardware emulato, permettendo all'hypervisor di gestire la CPU. Con il supporto dell'hypervisor, QEMU può raggiungere prestazioni quasi native per le CPU. Quando QEMU emula le CPU direttamente, è in grado di eseguire sistemi operativi realizzati per una macchina (ad esempio una scheda ARMv7) su una macchina diversa (ad esempio una scheda x86_64 PC).
QEMU è anche in grado di fornire virtualizzazione delle API dello spazio utente per le interfacce del kernel Linux e BSD. Ciò consente di eseguire binari compilati per un'architettura ABI (ad esempio l'ABI Linux PPC64) su un host che utilizza un'architettura ABI diversa (ad esempio l'ABI Linux x86_64). Questo non comporta alcuna emulazione hardware, ma semplicemente emulazione della CPU e delle syscall.
QEMU mira ad adattarsi a una varietà di casi d'uso. Può essere invocato direttamente dagli utenti che desiderano avere il pieno controllo del suo comportamento e delle impostazioni. Mira anche a facilitare l'integrazione in livelli di gestione superiori, fornendo un'interfaccia a riga di comando stabile e un'API di monitor. Viene comunemente invocato indirettamente tramite la libreria libvirt quando si utilizzano applicazioni open source come oVirt, OpenStack e virt-manager.
QEMU nel suo complesso è rilasciato sotto la GNU General Public License, versione 2. Per i dettagli completi sulla licenza, consultare il file LICENSE.
La documentazione può essere trovata online all'indirizzo
<https://www.qemu.org/documentation/>. La documentazione per la versione di sviluppo corrente disponibile all'indirizzo
<https://www.qemu.org/docs/master/> è generata dalla cartella docs/ nell'albero dei sorgenti ed è costruita da Sphinx <https://www.sphinx-doc.org/en/master/>_.
QEMU è un software multipiattaforma pensato per essere compilabile su tutte le moderne piattaforme Linux, OS-X, Win32 (tramite la toolchain Mingw64) e una varietà di altri target UNIX. I semplici passaggi per compilare QEMU sono:
.. code-block:: shell
mkdir build cd build ../configure make
Ulteriori informazioni possono essere trovate online tramite il sito web di QEMU:
<https://wiki.qemu.org/Hosts/Linux>_<https://wiki.qemu.org/Hosts/Mac>_<https://wiki.qemu.org/Hosts/W32>_Il codice sorgente di QEMU è mantenuto sotto il sistema di controllo versione GIT.
.. code-block:: shell
git clone https://gitlab.com/qemu-project/qemu.git
Quando si inviano patch, un approccio comune è usare 'git format-patch' e/o 'git send-email' per formattare e inviare la mail alla mailing list [email protected]. Tutte le patch inviate devono contenere una riga 'Signed-off-by' dell'autore. Le patch dovrebbero seguire le linee guida stabilite nella sezione di stile <https://www.qemu.org/docs/master/devel/style.html>_ della Guida per Sviluppatori.
Ulteriori informazioni sull'invio di patch possono essere trovate online tramite il sito web di QEMU
<https://wiki.qemu.org/Contribute/SubmitAPatch>_<https://wiki.qemu.org/Contribute/TrivialPatches>_Il sito web di QEMU è anch'esso mantenuto sotto controllo versione.
.. 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/>_È stata creata un'utility 'git-publish' per rendere il processo di cui sopra meno macchinoso, ed è fortemente consigliata per contributi regolari, o anche solo per inviare revisioni consecutive di serie di patch. Richiede anche una configurazione funzionante di 'git send-email', e per impostazione predefinita non automatizza tutto, quindi potresti voler eseguire manualmente i passaggi sopra almeno una volta.
Per le istruzioni di installazione, si prega di visitare
<https://github.com/stefanha/git-publish>_Il flusso di lavoro con 'git-publish' è:
.. code-block:: shell
$ git checkout master -b my-feature $ # work on new commits, add your 'Signed-off-by' lines to each $ git publish
La serie di patch verrà inviata e etichettata come my-feature-v1 se avrai bisogno di farvi riferimento in futuro.
Invio della v2:
.. code-block:: shell
$ git checkout my-feature # same topic branch $ # making changes to the commits (using 'git rebase', for example) $ git publish
La serie di patch verrà inviata con il tag 'v2' nell'oggetto e il commit corrente di git verrà etichettato come my-feature-v2.
Il progetto QEMU utilizza le issue di GitLab per tracciare i bug. I bug trovati durante l'esecuzione di codice compilato da git di QEMU o da sorgenti rilasciati a monte dovrebbero essere segnalati tramite:
<https://gitlab.com/qemu-project/qemu/-/issues>_Se si utilizza QEMU tramite un pacchetto binario precompilato dal vendor del sistema operativo, è preferibile segnalare prima i bug al tracker di bug del vendor stesso. Se il bug è noto per interessare anche il codice più recente a monte, può essere segnalato anche tramite GitLab.
Per ulteriori informazioni sulla segnalazione di bug consultare:
<https://wiki.qemu.org/Contribute/ReportABug>_Per la cronologia delle versioni e le note di rilascio, visitare
<https://wiki.qemu.org/ChangeLog/>_ o consultare la cronologia di git per informazioni più dettagliate.
La comunità di QEMU può essere contattata in vari modi, con i due metodi principali che sono email e IRC
<mailto:[email protected]>_<https://lists.nongnu.org/mailman/listinfo/qemu-devel>_Informazioni su metodi aggiuntivi per contattare la comunità possono essere trovate online tramite il sito web di QEMU:
<https://wiki.qemu.org/Contribute/StartHere>_