
iPhone 11 emulado no QEMU
QEMU é um emulador e virtualizador de máquina & espaço de usuário genérico e de código aberto.
QEMU é capaz de emular uma máquina completa em software sem qualquer necessidade de suporte de virtualização de hardware. Usando tradução dinâmica, ele alcança um desempenho muito bom. QEMU também pode integrar-se com os hipervisores Xen e KVM para fornecer hardware emulado enquanto permite que o hipervisor gerencie a CPU. Com suporte a hipervisor, o QEMU pode alcançar desempenho próximo ao nativo para CPUs. Quando o QEMU emula CPUs diretamente, ele é capaz de executar sistemas operacionais feitos para uma máquina (ex.: uma placa ARMv7) em uma máquina diferente (ex.: uma placa PC x86_64).
QEMU também é capaz de fornecer virtualização de API de espaço de usuário para interfaces de kernel Linux e BSD. Isso permite que binários compilados para uma ABI de arquitetura (ex.: a ABI Linux PPC64) sejam executados em um host usando uma ABI de arquitetura diferente (ex.: a ABI Linux x86_64). Isso não envolve nenhuma emulação de hardware, apenas emulação de CPU e syscall.
O QEMU visa se adequar a uma variedade de casos de uso. Ele pode ser invocado diretamente por usuários que desejam ter controle total sobre seu comportamento e configurações. Ele também visa facilitar a integração em camadas de gerenciamento de nível superior, fornecendo uma interface de linha de comando estável e uma API de monitor. Ele é comumente invocado indiretamente através da biblioteca libvirt ao usar aplicativos de código aberto como oVirt, OpenStack e virt-manager.
O QEMU como um todo é lançado sob a GNU General Public License, versão 2. Para detalhes completos de licenciamento, consulte o arquivo LICENSE.
A documentação pode ser encontrada online em <https://www.qemu.org/documentation/>. A documentação para a versão de desenvolvimento atual disponível em <https://www.qemu.org/docs/master/> é gerada a partir da pasta docs/ na árvore de código fonte e é construída por Sphinx <https://www.sphinx-doc.org/en/master/>_.
QEMU é um software multiplataforma destinado a ser compilável em todas as plataformas Linux modernas, OS-X, Win32 (através da toolchain Mingw64) e uma variedade de outros alvos UNIX. Os passos simples para compilar o QEMU são:
.. code-block:: shell
mkdir build cd build ../configure make
Informações adicionais também podem ser encontradas online através do site do QEMU:
<https://wiki.qemu.org/Hosts/Linux>_<https://wiki.qemu.org/Hosts/Mac>_<https://wiki.qemu.org/Hosts/W32>_O código fonte do QEMU é mantido sob o sistema de controle de versão GIT.
.. code-block:: shell
git clone https://gitlab.com/qemu-project/qemu.git
Ao enviar patches, uma abordagem comum é usar 'git format-patch' e/ou 'git send-email' para formatar & enviar o e-mail para a lista de discussão [email protected]. Todos os patches enviados devem conter uma linha 'Signed-off-by' do autor. Os patches devem seguir as diretrizes estabelecidas na seção de estilo <https://www.qemu.org/docs/master/devel/style.html>_ do Guia do Desenvolvedor.
Informações adicionais sobre o envio de patches podem ser encontradas online através do site do QEMU
<https://wiki.qemu.org/Contribute/SubmitAPatch>_<https://wiki.qemu.org/Contribute/TrivialPatches>_O site do QEMU também é mantido sob controle de versão.
.. 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/>_Um utilitário 'git-publish' foi criado para tornar o processo acima menos trabalhoso, e é altamente recomendado para fazer contribuições regulares, ou até mesmo apenas para enviar revisões consecutivas de séries de patches. Ele também requer uma configuração funcional do 'git send-email', e por padrão não automatiza tudo, então você pode querer passar pelos passos acima manualmente uma vez.
Para instruções de instalação, por favor vá para
<https://github.com/stefanha/git-publish>_O fluxo de trabalho com '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
Sua série de patches será enviada e marcada como my-feature-v1 se você precisar referir-se a ela no 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
Sua série de patches será enviada com a tag 'v2' no assunto e a ponta do git será marcada como my-feature-v2.
O projeto QEMU usa issues do GitLab para rastrear bugs. Bugs encontrados ao executar código construído a partir do git do QEMU ou fontes lançadas upstream devem ser reportados através de:
<https://gitlab.com/qemu-project/qemu/-/issues>_Se estiver usando QEMU através de um pacote binário pré-construído de um fornecedor de sistema operacional, é preferível reportar bugs primeiro ao rastreador de bugs do próprio fornecedor. Se o bug também for conhecido por afetar o código upstream mais recente, ele também pode ser reportado via GitLab.
Para informações adicionais sobre relato de bugs, consulte:
<https://wiki.qemu.org/Contribute/ReportABug>_Para histórico de versões e notas de lançamento, visite <https://wiki.qemu.org/ChangeLog/>_ ou veja o histórico do git para informações mais detalhadas.
A comunidade QEMU pode ser contatada de várias maneiras, sendo os dois principais métodos e-mail e IRC
<mailto:[email protected]>_<https://lists.nongnu.org/mailman/listinfo/qemu-devel>_Informações sobre métodos adicionais de contatar a comunidade podem ser encontradas online através do site do QEMU:
<https://wiki.qemu.org/Contribute/StartHere>_