Wine


Wine (acrónimo recursivopara WINE Is Not anEmulator, isto é, WINE Não é um Emulador, em tradução livre) é um camada de compatibilidade para sistemas UNIX que tem como objetivo a implementação da API do Microsoft. Desta forma, em teoria, o Wine permite a execução de aplicações desenvolvidas para ambiente Windows nativamente noutros sistemas operativos. Wine, traduzido literalmente do inglês para o português, significa vinho, o que levou à escolha de uma taça de vinho como logotipo do Wine.

Por reimplementar as bibliotecas do Windows o Wine não é um emulador, não fazendo qualquer emulação para executar software para Windows. A implementação da API do Windows faz-se através da utilização de APIs e funções específicas de ambientes UNIX, sendo apenas necessária a implementação adicional de um carregador de aplicativos no formato PE, capaz de os converter para o formato ELF em run-time.

O WINE atua, então, algo como um "tradutor": toda vez que ocorre uma chamada para a função desenha Cubo que estava implementada na DirectX.dll, por exemplo, o Wine traduz esta chamada para uma de suas próprias bibliotecas em que alguém escreveu uma função similar para realizar exatamente o mesmo, desenhar um cubo na tela. Por isto às vezes os jogos que rodam em cima do Wine geram erros, pois executam chamadas a funções que o Wine não sabe como interpretar, isto é, chamam bibliotecas ou funções muito novas que os desenvolvedores do Wine ainda não programaram. No entanto, o Wine permite a utilização de bibliotecas nativas, apesar de, dado o facto de ser uma aplicação em user-mode num sistema operativo UNIX, nem todas funcionarem. Por exemplo, a utilização do DirectX da Microsoft é uma impossibilidade técnica (e legal).

O Wine ainda disponibiliza a sua própria biblioteca (Winelib) por forma a que o código-fonte dos programas concebidos para Windows possa ser compilado no ambiente UNIX. Assim, programas desenvolvidos para Windows podem ser portados para plataformas UNIX e, inclusivamente, para outras arquiteturas, desde que exista o código fonte. No entanto, os programas compilados com Winelib precisam ser executados sempre no Wine e, em particular, sempre na mesma versão.

O nome Wine era inicialmente um acrónimo de WINdows Emulator. Seu significado mais tarde deslocado para o Acrônimo recursivo, Wine Is Not an Emulator. Embora o nome às vezes aparece sob as formas WINE ewine, os desenvolvedores decidiram padronizar para Wine.

O Wine foi também um dos alfas mais longos de todos. Levou cerca de 12 anos desde o início de seu desenvolvimento em 1993, por Bob Amstadt e Eric Youngdale, até a versão 1.0, lançada em junho de 2008.

O projeto está atualmente na versão 1.7.53, desde 16 de outubro de 2015. Já executa muitos programas, entre eles Adobe Photoshop,DreaMule, Filezilla, Macromedia Flash, Microsoft Office, Corel Draw (até versão 8), Microsoft Internet Explorer, mIRC, uTorrent, Ares Galaxy,Shareaza, Firefox (versão do Windows) e Winamp. O projeto também é capaz de executar diversos e conhecidos jogos como Need for Speed Underground, Warcraft III, Starcraft, Max Payne, Max Payne 2: The Fall of Max Payne, Counter Strike, Half-Life, Half-life, World of Warcraft, Resident Evil 4, Tetris Zone, entre outros.

O líder do projeto é Alexandre Julliard.

História


Bob Amstadt e Eric Youngdale iniciaram o projeto Wine em 1993 com o objetivo de rodar programas Windows noLinux. O projeto foi inspirado por dois produtos da Sun Microsystems, oWabi para Solaris e a Public Window Initiative — uma tentativa de ter a Windows API totalmente reimplementada como domínio público e um padrão ISO, mas que foi rejeitada por pressões da Microsoft em 1996. O Wine originalmente tinha como alvo os programas para Windows 3.x (16-bit), mas depois passou a focar também em 32-bit e 64-bit. O projeto ganhou corpo em discussões na Usenet no grupo comp.os.linux em junho de 1993. Alexandre Julliard assumiu a liderança do projeto em 1994, e o conduz desde então.

O projeto mostrou-se difícil e demorado para os desenvolvedores, principalmente por causa de documentação incompleta ou incorreta da Windows API. Enquanto a Microsoft documenta extensivamente a maioria das funções, áreas como formato de arquivo e protocolos possuem vários pontos obscuros, ou nenhuma especificação pública oficial. O Windows também possui funções de baixo nível e comportamentos não documentados que o Wine precisa replicar precisamente de modo que alguns programas funcionem perfeitamente. Consequentemente, o time do Wine fez engenharia reversa em várias chamadas de função e formatos de arquivos. Mais recentemente, alguns desenvolvedores sugeriram táticas como examinar o código fonte de programas de código aberto.

O projeto Wine foi lançado originalmente na mesma licença MIT que o X Window System, mas devido ao receio de surgirem versões proprietárias que não contribuiriam com o projeto principal, em março de 2002 ele foi relançado sob a licença LGPL.

O projeto lançou oficialmente uma versão beta 0.9 em 25 de outubro de 2005. A versão 1.0 foi lançada em 17 de junho de 2008, após 15 anos de desenvolvimento. A versão 1.2 foi lançada em 16 de julho de 2010, e versões de desenvolvimento continuam a serem lançadas geralmente a cada duas semanas.

Patrocinadores e Colaboradores

A principal empresa que patrocina o Wine é a CodeWeavers, da qual Alexandre Julliard é empregado; outros desenvolvedores, tanto do Wine quanto do CrossOver, também são empregados da CodeWeavers.

A Corel se envolveu durante um tempo, dedicando um time de desenvolvedores para trabalhar no Wine sob o comando de Julliard. O interesse da Corel era em portar o Corel WordPerfect Office para o Linux. Posteriormente, a Corel cancelou seus investimentos em projetos relacionados ao Linux após investimentos na empresa feitos pela Microsoft, cancelando inclusive a colaboração com o Wine.

Outro patrocinador inclui a Google, que contratou a CodeWeavers para corrigir bugs do Wine que afetavam o Picasa no Linux; a Google ainda contratou serviços de melhorias para o Adobe Photoshop CS2. O Wine também se beneficia regularmente do programa Google Summer of Code.

O projeto ReactOS é feito em conjunto com o Wine, ou seja, melhorias do Wine são colocadas no ReactOS e vice-versa.