Como o wine (windows program loader) funciona no Ubuntu?

4

Eu sei que podemos executar programas do Windows (.exe) com ajuda do vinho.

Eu quero saber como o vinho funciona e roda programas exe no Ubuntu. Como há duas janelas diferentes do sistema operacional (código fechado) e Ubuntu (código-fonte aberto Linux) e um método diferente de trabalhar porque o Ubuntu é baseado no gerenciamento de pacotes (apt, dpkg).

Então por que o vinho é importante e o que significa por "O vinho não é um emulador" ?

Como eu sei, ele cria diretórios $HONE/.wine/drive_c/windows etc. Então funciona de forma semelhante no Windows e usa os mesmos arquivos em windows/system32 como plataforma de janela real?

Eu quero saber o trabalho e a importância dele, porque ele é projetado ( o que é preciso / por que deveria permitir ) rodar programas do Windows no Ubuntu? No entanto, não é totalmente compatível com vários softwares de janelas e gráficos.

E o que são pacotes paralelos como cross-over, jogar no linux?

    
por Pandya 10.05.2014 / 07:31

1 resposta

7

Como diz a Wikipédia: link

  

" Wine é uma camada de compatibilidade. Ele duplica as funções do Windows, fornecendo implementações alternativas das DLLs chamadas pelos programas do Windows, [4] e um processo para substituir o kernel do Windows NT. "

Então, WINE é um conjunto de bibliotecas desenvolvidas internamente, um lado do qual (visível para programas) é a API do Windows, e o outro lado (visível para bibliotecas Linux e Linux, como glibc e libX11) é POSIX, API Linux e X11. Além disso, há um carregador especial de programas do Windows que pode ler o arquivo EXE, carregá-lo e todas as bibliotecas de DLL necessárias para a memória, conectar tudo com bibliotecas internas do Wine e bibliotecas do sistema e executá-lo. Pode haver vários programas auxiliares dentro do WINE também.

  

Como há duas janelas de sistema operacional diferentes (código fechado) e Ubuntu (código-fonte aberto Linux)

O Wine fornece suas próprias versões de várias DLLs do sistema Windows. Wine também tem a capacidade de carregar DLLs nativas do Windows. A tentativa de chamar diretamente o kernel do Windows não é suportada. Se o seu programa do Windows faz chamadas que o Linux pode manipular, então o Wine passa para o kernel do Linux. Se o programa quer fazer algo que o Linux não pode fazer, então o Wine traduz a chamada para algo que o Linux pode lidar primeiro.

Ambos os sistemas operacionais (Windows e Ubuntu) possuem diferentes APIs (e ABIs (Application Binary Interface)). O Windows possui o WinAPI e o Linux possui a API POSIX, com algumas APIs adicionais específicas do Linux, APIs gráficas (como o X11) e com sua própria ABI do Linux. APIs diferentes não permitem, por exemplo, abrir o arquivo e ler a partir dele, se você estiver usando uma API incorreta. Essa diferença não é sobre o gerenciamento de pacotes, mas sobre a interface entre programas, bibliotecas e kernels do SO.

  

Então porque o vinho é importante e o que significa "vinho não é um emulador"?

O emulador deve carregar as instruções do programa, analisá-las e imitar suas ações. Assim, emuladores de ARM são possíveis em x86 (Intel), por exemplo, o grande qemu (nome decodificado como "Quick" EMUlator "), ou emulador x86 mais antigo escrito em C - o bochs . Os emuladores geralmente emulam o PC inteiro, a partir do BIOS, processadores e HDDs, eles são inicializados no sistema operacional que você instala neste PC virtual.

E o WINE não é emulador porque não interpreta as instruções do binário alvo e não simula o processador. Ele apenas carrega o programa na memória e fornece a tradução da API do WinAPI para as APIs POSIX / Linux do host (e o Xlib para gráficos e mouse, e alguma outra API para som, etc).

  

por que é projetado (ou o que é necessário / por que deveria permitir) executar programas do Windows no Ubuntu?

O WINE foi projetado muito antes de o Ubuntu ser criado, o projeto foi iniciado em 1993, após o similar do Solaris projeto "Wabi" . É útil ter capacidade de iniciar aplicativos de outros sistemas operacionais, especialmente se esse outro sistema operacional for usado muito amplamente, e houver muitos softwares (e jogos) criados exclusivamente para ele, que não podem ser iniciados diretamente em nenhum outro sistema operacional como Unix, Solaris ou Linux.

  

No entanto, não é totalmente compatível com vários softwares de janelas e gráficos.

O WINE não pode ter a implementação exata de todo o WinAPI (algumas partes dele não estão documentadas) e todas as bibliotecas necessárias. Alguns programas do Windows estão usando APIs ou bibliotecas que não estão implementadas, portanto, não podem funcionar com o WINE.

  

E o que são pacotes paralelos como cross-over, jogar no linux?

Crossover é uma variante comercial do WINE com melhor suporte, algumas ferramentas GUI auxiliares (para facilitar a instalação de alguns softwares ) e verificou a lista de compatibilidade dos programas e jogos do Windows em funcionamento. Normalmente você deve pagar algum dinheiro (40 US $) para a CodeWeavers, desenvolvedores do CrossOver, para usar o pacote por muito tempo e ter suporte. A CodeWeavers (pequena empresa) apóia o projeto de vinhos, reenviando todos os patches para ele e pagando a vários desenvolvedores de vinhos. Segundo a wikipedia:

  

" CrossOver é desenvolvido pela CodeWeavers, baseado no Wine, uma camada de código aberto do Windows. O CodeWeavers modifica o código fonte do Wine, aplica patches de compatibilidade, adiciona ferramentas de configuração mais fáceis de usar e fornece suporte técnico A CodeWeavers emprega vários desenvolvedores de software Wine e contribui com código-fonte para o Wine. "

    
por osgx 10.05.2014 / 07:52

Tags