Saiba como emular diversas arquiteturas computacionais para testar diferentes distribuições Linux

QEMU-emuladorhardware-linuxdescomplicado

Entre as principais técnicas de virtualização existentes, a emulação de hardware (hardware emulation) é considerada bastante complexa, pois tende a simular praticamente todas as particularidades do hardware. Esse recurso é essencial para desenvolvedores de firmware de hardware, por exemplo, pois permite a validação de aplicativos sem a presença de um hardware real. Como desvantagem, apresenta um baixo desempenho, já que perde a eficiência ao interpretar ou traduzir as instruções da máquina real. Entretanto, pode ser útil para você que deseja emular diversas arquiteturas computacionais para testar a execução de diferentes distribuições Linux na sua máquina.

AUMENTE SUA PRODUTIVIDADE!
Crie e administre aplicações entre ambientes diferentes. Tenha agilidade e padronização na entrega dos serviços de TI. E, assim, ganhe tempo e seja eficiente na entrega desses serviços. Saiba como

Emulação de hardware com o QEMU

O QEMU é um emulador de hardware que permite que você execute outros sistemas operacionais facilmente no seu computador sem a necessidade de instalá-los. Analogamente, comparado ao software popular de virtualização VirtualBox, pois a emulação de hardware também é um tipo de virtualização. Contudo, o VirtualBox é “menos complexo” enquanto o QEMU é voltado para interpretação ou tradução das instruções da máquina hospedeira. Por exemplo, com o QEMU você pode executar outro sistema operacional sobre o seu sistema operacional já instalado na máquina emulando diversas arquiteturas computacionais existentes, bem como: x86, x86-64, PowerPC e ARM.

progettazione-hardware-e-firmware-2

O QEMU é gratuito e de código aberto, diferentemente do VirtualBox. É licenciado sob a GPL 2 e tem a capacidade de executar com os hypervisors open source KVM e XEN (se você ativar a tecnologia de virtualização da seu BIOS primeiro) e oferece muitas opções de virtualização. Por já estar embutido no kernel Linux há alguns anos (desde da versão 2.6) e possuir desenvolvimento unificado (QEMU + KVM), usarei o hypervisor KVM nesse artigo.

Mão na Massa

IMPORTANTE
Se você deseja apenas virtualizar um sistema é extremamente recomendado que use o VirtualBox :)

Com o QEMU é possível trabalhar em dois modos: a emulação total do sistema e a emulação no modo de usuário. No primeiro modo, é possível uma emulação de um sistema integral, incluindo o processador e periféricos. No modo usuário, disponível somente para o sistema Linux, é possível executar um processo construído para uma determinada CPU em outra. Portanto, um processo Linux compilado em uma plataforma PowerPC poderá ser executado na x86, e vice-versa.

Além disso, o QEMU oferece muitas opções, arquiteturas e formatos para usar, e veremos muitos exemplos diferentes para entender as formas possíveis de alcançar nossos objetivos usando o QEMU.

1 – Instalação

O QEMU está disponível para instalar a partir de quase todos os repositórios oficiais de distribuição Linux:

Ubuntu/Linux Mint

sudo apt install qemu qemu-kvm libvirt-bin

Fedora

sudo dnf install qemu qemu-kvm

Red Hat/CentOS

sudo yum install qemu qemu-kvm

openSUSE

sudo zypper in qemu

Arch Linux

sudo pacman -S qemu

2 – Usando

O QEMU oferece muitas opções, arquiteturas e formatos para usar, e veremos muitos exemplos diferentes para entender as formas possíveis de alcançar diferentes objetivos usando o QEMU.

Primeiro, é preciso criar uma imagem de disco rígido virtual para instalar um sistema operacional virtual em algum lugar. Esse arquivo de imagem conterá todos os dados e arquivos do sistema operacional após a instalação. Para fazer isso, será usado a ferramenta “qemu-img“:

qemu-img create -f qcow2 arquivo.img 20G

Onde é criado um arquivo de imagem com limite de tamanho 10GB e formato qcow2 (formato padrão para imagens QEMU).

