Implementación de la emulación de iPhone 11 en QEMU
(github.com/ChefKissInc)- QEMU emula por software máquinas y espacio de usuario de diversas arquitecturas
- Recientemente se publicó un proyecto de emulación de Apple Silicon y iPhone 11 basado en QEMU
- QEMU ofrece buen rendimiento mediante traducción dinámica y soporte para integración con hipervisores como KVM y Xen
- Puede usarse en múltiples sistemas como Linux, OS-X y Windows, y cuenta con un proceso de contribución open source bien establecido
- Tiene soporte activo de documentación y comunidad, y el seguimiento de errores y envío de parches se gestionan de forma eficiente
Introducción a QEMU de código abierto y al proyecto de emulación de Apple Silicon
QEMU es un emulador de máquinas y espacio de usuario de propósito general y de código abierto, además de una herramienta de virtualización. Un proyecto para la emulación de Apple Silicon y iPhone 11 se está desarrollando sobre QEMU, lo que ofrece varias ventajas frente a otras soluciones de virtualización, como escalabilidad, soporte comunitario y compatibilidad entre arquitecturas.
Resumen de QEMU
- QEMU ejecuta por software distintas máquinas mediante la función de emulación de sistema completo, sin necesidad de virtualización por hardware
- Aprovecha la tecnología de traducción dinámica (dynamic translation) para mejorar el rendimiento de la emulación
- Su integración con Xen y KVM permite soporte de hardware a nivel de hipervisor
- La emulación directa de CPU permite portabilidad y pruebas de sistemas operativos entre dispositivos (ej.: entorno ARMv7 → x86_64)
- La virtualización de API en espacio de usuario permite ejecutar binarios directamente entre entornos de arquitecturas heterogéneas
Usos principales y características
- El usuario puede controlar directamente configuraciones detalladas y el comportamiento mediante opciones de línea de comandos
- También se usa para integración con capas de administración open source de alto nivel como oVirt, OpenStack, virt-manager y libvirt
- Proporciona una interfaz de línea de comandos estable y una API de monitor
- Todo el código fuente se distribuye bajo la licencia GNU GPL v2
Documentación
- La documentación oficial está disponible en línea en el sitio web (https://www.qemu.org/documentation/)
- La documentación de la versión de desarrollo más reciente se genera con la herramienta Sphinx y la carpeta docs/ dentro del código fuente
Entorno de compilación
- QEMU soporta compilación multiplataforma en Linux moderno, OS-X, Win32 (toolchain Mingw64) y otros entornos UNIX
- El flujo principal de compilación consta de las etapas configure y make
- Los métodos de compilación para cada plataforma pueden consultarse en la wiki de QEMU (https://wiki.qemu.org/Hosts/Linux, etc.)
Guía para envío de parches
- El código fuente de QEMU se gestiona con el sistema de control de versiones Git
- Para enviar parches se recomienda usar
git format-patchygit send-email - Todos los parches deben incluir obligatoriamente una línea Signed-off-by y seguir la guía de estilo para desarrolladores (https://www.qemu.org/docs/master/devel/style.html)
- La utilidad
git-publishpermite simplificar procedimientos repetitivos y de gran volumen al enviar parches - También facilita el seguimiento de series junto con la gestión de versiones por parche (v1, v2)
Reporte de errores
- El reporte oficial de errores se gestiona mediante el issue tracker de GitLab (https://gitlab.com/qemu-project/qemu/-/issues)
- Si se usa una distribución basada en paquetes, se recomienda reportarlo primero en el tracker del proveedor del sistema operativo correspondiente
- En la wiki de QEMU hay materiales adicionales, como cómo redactar un bug report
Historial de cambios
- El historial y los cambios de QEMU pueden consultarse en la wiki oficial (https://wiki.qemu.org/ChangeLog/) o mediante el historial de Git
Contacto con la comunidad
- Se ofrecen diversos canales comunitarios como la lista de correo (qemu-devel@nongnu.org) e IRC (#qemu, irc.oftc.net)
- Más información sobre participación en la comunidad, orientación para principiantes y otros temas puede consultarse en la wiki de QEMU
Conclusión
QEMU puede usarse ampliamente para emulación de diversas arquitecturas y sistemas operativos, virtualización y automatización de desarrollo/pruebas, y Apple Silicon (como iPhone 11) también forma parte del proyecto de QEMU. Sus principales ventajas son la sólida documentación, el proceso de contribución, la activa gestión de errores y el soporte de la comunidad.
1 comentarios
Comentarios de Hacker News
Como parte de la discusión relacionada, comparten el hilo de Hacker News sobre el repositorio upstream enlace y el enlace de “Emulating an iPhone in QEMU”, donde se menciona este proyecto
El hecho de que arranque correctamente y al menos llegue hasta SpringBoard me parece un logro realmente impresionante
Esto merece llamarse la mejor hazaña de hacking de emulación, el verdadero jefe final. Quiero felicitar a todos los contribuyentes. Este logro también es una señal positiva para el proyecto Hackintosh. Aún queda mucho camino por recorrer, pero si las PC ARM se popularizan, el ambiente da para pensar que una emulación eficiente podría volverse realmente viable
Me da curiosidad si también soporta trollstore y la función de descifrado de IPAs
Creo que hace falta al menos intentar que una parte se integre upstream. De lo contrario, preocupa que al final desaparezca como intentos pasados
Me impresiona profundamente que hayan logrado arrancar un iPhone 11 en QEMU hasta el final. Mis respetos al equipo de ChefKissInc y a todos los que han contribuido para llegar hasta aquí
Desde la perspectiva de principiante, me da curiosidad saber si con este método se pueden instalar apps de iOS
Sigue siendo incómodo que en Windows la documentación oficial sobre cómo usar qemu, sus opciones y argumentos, sea insuficiente. Al final uno termina resolviéndolo a duras penas consultando distintos posts dispersos por internet o adaptando ejemplos basados en Linux
Me da curiosidad si esto es realmente una emulación completa de iOS, o si solo ejecuta binarios de iOS. Y también por qué se especifica justamente iPhone 11
Preguntan cómo corre el sistema operativo clásico de Mac en Qemu m68k