# Wine

Wine (acrónimo recursivo para WINE Is Not an Emulator, isto é, WINE Não é um Emulador, em tradução livre) é uma camada de compatibilidade para sistemas operativos UNIX que tem como objetivo a implementação da API da Microsoft Windows, sendo liderada por Alexandre Julliard. Desta forma, em teoria, o Wine permite a execução de aplicações desenvolvidas para ambientes Windows nativamente em outros sistemas operacionais. 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 tempo de execução.
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 exactamente 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 implementaram. No entanto, o Wine permite a utilização de bibliotecas nativas, apesar de, dado o fato 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 arquitecturas, desde que exista o código fonte. No entanto, os programas compilados com Winelib precisam de ser executados sempre no Wine e, em particular, sempre na mesma versão.

## História

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 e wine, os desenvolvedores decidiram padronizar para Wine.

### Desenvolvimento

Bob Amstadt (o líder inicial do projeto) e Eric Youngdale iniciaram o projeto Wine em 1993 com o objetivo de rodar programas Windows no Linux. O projeto foi inspirado por dois produtos da Sun Microsystems, o Wabi 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 Wine foi também um dos alfas mais longos de todos. Levou cerca de 15 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 .

### Lançamento

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 ser lançadas geralmente a cada duas semanas.
O projeto está atualmente na versão 10.0, desde 21 de janeiro de 2025. 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 2, World of Warcraft, Resident Evil 4, Tetris Zone, entre outros.

## Colaborações
### Patrocínio corporativo

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.

### Mutualidade

O projeto ReactOS é feito em conjunto com o Wine, significando então que as melhorias implementadas no Wine são transferidas ao ReactOS e vice-versa.