Lançamento estável do Wine 5.0

Após um ano de desenvolvimento e 28 versões experimentais apresentado lançamento estável da implementação aberta da Win32 API — Wine 5.0, que incorpora mais de 7400 mudanças. Entre os principais avanços da nova versão, destaca-se a entrega de módulos incorporados do Wine no formato PE, suporte a configurações de vários monitores, nova implementação da API de áudio XAudio2 e suporte à API gráfica Vulkan 1.1.

No Wine foi confirmada a operação plena de 4869 (anteiormente 4737) programas para Windows, além de outros 4136 (anteiormente 4045) programas que funcionam bem com configurações adicionais e DLLs externas. Em 3635 programas, observam-se pequenos problemas de funcionamento que não impedem o uso das principais funções das aplicações.

Principais novidades Wine 5.0:

  • Módulos no formato PE
    • Com um compilador MinGW, a maioria dos módulos do Wine agora é compilada no formato de arquivos executáveis PE (Portable Executable, utilizado no Windows) em vez de ELF. O uso de PE resolve problemas de suporte a diferentes esquemas de proteção contra cópia, que realizam a verificação de identidade dos módulos do sistema no disco e na memória;
    • Os arquivos executáveis PE agora são copiados para o diretório ~/.wine ($WINEPREFIX) em vez de usar arquivos DLL fictícios, tornando a instalação mais semelhante a uma instalação real do Windows, à custa de um maior consumo de espaço em disco;
    • Os módulos convertidos para o formato PE podem usar funções padrão do C wchar e constantes com unicode (por exemplo, L"abc");
    • No Wine, foi adicionada suporte à vinculação de arquivos binários compilados no MinGW, que ao compilar DLL agora é utilizada por padrão em vez do runtime do MinGW;
  • Subsistema gráfico
    • Foi adicionada a capacidade de trabalhar com múltiplos monitores e adaptadores gráficos, incluindo a possibilidade de alterar as configurações dinamicamente;
    • O driver para a API gráfica Vulkan foi atualizado, adequando-se à especificação Vulkan 1.1.126;
    • Na biblioteca WindowsCodecs foi implementada a capacidade de converter formatos raster adicionais, incluindo formatos com paleta indexada;
  • Direct3D
    • Durante a execução de aplicações em tela cheia do Direct3D, foi garantido o bloqueio da chamada do protetor de tela;
    • No DXGI (Infraestrutura Gráfica do DirectX), foi adicionada a capacidade de informar à aplicação sobre a minimização de sua janela, permitindo que a aplicação reduza a realização de operações que consomem recursos ao minimizar a janela.
    • Para aplicativos que utilizam DXGI, foi implementada a capacidade de alternar entre o modo de tela cheia e o modo de janela usando a combinação Alt+Enter;
    • As capacidades de implementação do Direct3D 12 foram ampliadas, por exemplo, agora há suporte para alternar entre o modo de tela cheia e o modo de janela, mudar modos de tela, saída com escala e controle do intervalo de troca de buffer de exibição (swap interval);
    • Melhorou o tratamento de várias situações limite, como a aplicação de valores de entrada que excedem os intervalos permitidos para testes de transparência e profundidade, renderização com texturas refletidas e buffers, uso de objetos DirectDraw inválidos, clipper, criação de dispositivos Direct3 para janelas inválidas, uso de áreas visíveis cujos valores mínimos são iguais aos máximos, etc.
    • No Direct3D 8 e 9, há um rastreamento mais preciso das áreas "imundas" de texturas carregadas;
    • Reduzido o tamanho do espaço de endereço necessário ao carregar texturas 3D comprimidas pelo método S3TC (em vez de carregar completamente, as texturas são carregadas em pedaços).
    • Foi implementada a interface ID3D11Multithread para proteger seções críticas em aplicativos multi-thread;
    • Para aplicativos antigos do DirectDraw, foram feitas várias melhorias e correções relacionadas ao cálculo de iluminação;
    • Foram implementadas chamadas adicionais para obter informações sobre shaders na API ShaderReflection;
    • No wined3d, foi adicionado suporte ao blitter baseado em CPU para processar recursos comprimidos;
    • Ampliado o banco de dados de placas gráficas reconhecidas no Direct3D;
    • Novas chaves de registro foram adicionadas em HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (backend para trabalhar com shaders: "glsl" para GLSL, "arb" para ARB vertex/fragment e "none" para desativar o suporte a shaders), "strict_shader_math" (0x1 — ativar, 0x0 — desativar a conversão de shaders do Direct3D). A chave "UseGLSL" foi declarada obsoleta (deve-se usar "shader_backend");
  • D3DX
    • Foi implementado o suporte ao mecanismo de compressão de texturas 3D S3TC (S3 Texture Compression);
    • Foram adicionadas implementações corretas de operações como preenchimento de texturas e superfícies não mapeáveis (unmappable);
    • Foram feitas várias melhorias e correções no framework de criação de efeitos visuais;
  • Núcleo (interfaces do núcleo Windows)
    • A maioria das funções utilizadas no Kernel32 foi movida para
      KernelBase, seguindo as mudanças na arquitetura do Windows;
    • Capacidade de misturar DLLs de 32 e 64 bits em diretórios utilizados para carga. Garantido o descarte de bibliotecas que não correspondem à arquitetura atual (32/64), caso uma biblioteca correta para a arquitetura atual possa ser encontrada mais adiante no caminho;
    • Para drivers de dispositivos, a emulação de objetos de kernel foi aprimorada;
    • Implementados objetos de sincronização que operam a nível de kernel, como spinlocks, mutexes rápidos e variáveis associadas a recursos;
    • Garantido que os aplicativos sejam informados corretamente sobre o estado da bateria;
  • Interface do usuário e integração com a área de trabalho
    • As janelas minimizadas agora são exibidas com um título, em vez de um ícone no estilo Windows 3.1;
    • Novos estilos de botões adicionados SplitButton (botão com um menu suspenso de ações) e Command Links (links em caixas de diálogo usados para avançar para a próxima fase);
    • Links simbólicos para as pastas 'Downloads' e 'Templates' foram criados, apontando para os diretórios correspondentes em sistemas Unix;
  • Dispositivos de entrada
    • Na inicialização, a instalação e o carregamento dos drivers de dispositivos Plug & Play foram garantidos;
    • Apoio melhorado para controladores de jogos, incluindo mini-joysticks (hat switches), volantes e pedais de aceleração e freio.
    • Apoio ao antigo API de Linux para interagir com joysticks, usado em kernels do Linux até a versão 2.2, foi descontinuado;
  • .NET
    • O motor Mono foi atualizado para a versão 4.9.4 e agora inclui partes do framework Windows Presentation Foundation (WPF);
    • Adicionada a capacidade de instalar complementos com Mono e Gecko em um único diretório compartilhado, com arquivos organizados na hierarquia /usr/share/wine, em vez de copiar para novos prefixos;
  • Capacidades de rede
    • O motor de navegador Wine Gecko, que é utilizado na biblioteca MSHTML, foi atualizado para a versão 2.47.1. Suporte aos novos APIs HTML foi implementado;
    • Suporte a elementos SVG foi implementado no MSHTML;
    • Muitas novas funções VBScript foram adicionadas (como manipuladores de erros e exceções, funções Hour, Day, Month, String, LBound, RegExp.Replace, RScriptTypeInfo_* e ScriptTypeComp_Bind* etc.);
    • A persistência do estado do código em VBScript e JScript foi garantida;
    • Uma implementação inicial do serviço HTTP (WinHTTP) e da API associada (HTTPAPI) para aplicações cliente e servidor que enviam e recebem solicitações usando o protocolo HTTP foi adicionada;
    • Implementada a possibilidade de receber parâmetros de configuração de proxy HTTP através de DHCP;
    • Adicionada a suporte para redirecionamento de solicitações de autenticação através do serviço Microsoft Passport;
  • Criptografia
    • Implementada a suporte para chaves criptográficas baseadas em curvas elípticas (ECC) ao utilizar GnuTLS;
    • Adicionada a capacidade de importar chaves e certificados de arquivos no formato PFX;
    • Adicionada a suporte para esquema de geração de chaves baseado em senha PBKDF2;
  • Texto e fontes
    • Na implementação da API DirectWrite, adicionada a suporte para funcionalidades OpenType relacionadas a posicionamento de glifos, que estão habilitadas por padrão para a tipografia Latin, incluindo kerning;
    • Aumentada a segurança do processamento de dados de fonte através da verificação da correção de diversas tabelas de dados antes de seu uso;
    • As interfaces DirectWrite foram atualizadas para o SDK recente;
  • Áudio e vídeo
    • Proposta uma nova implementação da API de áudio XAudio2, construída com base no projeto FAudio. O uso do FAudio no Wine permite obter uma qualidade de som superior em jogos e utilizar funcionalidades como mixagem de volumes e efeitos sonoros avançados;
    • Adicionados um grande número de novas chamadas à implementação do framework Media Foundation, incluindo suporte para filas assíncronas integradas e personalizadas, API Source Reader, Media Session, etc.
    • O filtro de captura de vídeo foi atualizado para utilizar a API v4l2 em vez da API v4l1, o que permitiu ampliar a gama de câmeras suportadas;
    • Decodificadores AVI, MPEG-I e WAVE embutidos foram removidos, sendo agora utilizados os GStreamer ou QuickTime do sistema;
    • Adicionado um subconjunto de APIs de configuração VMR7;
    • Nos drivers de áudio, adicionada a suporte para ajuste de volume de canais individuais;
  • Internacionalização
    • As tabelas Unicode foram atualizadas para a versão 12.1.0;
    • Implementada a suporte para normalização Unicode;
    • A instalação automática da região geográfica (HKEY_CURRENT_USER\Control Panel\International\Geo) é baseada na localidade atual;
  • RPC/COM
    • O typelib adicionou suporte para estruturas complexas e arrays;
    • Adicionada a implementação inicial da biblioteca de runtime do Windows Script;
    • Adicionada a implementação inicial da biblioteca ADO (Microsoft ActiveX Data Objects);
  • Instaladores
    • Para o instalador MSI, implementada a suporte para fornecimento de patches (Patch Files);
    • Na utilidade WUSA (Windows Update Standalone Installer), agora é possível instalar atualizações no formato .MSU;
  • Plataforma ARM
    • Para a arquitetura ARM64, foi adicionada a suporte para desempilhamento (stack unwinding) no ntdll. Suporte para a ligação de bibliotecas externas libunwind foi adicionado.
    • Para a arquitetura ARM64, foi implementado suporte para proxies sem stub (stubless proxies) para interfaces de objetos.
  • Ferramentas de desenvolvimento / Winelib
    • Foi adicionada a possibilidade de aplicar o depurador do Visual Studio para depuração remota de aplicativos executados no Wine.
    • A biblioteca DBGENG (Debug Engine) foi parcialmente implementada.
    • Os arquivos executáveis compilados para Windows não dependem mais do libwine, permitindo sua execução no Windows sem dependências adicionais.
    • No Resource Compiler e no IDL Compiler, foi adicionada a opção '—sysroot' para definir o caminho para os arquivos de cabeçalho.
    • No winegcc, foram adicionadas as opções '—target', '—wine-objdir',
      ‘—winebuild’ e ‘-fuse-ld’, simplificando a configuração do ambiente para cross-compilation.
  • Aplicativos Embutidos
    • Foi implementada a ferramenta CHCP para configurar a codificação do console.
    • Foi implementada a ferramenta MSIDB para manipulação de bancos de dados no formato MSI.
  • Otimização de desempenho
    • Várias funções relacionadas ao tempo foram traduzidas para utilizar funções de sistema de alto desempenho para temporizadores, reduzindo a sobrecarga no ciclo de renderização de muitos jogos.
    • Adicionada a possibilidade de uso no sistema de arquivos Ext4 modo de operação sem distinção entre maiúsculas e minúsculas.
    • Foi realizada uma otimização de desempenho na manipulação de um grande número de elementos em diálogos de listas com modo LBS_NODATA.
    • Foi adicionada uma implementação mais rápida de bloqueios SRW (Slim Reader/Writer) para Linux, traduzida para Futex.
  • Dependências externas
    • Para compilar módulos no formato PE, foi utilizado o cross-compiler MinGW-w64.
    • A implementação do XAudio2 requer a biblioteca FAudio.
    • Para rastrear mudanças em arquivos em sistemas BSD
      foi utilizada a biblioteca Inotify.
    • Para tratamento de exceções na plataforma ARM64, é necessária a biblioteca Unwind.
    • Em vez do Video4Linux1, agora é requerida a biblioteca Video4Linux2.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster