Me ajudem a entender o WINE

Como muitos usuários Linux, faço uso do WINE para rodar programas e jogos que não têm versões nativas pra Linux (ou até tem, mas…). Eu o uso há anos e atualmente estou com a versão 4.0 no meu Kubuntu 18.04.

Acho importante saber como ele funciona até para poder lidar com problemas de forma mais consciente, então aqui vai algumas perguntas:

  1. Galera, vou usar aqui o termo “drive” para se referir à pasta .wine criada no meu /home, não tenho certeza se este é o termo certo e se usamos outra palavra na língua portuguesa. No meu sistema operacional eu tenho dois drives, um em 64bits e outro em 32bits.

  2. Explain like I am five por que WINE não é considerado um emulador. Galera, levem em consideração que não sou da área de TI (faço graduação numa área completamente diferente), então não assumam que eu conheça termos muito complexos de software e hardware.

  3. Para que os programas rodem, às vezes eles precisam de outros componentes além do que o Windows básico já oferece. Por exemplo, para fazer uso do StarDict Editor eu preciso instalar o GKT Runtime tanto num Windows normal quanto num drive do WINE. Sabendo disso, aqui vai duas perguntas a respeito deste tópico:

  • 2.1. Quais sãos os componentes clonados do Windows que o WINE básico traz? (por “clonado” eu me refiro à softwares que foram reescritos para rodar no Linux e suportar aplicações criadas para Windows). Por acaso seria uma versão livre do WinAPI (falo do “WinAPI” aqui, mas não entendo direito ainda o que é uma API)? Uma versão livre do kernel do Windows (quase como um mini ReactOS dentro do Linux)? Versões livres de alguns dos componentes listados aqui?

  • 2.2 E quanto aos demais componentes do Windows que também são muito importantes como MSXML, DirectX, NET. Framework e Microsoft Visual C++? O WINE por si traz clones livres para quebrar um galho? Eu mesmo instalo esses componentes através do winetricks que, na verdade, baixa os componentes originais do site da Microsoft e então os instala no drive do Wine.

  1. Como funciona essa questão da “emulação” (desculpa, não consegui pensar em expressão melhor) da versão do Windows usada pelo WINE? Explico: no meu Kubuntu 18.04, mesmo o WINE 4.0 está configurado para “se comportar”(?) como o Windows XP por padrão (por que não uma versão um pouco mais nova por padrão como o Windows 7?). Quando eu vou lá no winecfg e troco a versão do Windows, por acaso o WINE muda os arquivos a serem utilizados? Por exemplo, vamos dizer que mudo do Windows XP pro Windows 7, por acaso o WINE passará a usar componentes “mais atualizados” (isto é, o que se esperaria do Windows 7) para que softwares recentes funcionem melhor?

  2. O que é aquele Gecko que o WINE sempre instala assim que um drive dele é criado? Também tem um outro, mas me esqueci o nome.

  3. O que o CrossOver (versão paga do WINE) traz de tão especial em relação ao WINE puro ou ao WINE “tunado” com softwares da Microsoft instalados pelo winetricks?

  4. Por que muitas pessoas não recomendam instalar muitos componentes da Microsoft (como MSXML, DirectX, NET. Framework, Microsoft Visual C++, etc) no drive do Wine? Não seria interessante ter tudo isso instalado?

  5. Há planos para, no futuro, disponibilizar o WINE já com o DXVK de fábrica?

  6. Quando abrimos o winecfg e vamos na aba Libraries, podemos adicionar algumas bibliotecas. Como isso funciona em relação ao winetricks? Pergunto isso porque não me lembro do winecfg fazer o download e instalação de bibliotecas enquanto o winetricks faz isso…

4 curtidas
  1. Você se refere ao C:\Program Files\ e ao C:\Program Files (x86)? Se sim isso, se eu não estiver errado, é só a mesma estrutura de pastas do Windows.

  2. Até onde eu sei o Wine “converte”.

2.1. Nenhum, eu acho.

