Após ler muitos comentários sobre o bochs, decidimos testá-lo para saber realmente (na prática), qual o nível de evolução em que se encontra esta ferramente open source, similar ao VMWare que é comercial. Acompanhe os resultados, clicando em DETALHES...
O Bochs é um emulador de PC x86 (pode emular um 386, 486 ou Pentium), open source, escrito em C++, multiplataforma, produzido para ser utilizado desde máquinas x86, PPC, Alpha, com sistemas operacionais guest como MS DOS, Win95, WinNT4, GNU/Linux. Ele possui uma boa documentação e está em pleno desenvolvimento, como se pode notar no site do programa.
Para sabermos como está o nível de emulação do projeto, decidimos testar o bochs com uma instalação padrão do Windows 98 SE em Português, em uma máquina de performance mediana (um Duron 850 MHz com 128 Mbytes de RAM), usando pacotes binários, ao invés de uma compilação dos fontes.
Optamos por instalar o Bochs no Mandrake (no teste usamos o Mandrake 9Beta), pois já existe um pacote binário RPM i586 para ele (versão 1.4), mas no site do Bochs é possível baixar uma versão RPM compilada para i386 (testamos no Suse 8.0 e funcionou perfeitamente).
A primeira coisa a ser feita, após instalar o Bochs é criar um disco virtual com o utilitário bximage que acompanha o pacote. A criação é feita de modo interativo, sendo que a primeira pergunta é se desejamos criar uma imagem de hd ou de disquete. Depois de informado todos os parâmetros (como tamanho, nome do arquivo), o utilitário finalizará a criação da imagem informando o número de cilindros, cabeças e setores por trilha da imagem (caso você deseje repetir esta experiência, ANOTE estes valores, pois eles serão necessários mais tarde).
Depois de criada a imagem, será necessário formatá-la. Existe várias maneiras de se fazer isso, mas optamos por utilizar o método que mais se assemelha a uma instalação do Windows tradicional. Para tanto é necessário criar um arquivo de configuração, com a opção de boot por um disquete.
Existe um arquivo de configuração modelo que vem junto com o pacote e que se chama bochsrc-sample.txt, o qual utilizamos para gerar o nosso arquivo de configuração. Basicamente é necessário escolher uma das roms de bios que vem com o programa informando o path correto dele (optamos pela BIOS-bochs-latest), além da bios vga (escolhemos a VGABIOS-elpin-2.40), a quantidade de memória RAM que se deseja emular, além de habilitar ou não o drive flexível, bem como informar os dados do hd e informar qual será o drive de boot. Além destes parâmetros, existem muitos outros, como informações para emular a placa de som e de rede (no teste, optamos por não emular nenhuma delas), além do drive de cd-rom, bem como ações no caso de ocorrerem erros, aquivo para log, ips, uso do mouse por default, etc.
Após a primeira configuração (com opção de boot por disquete real), iniciamos a instalação do Windows. Como primeira tarefa, utilizamos o disquete de boot do Windows 98 para criar uma partição e formatar a imagem do nosso hd. Note que é necessário informar ao bochs qual o arquivo de configuração que ele deve usar, antes de iniciar a simulação (esta parte é interativa, com um menu bem simples em modo texto).
Logo no início da instalação do Windows 98, tivemos problemas na detecção do cd-rom. A documentação recomendava usar um driver da creative, mas isso iria dificultar o processo de intalação do sistema guest, por isso optamos por montar a unidade com loop device para copiar a pasta de instalação do windows do cd-rom para a imagem do hd.
Primeiro deve-se configurá-lo com um comando similar a:
# losetup /dev/loop0 win98.img -o 32256
E depois montar a imagem propriamente dito:
# mount -o loop /dev/loop0 /mnt/win98
Depois de copiado a pasta, desmontamos a unidade com o comando:
# umount /mnt/win98
E limpamos a configuração do loop device com:
# losetup -d /dev/loop0
Depois disso, a instalação prossegue como no Windows, sendo que notamos alguns problemas no processo:
- Primeiro, não conseguimos encontrar a sequência exata no teclado para que o mouse pudesse ser alternado entre o sistema guest e o mandrake (tivemos que usar a sequência do iniciar menu - no caso CTRL+ESC - configurado no KDE3 para conseguir, por exemplo, desabilitar o mouse do sistema guest e permitir "desligar" a máquina virtual.
- Depois de entrar no sistema guest e sair, se retornamos durante o processo de instalação do Windows o teclado nem sempre funciona (ou seja, depois que iniciar a instalação do Windows, não é recomedável que se saia da janela do emulador, para por exemplo, usar o Konqueror. Claro que isso pode ser contornado, se iniciarmos, por exemplo, duas sessões do X, uma para usar o Konqueror e outro apenas para usar o bochs.
- Durante o processo final de instalação, ocorrem alguns erros mais graves, do tipo panic (aparentemente pelo maior uso do processador, que o instalador do windows necessita). Como nós não alteramos a configuração do Bochs para ignorar erros do tipo panic, foi necessário responder a uma pergunta interativa do bochs, instruíndo a continuar a emulação. Não houve nenhum problema aparente no resultado final da instalação do sistema guest (na documentação informa que caso ocorra um erro do tipo panic é possível que o sistema trave, mas isso não ocorreu conosco).
O processo de instalação do windows é exatamente igual ao tradicional, com a ressalva que ele é extremamente lento no Bochs. No nosso caso, o processo levou cerca de 7 horas para ser concluído, sendo que mesmo depois de instalado o sistema guest windows 98 continua extremamente lento. Além disso, a resolução (por enquanto) de vídeo é de apenas 640x480 com 16 cores. Devido a baixa performance do bochs, decidimos não testar dispositivos de hardware como a placa de rede e placa de som (que havíamos pensando em ativar depois de o Windows estar instalado).
Para finalizar, chegamos a conclusão que o Bochs ainda não consegue ser uma solução viável para os usuários que precisem de uma solução para o software legado da plataforma Windows. Infelizmente, para estes usuários, ainda é necessário recorrer a softwares proprietários, como o VMWare e Win4Lin. Contudo, com a evolução constante na velocidade dos processadores, talvez este rendimento baixo acabe não sendo tão significativo futuramente, além do que o projeto continua em plena atividade, podendo surgir melhorias no código em termos de performance. Além disso, existe o projeto do plex86, que é especificamente para virtualização do PC e que terá um rendimento melhor na plataforma x86 (mas o projeto não está tão ativo quanto o Bochs, sendo que nem existe uma versão estável ainda e a documentação ainda está em construção).
Postado por em 16 de agosto de 2002, 06:22 AM
Essa é uma comparação injusta!
O VMWARE não é um emulador completo. Ele só emula alguns dispositivos e não a CPU por completo. O VMWARE passa as instruções diretamente para a CPU do seu micro processar, ele não cria uma cpu virtual.
O Bochs cria uma CPU virtual, ele emula cada instrução do processador, por isso é *muito* mais lento.
É exatamente por isso que o Bochs pode rodar em outras arquiteturas (ALPHA, etc), e o VMWARE só pode rodar em máquinas x86.
Jair,
Concordo com o colega Jair. Se for para fazer uma comparacao justa, compare o Plex86 com o VMWare que ai sim fica mais justo.
[]s
Postado por: Otavio Salvador em agosto 18, 2002 05:24 PM Bom mesmo é o Virtual PC, no site da Connectix tem um trial completo de 45 dias que roda o Windows 98 muito bem até no meu Pentium II 300, além do que o VMWare só roda em Windows tipo NT.
Já o bochs é uma pena que além de lento tem uma péssima interface com o usuário.
E tenho dito.
Postado por: Márcio em janeiro 26, 2003 09:29 PMPara poder voltar a usar o mouse no X, pressione o botao do meio. Idem para voltar.
Para simplificar a operacao de copia de arquivos de/para as imagens DOS, pode-se usar o mtools.
O problema do teclado eh simples. Saia e volte, e pressione a tecla ALT - isso eh bug do windows, nao do bochs.
Postado por: Alexandre Strube em março 13, 2003 09:06 PM
O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.