Implementada a emulação do iPhone 11 no QEMU
(github.com/ChefKissInc)- QEMU emula por software máquinas e user space de várias arquiteturas
- Recentemente, foi divulgado um projeto de emulação de Apple Silicon e iPhone 11 baseado em QEMU
- O QEMU oferece bom desempenho com tradução dinâmica e suporte à integração com hipervisores como KVM e Xen
- Pode ser usado em vários sistemas, como Linux, OS-X e Windows, e conta com um processo de contribuição open source bem estabelecido
- O suporte de documentação e comunidade é ativo, com rastreamento de bugs e envio de patches gerenciados de forma eficiente
Introdução ao QEMU open source e ao projeto de emulação do Apple Silicon
O QEMU é um emulador open source de uso geral para máquinas e user space, além de uma ferramenta de virtualização. Um projeto para emulação de Apple Silicon e iPhone 11 está sendo desenvolvido com base no QEMU, oferecendo várias vantagens em relação a outras soluções de virtualização, como escalabilidade, suporte da comunidade e compatibilidade entre arquiteturas.
Visão geral do QEMU
- O QEMU executa diversas máquinas por software, sem virtualização de hardware, por meio do recurso de emulação de sistema completo
- Utiliza a tecnologia de tradução dinâmica (dynamic translation) para melhorar o desempenho da emulação
- Com integração a Xen e KVM, pode oferecer suporte de hardware em nível de hipervisor
- A emulação direta de CPU permite portabilidade e testes de sistemas operacionais entre dispositivos (ex.: ARMv7 → ambiente x86_64)
- A virtualização de API em user space permite executar binários diretamente entre ambientes de arquiteturas heterogêneas
Principais usos e características
- O usuário pode controlar diretamente configurações detalhadas e o modo de funcionamento por meio de opções de linha de comando
- Também é usado para integração com camadas open source de gerenciamento de alto nível, como oVirt, OpenStack, virt-manager e libvirt
- Fornece uma interface de linha de comando estável e API de monitor
- Todo o código-fonte é distribuído sob a licença GNU GPL v2
Documentação
- A documentação oficial é fornecida online no site (https://www.qemu.org/documentation/)
- A documentação da versão de desenvolvimento mais recente é gerada a partir da pasta docs/ no código-fonte com a ferramenta Sphinx
Ambiente de build
- O QEMU oferece suporte a build multiplataforma em Linux recente, OS-X, Win32 (toolchain Mingw64) e outros ambientes UNIX
- O fluxo principal de build é composto pelas etapas configure e make
- Os métodos de build para cada plataforma podem ser consultados no wiki do QEMU (https://wiki.qemu.org/Hosts/Linux etc.)
Guia para envio de patches
- O código-fonte do QEMU é gerenciado com o sistema de controle de versão Git
- Ao enviar patches, é recomendado usar git format-patch e git send-email
- Todos os patches devem incluir obrigatoriamente a linha Signed-off-by e seguir o guia de estilo para desenvolvedores (https://www.qemu.org/docs/master/devel/style.html)
- O utilitário git-publish pode simplificar procedimentos repetitivos e de grande volume para envio de patches
- Também é possível rastrear facilmente séries de patches junto com o gerenciamento de versões por patch (v1, v2)
Relato de bugs
- Há um canal oficial para reporte de bugs via issue tracker do GitLab (https://gitlab.com/qemu-project/qemu/-/issues)
- Ao usar distribuições baseadas em pacotes, recomenda-se priorizar o reporte no rastreador do respectivo fornecedor do sistema operacional
- O wiki do QEMU oferece materiais adicionais, como orientações sobre como escrever bug reports
Histórico de mudanças
- O histórico e as mudanças do QEMU podem ser consultados no Wiki oficial (https://wiki.qemu.org/ChangeLog/) ou no histórico do Git
Contatos da comunidade
- São oferecidos diversos canais da comunidade, como mailing list (qemu-devel@nongnu.org) e IRC (#qemu, irc.oftc.net)
- Informações adicionais sobre participação na comunidade e orientação para iniciantes podem ser consultadas no Wiki do QEMU
Conclusão
O QEMU pode ser amplamente utilizado para emulação de várias arquiteturas e sistemas operacionais, virtualização e automação de desenvolvimento/testes, e o Apple Silicon (como o iPhone 11) também faz parte do projeto QEMU. Seus principais pontos fortes são a documentação robusta, o processo de contribuição, a gestão ativa de bugs e o suporte da comunidade.
1 comentários
Comentários do Hacker News
Como discussão relacionada, foram compartilhados o thread do Hacker News sobre o repositório upstream link e o link de “Emulating an iPhone in QEMU”, que menciona este projeto
O fato de conseguir dar boot corretamente e pelo menos chegar até o Springboard é um feito realmente impressionante
Dá vontade de chamar isso de a melhor hackeada de emulação, um verdadeiro chefão final. Quero parabenizar todos os contribuidores. Essa conquista também é um sinal positivo para o projeto Hackintosh. Ainda há um longo caminho pela frente, mas se PCs ARM se tornarem amplamente difundidos, parece plausível esperar uma emulação eficiente de verdade
Fiquei curioso se isso também suporta trollstore e a funcionalidade de descriptografar IPAs
Acho que deveria haver pelo menos alguma tentativa de levar parte disso para o upstream. Caso contrário, existe a preocupação de que possa acabar desaparecendo como tentativas do passado
Fiquei profundamente impressionado por terem conseguido fazer o iPhone 11 dar boot por completo no QEMU. Meus elogios à equipe ChefKissInc e a todos os contribuidores que trouxeram isso até aqui
Como iniciante, tenho uma curiosidade: queria saber se é possível instalar apps de iOS dessa forma
Ainda é incômodo no ambiente Windows, porque a documentação oficial sobre como usar o qemu, suas opções e argumentos é fraca. Acabei resolvendo na marra consultando vários textos espalhados pela internet ou puxando exemplos baseados em Linux
Fiquei na dúvida se isso é de fato uma emulação completa do iOS ou se apenas executa binários de iOS. E também por que especificaram justamente o iPhone 11
Pergunta sobre como o sistema operacional clássico do Mac roda no Qemu m68k