2.2. Eu acho que ele não vem com esses componentes

  1. Não sei no kubuntu, mas no archlinux o padrão é Windows 7 (inclusive vi notícias que o padrão é o Windows 7 de agora em diante, de qual versão do Wine esse será o padrão, ou se é, não sei)

  2. Gecko é um motor de layout que o Firefox usa, talvez seja pro navegador do wine que vem embutido (o que parece com o internet explorer

  3. Automatização, igual o playonlinux. Ao invés de você se preocupar com quais componentes instalar (DirectX, net framework e etc) ele instala pra vc, e deixa separado também, então se um programa é compatível com uma versão mais antiga do Wine, ou mais nova, ele baixa aquela versão.

  4. Li em algum lugar nessa internet que os motivos podem ser 2, que esses programas conflitam ou que não é necessário ter todos esses programas (pensando no lado minimalista da coisa.)

  5. não tenho ideia

  6. também não sei responder

1 curtida

Obrigado pela resposta

Galera, para quem se interessar, eu fiz esta mesma pergunta no Reddit, têm respostas bem bacanas lá:

OBS: Está em inglês

https://old.reddit.com/r/linux4noobs/comments/b5wrsz/many_questions_about_how_wine_works/

3 curtidas

estou me sentido bem mal, nao conseguiria responder nenhuma, press f pro noob kkkkk

E aí @rasolar, tudo beleza?

Sei que já faz um tempo este tópico, mas este é um assunto realmente interessante.

Lá vai:

0. Galera, vou usar aqui o termo “drive” para se referir à pasta .wine criada no meu /home, não tenho certeza se este é o termo certo e se usamos outra palavra na língua portuguesa. No meu sistema operacional eu tenho dois drives, um em 64bits e outro em 32bits.

  • Só uma observação, esses são os prefixos Wine, neles estão contidos os WineBottles, estes sim, são “drives virtuais”.

1. Explain like I am five por que WINE não é considerado um emulador. Galera, levem em consideração que não sou da área de TI (faço graduação numa área completamente diferente) , então não assumam que eu conheça termos muito complexos de software e hardware.

  • Na verdade um emulador simula o comportamento de um determinado hardware em outra arquitetura. O que o Wine faz é “traduzir” as “chamadas windows” em “chamadas linux” ou seja ele executa os binários do windows em um ambiente onde existem bibliotecas compatíveis com estes programas e os traduz para o ambiente “linux” somente através de software, sem simular nenhum hardware. A forma certa de classificar isso é como camada de compatibilidade.*
  1. Para que os programas rodem, às vezes eles precisam de outros componentes além do que o Windows básico já oferece. Por exemplo, para fazer uso do StarDict Editor eu preciso instalar o GKT Runtime tanto num Windows normal quanto num drive do WINE. Sabendo disso, aqui vai duas perguntas a respeito deste tópico:
  • 2.1. Quais sãos os componentes clonados do Windows que o WINE básico traz? (por “clonado” eu me refiro à softwares que foram reescritos para rodar no Linux e suportar aplicações criadas para Windows) . Por acaso seria uma versão livre do WinAPI (falo do “WinAPI” aqui, mas não entendo direito ainda o que é uma API) ? Uma versão livre do kernel do Windows (quase como um mini ReactOS dentro do Linux) ? Versões livres de alguns dos componentes listados aqui?

  • A galera do ReactOS e Wine “trabalham juntas” e avanços ajudam um ao outro. Mas não existe kernel dentro do Wine. Sim, eles utilizam todo o ambiente e bibliotecas que são necessárias na WinAPI e traduzem isso para a POSIX API do linux. API significa Interface de programação de aplicações, ou seja é um ambiente, com vários componentes nos quais seu aplicativo vai precisar para rodar.

  • 2.2 E quanto aos demais componentes do Windows que também são muito importantes como MSXML, DirectX, NET. Framework e Microsoft Visual C++? O WINE por si traz clones livres para quebrar um galho? Eu mesmo instalo esses componentes através do winetricks que, na verdade, baixa os componentes originais do site da Microsoft e então os instala no drive do Wine.

  • Existem o Mono e o Gecko, mas como as bibliotecas básicas já existem no sistema, pode-se instalar os runtimes da própria MS.

  1. Como funciona essa questão da “emulação” (desculpa, não consegui pensar em expressão melhor) da versão do Windows usada pelo WINE? Explico: no meu Kubuntu 18.04, mesmo o WINE 4.0 está configurado para “se comportar”(?) como o Windows XP por padrão (por que não uma versão um pouco mais nova por padrão como o Windows 7?) . Quando eu vou lá no winecfg e troco a versão do Windows, por acaso o WINE muda os arquivos a serem utilizados? Por exemplo, vamos dizer que mudo do Windows XP pro Windows 7, por acaso o WINE passará a usar componentes “mais atualizados” (isto é, o que se esperaria do Windows 7) para que softwares recentes funcionem melhor?
  • Sim e não. Geralmente os programas funcionam “melhor” com a base mais sólida e mais “desenvolvida”, como o modo XP. Na verdade isso só muda algumas rotinas e informa o app do sistema que vc escolheu. Por outro lado, se você procura novos recursos, instale uma versão Wine mais recente ou as que são “staging” . Staging significa que ali estão novas implementações que podem fazer a diferença para rodar alguns aplicativos (enquanto pode ser que faça um aplicativo que rodava com um versão mais antiga parar de funcionar…).
  1. O que é aquele Gecko que o WINE sempre instala assim que um drive dele é criado? Também tem um outro, mas me esqueci o nome.
  • Gecko (renderização web) e Mono (.Net).
  1. O que o CrossOver (versão paga do WINE) traz de tão especial em relação ao WINE puro ou ao WINE “tunado” com softwares da Microsoft instalados pelo winetricks?
  • Suporte, scripts personalizados de instalação (basicamente torna o processo bem mais fácil) e integração melhor com o ambiente gráfico.
  1. Por que muitas pessoas não recomendam instalar muitos componentes da Microsoft (como MSXML, DirectX, NET. Framework, Microsoft Visual C++, etc) no drive do Wine? Não seria interessante ter tudo isso instalado?
  • Na verdade não, muita coisa instalada acaba de alguma forma “quebrando” o winebottle.
  1. Há planos para, no futuro, disponibilizar o WINE já com o DXVK de fábrica?
  • O dxvk vc instala na sua distro. Isso converte as chamadas de directX para Vulkan, não OpenGL. A integração já existe.
  1. Quando abrimos o winecfg e vamos na aba Libraries , podemos adicionar algumas bibliotecas. Como isso funciona em relação ao winetricks? Pergunto isso porque não me lembro do winecfg fazer o download e instalação de bibliotecas enquanto o winetricks faz isso…

Bom espero que isto possa ser útil. Forte abraço!

3 curtidas

Ele não quer saber o nome do diretório .wine, o software wine trata isso como um wine prefix.
Sempre que ver escrito prefixo em tutorial é referenciado a pasta wine prefix é a pasta onde o software sera instalado.

Você pode manipular e criar varios wine prefix, o .wine é so o prefix padrão.

O Wine é uma API que cria uma camada de compatibilidade com as API do Windows.
O WINE pega os binarios do software compilado para rodar no Windows e envia para o kernel Linux binários que o Linux entende, ele faz uma tradução dos binários do software original para um binário que o kernel Linux consegue compreender.

As vezes essa tradução para uma tarefa do software ainda não foi implementada e então não é bem sucedida e os binários enviados para o kernel Linux saem com a tradução errada causando aqueles bugs estranho nos software rodando no WINE, ou o software da crash mesmo.

Como funciona essa questão da “compatibilidade”

Eu como sou Leigão eu instalo o Bottles,crio uma garrafa,e instalo tudo quanto é dependencia que tá lá listado,as vezes até a desnecessária…ou não…nunca se sabe,vai tudo pra garrafa…

Cara o WINE foi uma coisa muito boa feita pela comunidade, facilita a vida dos programadores, os programadores podem programar para 1 só sistema operacional e o software vai rodar em 3 kernel diferente.
Vai rodar no kernel do Windows, no kernel Linux e no kernel do Mac.
Vai precisar compilar só uma vez, é uma mão na roda.
Já tem algumas empresas aderindo o Wine para rodar seus software em plataformas diferentes do Windows.

1 curtida

A palavra que busca é tradução.

1 curtida