Lançamento do Wine 5.0

Em 21 de janeiro de 2020, ocorreu o lançamento oficial da versão estável do Wine 5.0 , a ferramenta gratuita para iniciar programas nativos do Windows em um ambiente UNIX. Essa é uma implementação alternativa e gratuita da API do Windows. O acrônimo recursivo WINE significa "O vinho não é um emulador".

Esta versão possui cerca de um ano de desenvolvimento e mais de 7400 alterações individuais. O desenvolvedor líder Alexander Julliard identifica quatro:

  • Suporte para módulos no formato PE. Isso resolve os problemas com diferentes esquemas de proteção contra cópia que verificam os módulos do sistema no disco e na memória.
  • Suporte para vários monitores e várias GPUs, incluindo alterações dinâmicas nas configurações.
  • Reimplementação do XAudio2 com base no projeto FAudio, uma implementação de código aberto das bibliotecas de som do DirectX. A mudança para o FAudio permite obter maior qualidade de som nos jogos, usar mix de volume, efeitos sonoros avançados, etc.
  • Suporte para o Vulkan 1.1.

Mais detalhes sobre as principais inovações.

Módulos PE


Com o compilador MinGW, a maioria dos módulos Wine agora é compilada no formato PE (Portable Executable, Windows binary) em vez de ELF.

Os executáveis ​​do PE agora são copiados para o ~/.wine vez de usar DLLs fictícias, o que torna os aplicativos mais parecidos com instalações reais do Windows.

Até o momento, nem todos os módulos foram convertidos para o formato PE. O trabalho continua.

Subsistema de gráficos


Como mencionado acima, foi adicionado suporte para trabalhar com vários monitores e adaptadores gráficos.

Driver Vulkan atualizado para as especificações Vulkan 1.1.126.

Além disso, a biblioteca WindowsCodecs agora suporta formatos de varredura adicionais, incluindo formatos de paleta indexada.

Direct3d


Os aplicativos de tela inteira do Direct3D agora bloqueiam a chamada do protetor de tela.

Para aplicativos DXGI, é possível alternar entre os modos de tela cheia e janela usando a combinação padrão Alt + Enter.

Os recursos do Direct3D 12 são expandidos: suporte para alternar entre os modos de tela inteira e janela, alterar modos de tela, visualizações em escala e substituição do intervalo de troca. Todos esses recursos já foram implementados para versões anteriores da API Direct3D.

Os participantes do projeto trabalharam cuidadosamente e eliminaram literalmente centenas de bugs, para que o processamento do Wine para várias situações de fronteira tenha sido aprimorado. Entre eles estão a amostragem de recursos 2D em amostradores 3D e vice-versa, o uso de valores iniciais fora da faixa para testes de transparência e profundidade, renderização com texturas e buffers refletidos, o uso de cortadores incorretos (objeto DirectDraw) e muito mais.

Reduzido o tamanho do espaço de endereço necessário ao carregar texturas 3D compactadas pelo método S3TC (em vez de carregar, as texturas inteiras são carregadas com pedaços).

Para aplicativos mais antigos do DirectDraw, várias melhorias e correções relacionadas ao cálculo da iluminação foram feitas.

A base de placas gráficas reconhecida no Direct3D foi expandida.

Rede e criptografia


Mecanismo Gecko atualizado para a versão 2.47.1 para suportar ferramentas modernas. Várias novas APIs HTML foram implementadas.

MSHTML implementa suporte para elementos SVG.

Muitas novas funções do VBScript foram adicionadas (por exemplo, manipuladores de erro e exceção).

Implementou a capacidade de obter configurações de proxy HTTP por meio do DHCP.

Na parte criptográfica, é implementado o suporte para chaves criptográficas baseadas em curvas elípticas (ECC) via GnuTLS, a capacidade de importar chaves e certificados de arquivos no formato PFX é adicionada, e o suporte para o esquema de geração de chaves com base na senha PBKDF2.


Adobe Photoshop CS6 em Wine

Outras inovações significativas


  • Suporte para spinlocks do kernel do NT.
  • Devido ao vencimento da patente para compactação de textura, DXTn e S3, tornou-se possível incluí-las na implementação padrão.
  • Suporte para instalação de drivers plug-and-play.
  • Várias melhorias no DirectWrite.
  • Suporte aprimorado para a API do Windows Media Foundation.
  • Melhor sincronização primitiva graças à implementação em futexes.
  • Compartilhando o Wine-Mono para economizar espaço, em vez da implementação .NET de código aberto para todos os ~/.wine .
  • Suporte para Unicode 12.0 e 12.1.
  • Implementar o serviço HTTP inicial (HTTP.sys) como um substituto para a API Winsock e IIS, resultando em melhor desempenho que a API do Windows Sockets.
  • Melhor compatibilidade com depuradores do Windows.
  • Melhor suporte ao LLVM MinGW e melhor compilação cruzada do WineGCC.

Você também pode mencionar as melhorias na interface do usuário. Por exemplo, janelas minimizadas agora são exibidas usando a barra de título, em vez de ícones no estilo Windows 3.1. Suporte aprimorado para controladores de jogos, incluindo chave de chapéu, volante e pedais.

O Wine removeu os decodificadores AVI, MPEG-I e WAVE integrados, em vez dos quais o sistema GStreamer ou QuickTime agora é usado.

Adicionado a capacidade de usar o depurador do Visual Studio para depuração remota de aplicativos em execução no Wine, a biblioteca DBGENG (Mecanismo de Depuração) é parcialmente implementada, a dependência da libwine é removida dos arquivos coletados para o Windows.

Para otimizar o desempenho, várias funções de trabalho foram transferidas para o uso de funções do sistema de alto desempenho para trabalhar com um timer, o que permitiu reduzir a sobrecarga no ciclo de renderização de muitos jogos. Outras otimizações de desempenho foram feitas.

Veja a lista completa de alterações aqui .

Código-fonte do Wine 5.0 , espelho
Binários para várias distribuições
A documentação

O site do AppDB mantém um banco de dados de aplicativos compatíveis com o Windows compatíveis com o Wine. Aqui estão os líderes no número de votos :

  1. Final Fantasy XI
  2. Adobe Photoshop CS6 (13.0)
  3. World of Warcraft 8.3.0
  4. EVE Online Current
  5. Magic: The Gathering Online 4.x

Pode-se supor que esses aplicativos sejam executados com mais frequência no Wine.

Nota O lançamento do Wine 5.0 é dedicado à memória de Józef Kucia, que morreu tragicamente em agosto de 2019 aos 30 anos de idade enquanto explorava uma caverna no sul da Polônia. Jozef foi um importante colaborador do Direct3D Wine e um dos principais autores do projeto vkd3d . Enquanto trabalhava no Wine, ele contribuiu com mais de 2500 patches.

Source: https://habr.com/ru/post/pt484972/


All Articles