Microsoft Windows na plataforma Power com KVM e QEMU

Com o lançamento de KVM para Power se aproximando no horizonte, tem se falado muito sobre rodar o Microsoft Windows em Power.

Só uma rápida retrospectiva, KVM é a tecnologia do Kernel do Linux que permite rodar máquinas virtuais de forma muito eficiente. E o QEMU é o software que emula diversos aspectos de um computador (portas serias, rede, BIOS/firmware, disco etc). O QEMU existia antes do projeto KVM e possibilita rodar, de forma razoavelmente lenta devido a emulação de todos os aspectos do hardware, outro sistema operacional completo dentro dele.

Posteriormente o QEMU foi modificado para se integrar ao KVM e usufruir das facilidades de virtualização da CPU. Isso faz com que VMs rodem com performance nativa porque o código executável da VM deixa de ser emulado pelo QEMU e passa a rodar diretamente na CPU via o KVM. Outras acelerações de hardware que o QEMU+KVM repassam para a VM é acesso a RAM e IO, graças ao suporte a esses aspectos das novas CPUs da Intel e AMD. Significa que um SO x86 virtualizado roda muitíssimo bem sobre uma máquina real x86. Exemplos disso é tomar um equipamento Intel, instalar nele Linux com KVM e QEMU e aí rodar nele VMs Windows (um SO feito para Intel) e/ou uma versão Intel de Linux (o Linux mais comum).

O QEMU emula hoje o instruction set de diversas CPUs: PA-RISC, Power, s390 (o mainframe), x86, x86_64, ARM, Sparc e outros. Mas isso não é suficiente para rodar, por exemplo, Sparc Solaris ou PA-RISC HP-UX dentro do QEMU porque também é necessário o firmware/BIOS desses equipamentos originais livremente disponível e isso não se encontra na Internet. Além de que há questões de licença de uso desses firmwares. Mesmo que se consiga extrair os firmwares de uma antiga máquina PA-RISC, duvido que a HP permita seu uso fora de seu controle. Os firmwares são importantes porque quando qualquer SO boota ele espera encontrar certos aspectos da máquina, das placas, das portas de IO etc, e isso é provido exatamente pelo firmware.

Mas isso não é problema para a plataforma PC que é aberta e extremamente popular e bem suportada (estou falando da plataforma como um todo, não só da CPU Intel). Projetos como o SeaBIOS implementaram de forma aberta e livre o firmware/BIOS desses equipamentos, bem como de diversos periféricos: VGA, placas de rede etc. Sem isso, o SO que espera encontrar uma completa máquina tipo PC simplesmente não vai rodar.

As BIOS de projetos como o SeaBIOS somados a capacidade de emulação de hardware do QEMU são os ingredientes necessários para rodar MS Windows em qualquer lugar onde o QEMU rode, por exemplo Power, por exemplo s390 (mainframe).

Mas cuidado, isso não é necessáriamente suportado oficialmente pela Microsoft. E o problema maior é que o Windows é compilado para Intel, sua linguagem de máquina é de Intel e nem a CPU Power ou a CPU s390 entendem essa linguagem nativamente. Aí o QEMU tem que entrar em modo emulação total o que faz tudo ficar lento. O resumo da ópera, e a má notícia, é que rodar Windows em Power pode ser extremamente ineficiente a ponto de não ser usável (isso teoricamente já é possivel hoje mas gastei dois minutos procurando o SeaBIOS no Fedora Power Linux e não o encontrei). Não tenho notícias se alguém já rodou. Se algum leitor já ouviu falar, por favor me avise.

Mas há um outro aspecto extremamente interessante em tudo isso e que só eu aqui vou lhes contar. Com virtualização aberta e performática chegando em Power, com o tempo, provavelmente a IBM vai criar suporte para rodar AIX virtualizado em QEMU+KVM+Linux em Power. Significa que a IBM provavelmente liberará os firmwares da plataforma Power (BIOS e periféricos populares suportados pelo AIX como placas de rede, video, portas de IO etc), da mesma forma que o projeto SeaBIOS faz hoje com a plataforma PC.

E isso permitirá rodar o inabalável AIX em qualquer plataforma física onde o QEMU rode, por exemplo Intel. Então, meus caros UNIX lovers, respirem fundo e preparem seus laptops para rodar AIX. Não necessariamente com performance, mas será tecnicamente viável.

2 thoughts on “Microsoft Windows na plataforma Power com KVM e QEMU”

  1. Eu nunca trabalhei com a arquitetura Power, porém eu li um pouco sobre o projeto OpenPower (http://openpowerfoundation.org) ele é uma iniciativa da IBM, e uma parte do projeto é, pelo que eu intendi, pretende tornar o firmware OpenSource.
    Como esse projeto iniciou em Dezembro de 2013, acho eu que deve ser uma iniciativa deles também esse suporte da arquitetura Power no KVM.
    Outra coisa interessante para quem trabalha com Power, é que esse projeto pretende também distribuir o design e as especificações da arquitetura.

  2. Este post é a 1ª vez que vejo no horizonte a possibilidade de emular AIX em x86_64 porque aparentemente a BIOS de Power foi disponibilizada para o QEMU.

Leave a Reply

Your email address will not be published. Required fields are marked *