
iPhone 11 emulado en QEMU
QEMU es un emulador y virtualizador de máquina y espacio de usuario genérico y de código abierto.
QEMU es capaz de emular una máquina completa en software sin necesidad de soporte de virtualización de hardware. Mediante el uso de traducción dinámica, logra un rendimiento muy bueno. QEMU también puede integrarse con los hipervisores Xen y KVM para proporcionar hardware emulado mientras permite que el hipervisor gestione la CPU. Con soporte de hipervisor, QEMU puede alcanzar un rendimiento casi nativo para las CPUs. Cuando QEMU emula CPUs directamente, es capaz de ejecutar sistemas operativos diseñados para una máquina (por ejemplo, una placa ARMv7) en una máquina diferente (por ejemplo, una placa x86_64 PC).
QEMU también es capaz de proporcionar virtualización de API de espacio de usuario para interfaces de kernel de Linux y BSD. Esto permite que binarios compilados para una ABI de una arquitectura (por ejemplo, la ABI Linux PPC64) se ejecuten en un host que utiliza una ABI de una arquitectura diferente (por ejemplo, la ABI Linux x86_64). Esto no implica ninguna emulación de hardware, simplemente emulación de CPU y llamadas al sistema.
QEMU tiene como objetivo adaptarse a una variedad de casos de uso. Puede ser invocado directamente por usuarios que desean tener control total sobre su comportamiento y configuración. También busca facilitar la integración en capas de gestión de nivel superior, proporcionando una interfaz de línea de comandos estable y una API de monitor. Comúnmente se invoca indirectamente a través de la biblioteca libvirt cuando se utilizan aplicaciones de código abierto como oVirt, OpenStack y virt-manager.
QEMU en su totalidad se publica bajo la Licencia Pública General de GNU, versión 2. Para obtener detalles completos sobre la licencia, consulte el archivo LICENSE.
La documentación se puede encontrar en línea en
<https://www.qemu.org/documentation/>. La documentación para la versión de desarrollo actual que está disponible en
<https://www.qemu.org/docs/master/> se genera a partir de la carpeta docs/ en el árbol de fuentes, y está construida por Sphinx <https://www.sphinx-doc.org/en/master/>_.
QEMU es un software multiplataforma diseñado para ser compilable en todas las plataformas Linux modernas, OS-X, Win32 (a través del toolchain Mingw64) y una variedad de otros objetivos UNIX. Los pasos simples para compilar QEMU son:
.. code-block:: shell
mkdir build cd build ../configure make
Información adicional también se puede encontrar en línea a través del sitio web de QEMU:
<https://wiki.qemu.org/Hosts/Linux>_<https://wiki.qemu.org/Hosts/Mac>_<https://wiki.qemu.org/Hosts/W32>_El código fuente de QEMU se mantiene bajo el sistema de control de versiones GIT.
.. code-block:: shell
git clone https://gitlab.com/qemu-project/qemu.git
Al enviar parches, un enfoque común es usar 'git format-patch' y/o 'git send-email' para formatear y enviar el correo a la lista de correo [email protected]. Todos los parches enviados deben contener una línea 'Signed-off-by' del autor. Los parches deben seguir las pautas establecidas en la sección de estilo <https://www.qemu.org/docs/master/devel/style.html>_ de la Guía del Desarrollador.
Información adicional sobre el envío de parches se puede encontrar en línea a través del sitio web de QEMU
<https://wiki.qemu.org/Contribute/SubmitAPatch>_<https://wiki.qemu.org/Contribute/TrivialPatches>_El sitio web de QEMU también se mantiene bajo control de fuentes.
.. 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/>_Se creó una utilidad 'git-publish' para hacer que el proceso anterior sea menos engorroso, y se recomienda encarecidamente para hacer contribuciones regulares, o incluso solo para enviar revisiones consecutivas de series de parches. También requiere una configuración funcional de 'git send-email', y por defecto no automatiza todo, por lo que es posible que desees realizar los pasos anteriores manualmente una vez.
Para instrucciones de instalación, por favor visita
<https://github.com/stefanha/git-publish>_El flujo de trabajo con 'git-publish' es:
.. code-block:: shell
$ git checkout master -b my-feature $ # work on new commits, add your 'Signed-off-by' lines to each $ git publish
Tu serie de parches se enviará y etiquetará como my-feature-v1 si necesitas consultarla en el futuro.
Enviando v2:
.. code-block:: shell
$ git checkout my-feature # same topic branch $ # making changes to the commits (using 'git rebase', for example) $ git publish
Tu serie de parches se enviará con la etiqueta 'v2' en el asunto y la punta de git se etiquetará como my-feature-v2.
El proyecto QEMU utiliza issues de GitLab para rastrear errores. Los errores encontrados al ejecutar código compilado desde el repositorio git de QEMU o fuentes publicadas oficialmente deben informarse a través de:
<https://gitlab.com/qemu-project/qemu/-/issues>_Si se usa QEMU a través de un paquete binario precompilado de un proveedor de sistema operativo, es preferible informar los errores primero al propio rastreador de errores del proveedor. Si también se sabe que el error afecta al último código oficial, también se puede informar a través de GitLab.
Para obtener información adicional sobre cómo informar errores, consulta:
<https://wiki.qemu.org/Contribute/ReportABug>_Para el historial de versiones y notas de la versión, por favor visita
<https://wiki.qemu.org/ChangeLog/>_ o mira el historial de git para obtener información más detallada.
Se puede contactar a la comunidad de QEMU de varias maneras, siendo los dos métodos principales el correo electrónico y el IRC
<mailto:[email protected]>_<https://lists.nongnu.org/mailman/listinfo/qemu-devel>_Información sobre métodos adicionales para contactar a la comunidad se puede encontrar en línea a través del sitio web de QEMU:
<https://wiki.qemu.org/Contribute/StartHere>_