Home > Notícias

Como rodar aplicações Windows no Linux, com emulador open source

Usuário detalha como fazer isso usando o Qemu nos computadores de uma pequena empresa

Por Nando Rodrigues, da PC WORLD

13/11/2007 às 9h49

Foto:

linux_150Instalar mais de um sistema operacional em um PC, quer por dual boot ou por intermédio de softwares de virtualização como o Virtual PC 2007 ou VMWare Server, permite que o usuário tire proveito do que de melhor cada plataforma oferece sem que ele tenha de abrir mão do seu sistema operacional preferido.

Configurar adequadamente essas soluções exige mais do que o usuário comum tem condições de oferecer, independentemente de a instalação ser realizada no Windows ou em alguma distribuição do Linux. Para entender a complexidade desse processo, conversamos com o Cristiano Meira Magalhães, que utiliza Linux nos PCs de sua pequena empresa, e que relata, neste Blue Print, as dificuldades encontradas e o que fazer para contorná-las.

Engenheiro com grande experiência com o ambiente de código aberto, Magalhães recentemente passou a utilizar um conjunto de aplicativos de cálculos na área de construção civil desenvolvidos pela AltoQi e que rodam em Windows.

Adepto do Linux também na estação de trabalho, ele foi obrigado a criar uma partição no PC – equipado com chip Intel Pentium IV de 2,8 GHz, com um HD de 80 gigabytes e 1GB de memória RAM – e, nela, instalar o Windows XP. Como essas são as únicas aplicações que usam a plataforma Microsoft, Magalhães precisava reinicializar o equipamento toda vez que tinha de acessar um software diferente.

“Se fosse produtivo executar dualboot, eu não me importaria em deixar as coisas como estavam. Só que acabava perdendo todos os benefícios de estar usando o Linux na minha estação de trabalho”, diz Magalhães. Usuário do Ubuntu Fiesty, o engenheiro identificou duas possibilidades para solucionar o problema.

A primeira delas utilizando o Wine, uma camada de software open source que tenta transformar todas as chamadas de funções Windows (como bibliotecas DLL) em chamadas compatíveis, só que no Linux.

Ele relata que já teve sucesso com a execução do AutoCAD R14 no PC com o Wine, mas as versões posteriores do software não funcionaram. Para completar, Magalhães descobriu que os programas da AltoQi utilizam a tecnologia de hardlock (que vincula o software ao hardware, para impedir uso de cópias ilegais) e são compilados utilizando recursos mais recentes do Windows, razão pela qual seu uso sob a camada do Wine não funcionou.

Magalhães chegou a fazer testes com o VirtualBox, mas acabou optando por outro emulador, também em código livre, chamado Qemu. “O projeto deste emulador
está mais maduro, estável e faz parte do repositório oficial do Ubuntu, distribuição que utilizo”, diz.

O Qemu, que também funciona como virtualizador, permite a execução de sistemas operacionais e programas escritos para um determinado hardware (ou vinculado a ele, como é o caso da técnica de hardlock) por meio de tradução dinâmica – em tempo real – dos recursos exigidos para o processamento.

Segundo o engenheiro, este método torna a execução das tarefas um pouco mais lenta, fato que pode ser corrigido utilizando um equipamento mais robusto, ou optar pelo módulo acelerador, o KQemu, que é distribuído junto com o emulador.

Passo-a-passo
A instalação do Qemu e do Windows dentro do Ubuntu não é difícil, mas requer uma série de passos que precisam ser seguidos. A primeira coisa a fazer, explica Magalhães, é – dentro do Ubuntu – instalar o Qemu: $sudo aptitude install qemu. A seguir, é necessário instalar o Windows XP (ou o sistema operacional que o usuário desejar).

Pode copiar o CD de instalação do XP para um arquivo de imagem ISO no disco rígido: $dd if=/dev/cdrom of=cdwinxp.iso bs=1024 e depois $ qemu-img create -fqcow hdc.img 5000M. “Usei o qemu-img para criar uma imagem de um disco de 5 GB que viria a ser o meu HD virtual dentro do Qemu”, ressalta. Mas também é possível instalar o XP diretamente do CD: $qemu -m 192 -win2k-hack -usb -hda hdc.img -cdrom /dev/hdc -boot d.

Depois disso, é preciso fazer o Qemu "enxergar" a imagem criada como um CD ROM virtual: $qemu -m 192 -win2k-hack -usb -hda hdc.img -cdrom cdwinxp. iso -boot d e executar o XP a partir do emulador: $qemu -m 190 -usb -win2k-hack -boot cd_winxp.img.

Como os programas da AltoQi utilizam o recurso de hardlock instalado em um pendrive, foi necessário fazer a instalação reconhecer as portas USB da máquina virtual. Para obter uma lista das portas disponíveis: $ lsusb.

Agora, execute o Windows no Qemu: $ qemu -m 190 -usb -win2k-hack -boot c hd_winxp.img e “informe” a ele que existem portas USB disponíveis. Para isso, pressione, simultaneamente, as teclas CTRL, ALT e 2 e, na janela do shell, digite: (qemu) usb_add host:vendor_id:product_id, onde vendor_id e product_id são os resultados obtidos no comando $ lsusb acima (por exemplo: (qemu) usb_add host:0529:0001).

Habilite mais recursos
Com as configurações acima, o usuário passa a contar com um arquivo de imagem “hd_winxp.img” pronto para ser usado pelo Qemu. Para ter acesso a outros recursos de hardware e software do Linux (como reconhecer o drive óptico; acessar a rede, entre outros) como sendo um CD-ROM do Windows XP emulado, basta digitar: $ qemu -cdrom /dev/hdc-snapshot -m 384 -usb -usbdevice host:0529:0001 -win2k-hack -localtime -net nic -net tap,ifname=tun0-full-screen –boot c -hda$DIR_SO/hd_winxp.img -hdb$DIR_SO/hd_swap.img. A tabela abaixo mostra o que cada um destes parâmetros representa.

Magalhães ressalta que existem outras boas ferramentas de emulação e virtualização, e cita o VMWare."Mas a dupla Qemu e KQemu não deixa nada a dever e resolveu meu problema”, completa.

Junte-se a nós e receba nossas melhores histórias de tecnologia. Newsletter por e-mail Newsletter por e-mail