Observe que um novo arquivo chamado “arquivo.img” agora é criado no diretório atual. Além disso, veja que o arquivo de imagem criado possui apenas 150KB, não 20GB. Pois, o QEMU não usará nenhum espaço, a menos que seja necessário pelo sistema operacional virtualizado, mas configurará o espaço máximo permitido para essa imagem apenas para 20GB :)

Assim, depois de criado o arquivo de imagem, tendo em mãos um arquivo ISO de uma distribuição Linux ou qualquer outro sistema operacional, é possível agora testá-lo usando o software QEMU:

qemu-system-x86_64 -m 1024 -boot d -enable-kvm -smp 3 -net nic -net user -hda testing-image.img -cdrom ubuntu-16.04.2-desktop-amd64.iso

Onde,

qemu-system-x86_64: representa a arquitetura adotada;
-m 1024: quantidade de RAM que queremos fornecer para o QEMU ao executar o arquivo ISO;
-boot d: opção de inicialização que nos permite determinar a ordem de inicialização. A opção ‘d’ significa que o CD-ROM será o primeiro. Assim, é usado a opção -cdrom ao final.
-enable-kvm: esta é uma opção muito importante, permite usar a tecnologia KVM para emular a arquitetura que queremos; no caso x86_64. Certifique-se de que as opções de virtualização estão ativadas no BIOS do seu computador;
-sip 3: usar 3 núcleos para executar a imagem virtual que o tornará mais rápido. Você deve alterar esse número de acordo com CPU do seu computador;
-net nic-net user: habilitar uma conexão de rede Ethernet para estar disponível na máquina virtual em execução, por padrão;
-hda arquivo.img: caminho para o disco rígido que será usado. No nosso caso, foi o arquivo.img criado anteriormente;
-cdrom ubuntu-16.04.2-desktop-amd64.iso: arquivo ISO do Ubuntu 16.04

Depois de executar o comando, o QEMU iniciará uma janela autônoma:

QEMU-linuxdescomplicado

Agora, se, depois de instalado, deseja inicializar a partir do arquivo de imagem ao invés do arquivo ISO (quando você termina a instalação e deseja iniciar o sistema instalado), você pode remover a opção ‘-cdrom’ e alterar a ordem de boot do driver de disco para o disco rígido do sistema virtual usando a opção ‘-boot c':

qemu-system-x86_64 -m 1024 -boot c -enable-kvm -smp 3 -net nic -net user -hda arquivo.img

Por fim, note que mostrei a arquitetura x86_64 para executar a emulação. Mas, se você quiser, você pode escolher entre muitas outras arquiteturas disponíveis para testar seus sistemas:

ls /usr/bin | grep qemu-system*

Por exemplo, se você deseja emular a arquitetura i386, você deve executar o seguinte comando:

qemu-system-i386 -m 1024 -boot d -enable-kvm -smp 3 -net nic -net user -hda arquivo.img

Considerações Finais

O QEMU é uma tecnologia muito eficaz para emular sistemas operacionais virtuais. Além de ser gratuito e de código aberto, está disponível em todos os repositórios principais das distribuições Linux, o que o torna um dos melhores emuladores de hardware.

Óbvio que esse material é apenas introdutório. Mas, é oferecido enormes possibilidades de uso e testes usando o QEMU. Tudo depende dos seus objetivos e nível de conhecimento. Mas, como dito anteriormente, caso seus objetivos sejam meramente virtualização de sistemas sem se ater ao hardware emulado, o software VirtualBox é suficiente para as suas necessidades. O QEMU é recomendado quando deseja-se emular o desempenho de outros sistemas em ambientes computacionais distintos, por exemplo.

Para mais detalhes, recomendo consultar a documentação oficial e a página wiki do QEMU :)


Via | Fosspost

Ricardo Ferreira

Ricardo Ferreira

Fundador do Linux Descomplicado - LD.

Sempre em busca de novos conhecimentos, preza por conteúdo de qualidade e auto-explicativo. Por isso, persiste em criar um site com artigos relevantes para todos os leitores do Linux Descomplicado!
Ricardo Ferreira

Comentários

comentários


VOCÊ TAMBÉM PODERÁ LER...