Uma introdução ao Wine

Uma introdução ao Wine

Enquanto o VMware e outros softwares de virtualização criam um ambiente virtual, que permite executar uma cópia do Windows e rodar os programas sobre ela, o Wine usa uma abordagem mais direta: simplesmente rodar os programas diretamente. Isso é enfatizado pelo próprio nome do projeto, onde o Wine é abreviação de “Wine is not an emulator”, ou seja, “o Wine não é um emulador”.

Originalmente, não existe qualquer compatibilidade entre os programas do Windows e Linux: os dois sistemas não possuem sequer uma base comum, são realmente duas coisas bem diferentes. A equipe do Wine faz um trabalho de formiguinha, incluindo suporte às funções usadas no Windows, uma a uma. O conjunto destas funções é chamado de API (application programing interface). O Wine é justamente uma implementação da API do Windows, que permite executar os programas no Linux como se fossem aplicativos nativos.

Para evitar acusações relacionadas a uso de propriedade intelectual, todo o desenvolvimento é feito usando um sistema clean-room (“sala limpa”, em analogia aos ambientes livres de partículas, usados para a fabricação de processadores e outros equipamentos sensíveis). Nesse processo, um desenvolvedor, com acesso ao software ou ao código que será duplicado realiza testes e descreve seu funcionamento e o time principal desenvolve a nova implementação com base nessa descrição escrita, sem ter acesso ao código original.

A necessidade de tomar tantos cuidados, combinada com a própria complexidade da API do Windows, com todas as suas chamadas escondidas e bugs (que são muitas vezes utilizados por alguns aplicativos para implementar recursos adicionais) faz com que o desenvolvimento do Wine seja bastante lento.

O Wine foi provavelmente o maior alpha da história. Foram 12 anos desde o anúncio da primeira versão, em 1993. Em outubro de 2005 foi finalmente lançada a primeira versão beta, que indicou uma mudança de rumos no projeto.

Até então, mudanças estruturais aconteciam a cada novo release, fazendo com que muitos programas que rodavam em uma versão não funcionassem mais na seguinte. Para complicar, as distribuições costumavam aplicar um grande volume de patches adicionais, com o objetivo de melhorar a compatibilidade com aplicativos específicos. Isso aumentava ainda mais as diferenças e dificultava muito o uso do Wine, fazendo com que a única forma de ter certeza que um determinado software iria funcionar seria usar a mesma versão e distribuição que o autor da dica estava usando.

A entrada no estágio beta indicou que o software passou a ser muito mais estável e previsível, fazendo com que as novas versões simplesmente incluam novos recursos e não novos problemas. A fase beta continuou por mais quase 3 anos, até que foi lançada a versão 1.0, em junho de 2008, nada menos do que 15 anos após o início do projeto.

A partir de então, o Wine passou a utilizar uma metodologia de desenvolvimento simular à usada no kernel, onde as versões estáveis recebem final par (1.0, 1.2, etc.) e as versões de desenvolvimento recebem final ímpar (1.1, 1.3, etc.). Isso torna a escolha muito mais simples, já que você pode começar com a versão estável mais atual e dar uma olhada na versão de desenvolvimento caso ela falhe em rodar os aplicativos de que precisa.

Embora a lista de aplicativos compatíveis com o Wine venha crescendo a cada nova versão, ele ainda está longe de rodar todos os aplicativos Windows sem falhas. Isso faz com que ele seja mais adequado a situações em que os aplicativos nativos atendem à maior parte das suas necessidades, mas você precisa de alguns aplicativos específicos que existem apenas para Windows.

Por outro lado, ele não é adequado em casos em que seu trabalho depende de aplicativos Windows, como no caso de um engenheiro que trabalha usando o AutoCAD, ou de um artista gráfico que trabalha usando o Photoshop e o Corel Draw, já que o desempenho e a compatibilidade raramente é perfeita.

wine_html_64821f68

Embora seja muito menos problemático rodar aplicativos Windows dentro de uma máquina virtual, usando o Virtual Box, VMware ou outro software de virtualização, o Wine oferece três grandes vantagens. A principal é o fato de você não precisar de uma licença do Windows, já que o próprio Wine implementa as funções do sistema operacional. A segunda é que ele oferece um overhead menor, já que o aplicativo roda diretamente, sem que seja necessário manter uma cópia inteira do Windows carregada dentro da VM. Finalmente, temos outra característica (a mais importante para muitos) que é o fato do Wine oferecer suporte a 3D, o que permite rodar muitos jogos.

A lista oficial de aplicativos compatíveis com o Wine, mantida graças aos esforços da equipe de desenvolvimento e de um grande número de voluntários, pode ser encontrada no: http://appdb.winehq.org/.

Os aplicativos listados são divididos em três categorias: “Platinum” (que inclui apenas os aplicativos que rodam perfeitamente em uma instalação limpa do Wine, sem precisar de configurações adicionais), “Gold” (aplicativos que rodam sem limitações, mas que precisam de ajustes manuais) e “Silver”, que inclui aplicativos que rodam com pequenas limitações ou glitches, ou que precisam de um conjunto maior de ajustes.

Dois sites dedicados a fornecer dicas e listas adicionais de aplicativos compatíveis são o wine-reviews.net e o frankscorner.org. Naturalmente, nenhuma das listas pode ser considerada completa, de forma que a melhor maneira de saber se um determinado programa roda ou não, é simplesmente testando.

O Wine inclui também um substituto para o Internet Explorer 6, que é usado por aplicativos que dependem do uso do navegador. Este browser alternativo, na verdade não tem nada a ver com o Internet Explorer (ele é baseado no código do Firefox), ele apenas se faz passar por ele para melhorar o nível de compatibilidade dos aplicativos. Existem receitas para instalar o Internet Explorer dentro do Wine, mas elas não são muito recomendáveis, já que o navegador roda com falhas e existem complicadores legais, uma vez que a EULA do Internet Explorer proíbe o uso em PCs sem uma licença válida do Windows.

Além do Wine propriamente dito temos também a Winelib, uma biblioteca que permite portar aplicativos Windows para o Linux, de forma que eles rodem como se fossem aplicativos nativos. Através dela, é possível recompilar o código do aplicativo, gerando um executável que é capaz de rodar no Linux (e em outros sistemas UNIX), com relativamente pouco esforço.

A mudança não é inteiramente indolor, já que é necessário fazer pequenas modificações no código-fonte do aplicativo, substituindo chamadas e funções potencialmente problemáticas e adicionando chamadas às funções nativas do sistema onde possível. Mesmo depois de recompilado, o resultado não é muito diferente do obtido ao executar o mesmo aplicativo no Linux usando o Wine, mas nesse caso temos a vantagem de ele já vir “completo”, incluindo todos os componentes necessários no pacote.

Um dos primeiros aplicativos portados com a ajuda da Winelib foi o Kylix (lançado em 1999), que nada mais era do que uma versão portada do Delphi, que permitia desenvolver aplicativos Linux e também portar aplicativos do Delphi para o Linux (e vice-versa). Ele era um aplicativo comercial, que existia em duas versões. A Open Edition era gratuita, mas podia ser usada apenas em aplicativos open-source, enquanto a versão Professional (que podia ser usada no desenvolvimento de aplicativos comerciais) era paga.

A ideia acabou não dando muito certo, devido à baixa qualidade do software e ao auto custo da versão Professional, mas serviu como um precedente importante com relação à interoperabilidade entre as duas plataformas.

Um exemplo recente de aplicativo complexo portado com a ajuda da Winelib é o Google Picasa, lançado em 2006. Durante o processo, o Google patrocinou o desenvolvimento de um conjunto de melhorias no Wine, que ajudaram também a melhorar também a compatibilidade com outros aplicativos gráficos, como o Photoshop.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X