Lançamento estável do Wine 10.0

Após um ano de desenvolvimento e 29 versões experimentais, é apresentado o lançamento estável da implementação aberta da API Win32 — Wine 10.0, que reúne mais de 6000 mudanças. Entre as principais conquistas da nova versão, destaca-se o suporte total à arquitetura ARM64EC, escala em telas de alta densidade de pixels, ativação padrão do driver Wayland, implementação de painéis para configuração de tela e joystick, uma alternativa de backend multimídia baseada no FFmpeg, driver Bluetooth, suporte ao Vulkan 1.4 e a capacidade de emulação de alternância de modos de vídeo.

No Wine, a compatibilidade com 5372 programas do Windows foi confirmada (há um ano eram 5336, há dois anos 5266, há três anos 5156), e outros 4435 programas (há um ano eram 4397, há dois anos 4370, há três anos 4312) funcionam perfeitamente com ajustes adicionais e DLLs externas. Para 4020 programas (há um ano eram 3943, há dois anos 3888, há três anos 3813), foram observados pequenos problemas de funcionamento, que não impedem o uso das funções principais dos aplicativos.

Principais inovações do Wine 10.0:

  • ARM64
    • Suporte total à arquitetura ARM64EC (Compatível com Emulação ARM64), cujo nível de suporte no Wine atingiu paridade com a arquitetura ARM64. A arquitetura ARM64EC foi desenvolvida para facilitar a portabilidade de aplicações originalmente escritas para sistemas x86_64 para sistemas ARM64, permitindo a execução em ambientes ARM64 de módulos individuais com código x86_64 utilizando um emulador.
    • Implementado suporte total ao formato de arquivos PE ARM64X, que permite combinar em um único arquivo executável código para as arquiteturas ARM64EC e ARM64. Para compilar o Wine no formato ARM64X, é necessário instalar o LLVM a partir do Git (a funcionalidade necessária será incluída no lançamento do LLVM 20) e, ao executar o script 'configure', especificar a opção '--enable-archs=arm64ec,aarch64'.
    • Interface criada para emulação de sistemas x86 de 64 bits. Ao usar ARM64EC, o próprio Wine é executado como está, e a emulação é aplicada apenas ao código dos aplicativos x86-64. A biblioteca com o emulador ainda não está incluída na composição principal do Wine, mas para executar código x86-64 em ambientes ARM64, pode-se usar um emulador externo FEX, compilado com suporte a ARM64EC.
    • Para suportar ARM64, é necessário que o sistema utilize páginas de memória com tamanho de 4KB, conforme exigido pelo ABI do Windows (execução em ambientes com núcleos Linux que utilizam páginas de memória de 16K ou 64K ainda não é suportada).
  • Subsistema gráfico
    • Foi implementada uma escalabilidade mais precisa em telas de alta densidade de pixels (High-DPI). O suporte ao modo DPI Awareness foi garantido para organizar a exibição de aplicativos em telas de alta densidade de pixels, levando em conta se o aplicativo suporta adaptação a mudanças de DPI ou não (os aplicativos que não consideram DPI são escalonados automaticamente). Foram adicionadas opções para redefinir o suporte ao High-DPI em relação a aplicativos específicos ou prefixos do Wine.
    • No driver para a API gráfica Vulkan, foi adicionado suporte à especificação Vulkan 1.4 (no Wine 9.0, o suporte era para Vulkan 1.3.272). Foi adicionado suporte a extensões Vulkan para codificação e decodificação de vídeo.
    • Ao usar o backend X11, foi implementada a capacidade de renderizar janelas filhas Vulkan para aplicativos que usam essas janelas para exibir conteúdo 3D (anteriormente, essa capacidade estava disponível apenas para OpenGL).
    • Na biblioteca GdiPlus, foi adicionado suporte ao mecanismo de vinculação de fontes ("Font Linking"), permitindo que, na exibição de texto, várias fontes sejam utilizadas, caso fontes individuais não abranjam todos os caracteres presentes no texto.
  • Wayland
    • Na configuração padrão, o driver winewayland.drv foi ativado, permitindo usar o Wine em ambientes baseados no protocolo Wayland sem utilizar XWayland e componentes X11. O Wine inicia aplicativos por padrão no Wayland diretamente somente se o XWayland não estiver disponível; caso contrário, o lançamento usando o XWayland permanece prioritário. Para forçar a ativação do Wayland, pode-se usar a variável de ambiente DISPLAY ou adicionar uma chave no registro, criando um arquivo file.reg: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] "Graphics"="wayland" e aplicando-o com o comando: $ WINEPREFIX=\/caminho\/para\/prefixo wine regedit \/caminho\/para\/file.reg
    • No driver winewayland.drv, foi adicionado suporte a OpenGL e buffers de pixels (pBuffer).
    • Foram resolvidos problemas de posicionamento de janelas pop-up em ambientes baseados no Wayland.
    • Ao usar o Wayland, foi implementado suporte para repetição automática de pressionamento ao manter teclas.
  • Integração com a área de trabalho
    • Adicionado um mecanismo experimental de emulação "modesetting", permitindo emular a troca de modos de vídeo sem alterar as configurações da tela de fato. A visibilidade da mudança na resolução da tela sem a troca de modo de vídeo é criada através da extensão e escalonamento das janelas.
    • Adicionado um novo applet Painel de Controle da Área de Trabalho (desk.cpl) com a implementação da interface de gerenciamento das configurações de tela (por exemplo, é possível alterar a resolução virtual da área de trabalho ou ajustar os parâmetros emulados da tela).
    • Adicionada a possibilidade de redefinir as configurações da tela para os valores padrão em caso de não ser possível restaurar o estado após uma falha crítica do processo.
    • Adicionada a suporte para desativar a exibição de ícones na bandeja do sistema (em "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" deve-se definir "NoTrayItemsDisplay=1").
    • Adicionada a suporte para desativar lançadores de shell (Shell launcher) no modo de área de trabalho (em "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" deve-se definir "NoDesktop=1").
  • Direct3D
    • Para renderização usando OpenGL, agora é necessária a suporte ao GLSL 1.20, bem como as extensões EXT_framebuffer_object e ARB_texture_non_power_of_two. O suporte ao backend antiguo ARB shader e a configuração OffscreenRenderingMode foi descontinuado.
    • Para Direct3D 9 e versões mais antigas, foi adicionado um pipeline gráfico de funções fixas (nas versões antigas do Direct3D, apenas operações gráficas predefinidas eram fornecidas, que não podiam ser modificadas), implementado com a linguagem de shaders HLSL e que permite emular funções fixas durante a renderização através da API Vulkan ou OpenGL.
    • Na renderização usando Vulkan, foram utilizados extensões Vulkan para alteração dinâmica do estado do pipeline gráfico, permitindo reduzir travamentos em jogos.
    • Adicionado um backend alternativo glsl-vkd3d para shaders GLSL, usando vkd3d-shader.
    • Fornecida suporte inicial para a compilação de efeitos Direct3D, utilizando vkd3d-shader.
    • Na biblioteca D3DX9, foi implementada a capacidade de gerar texturas MIP (MipMap) ao carregar texturas volumétricas. Adicionada suporte para formatos de cor 64bpp RGBA e 48bpp RGB em imagens PNG, bem como formatos X8L8V8U8, A2W10V10U10, A8P8, V16U16 e Q16W16V16U16.
  • Áudio e vídeo
    • Como alternativa ao backend baseado em GStreamer, foi implementado um novo backend multimídia baseado em FFmpeg, adequado para suportar o funcionamento do framework Media Foundation. Para ativar o backend alternativo na seção do registro "HKCU\Software\Wine\MediaFoundation", deve-se definir "DisableGstByteStreamHandler=1".
    • A implementação da API Media Foundation foi aprimorada, agora se integrando melhor com aplicativos que dependem de componentes de demultiplexação e decodificação.
    • A API DirectMusic agora suporta o carregamento de arquivos MIDI.
  • Dispositivos de entrada
    • Uma versão inicial do driver Bluetooth foi adicionada.
    • Foi adicionado um applet Painel de Controle do Joystick (joy.cpl) com implementações de configurações para joystick.
    • Foram realizadas melhorias relacionadas a dispositivos de controle apontadores (touchpads, mouses) que utilizam o protocolo HID (Dispositivo de Interface Humana). Um driver mouhid.sys para dispositivos HID foi adicionado. A análise correta de dispositivos de entrada compostos foi implementada, permitindo a transmissão de informações sobre eles para aplicativos Windows como se fossem dispositivos separados.
    • O backend X11 agora suporta telas sensíveis ao toque, possibilitando o uso do modo multitouch através do tratamento de mensagens WM_POINTER* (WM_POINTERENTER, WM_POINTERLEAVE, etc.).
    • A alocação de algumas estruturas internas da biblioteca user32 na memória compartilhada foi implementada, melhorando o desempenho e reduzindo a carga no Wine Server.
    • O winex11 agora suporta o tratamento de eventos XInput2 associados a janelas individuais.
    • O suporte adequado para teclados com layout Dvorak foi implementado.
  • Núcleo (interfaces do núcleo Windows)
    • A implementação agora permite a elevação de privilégios para processos (um processo originalmente iniciado como um usuário comum pode receber privilégios administrativos). Ao criar processos de servidor (msi action server), bem como processos que chamam funções RtlCreateUserProcess() e CreateProcessInternal(), um token administrativo restrito é utilizado por padrão.
    • Ao obter informações sobre as etiquetas de disco, agora, sempre que possível, o acesso é feito aos serviços do sistema via DBus, em vez de tentar o acesso direto ao dispositivo.
    • Um mecanismo unidirecional de comunicação entre processos (IPC) Mailslots foi implementado diretamente no servidor Wine, permitindo suporte total à semântica do Windows.
    • Agora é possível aguardar eventos de porta serial de forma assíncrona.
    • Suporte completo para extensões de processador XSTATE foi adicionado nos contextos de thread, permitindo o uso de novas extensões vetoriais, como AVX-512.
  • Aplicativos Embutidos
    • O mecanismo de processamento de entrada usado no interpretador de comandos cmd.exe foi reescrito. O suporte para operações "||" e "&&" foi adicionado ao cmd.exe.
    • O utilitário findstr agora suporta expressões regulares e busca sem levar em conta a capitalização dos caracteres.
    • Foi adicionada à utilidade regsvr32 e rundll32 a capacidade de registrar módulos ARM64EC.
    • Novas utilidades foram adicionadas: sort para ordenar dados de entrada, fc para comparar arquivos e where para buscar arquivos.
    • O aplicativo wmic agora possui um modo interativo.
    • No Explorer foi adicionada suporte opcional para o menu de início e a barra de ferramentas. Garantido o início do explorer.exe com privilégios reduzidos.
  • Ferramentas para Desenvolvimento
    • A opção "-marm64x" foi adicionada ao winebuild para gerar bibliotecas híbridas ARM64X.
    • A opção "-marm64x" foi adicionada ao winegcc, permitindo a compilação para ARM64X.
    • Os arquivos gerados com a linguagem de descrição de interface IDL (Interface Definition Language) utilizam componentes que suportam totalmente a execução em modo de interpretação.
    • O compilador da Linguagem de Definição de Interface IDL (Interface Definition Language) agora suporta a geração de bibliotecas de tipos (TypeLib) no formato antigo (SLTG).
    • O utilitário winedump agora suporta o salvamento de dumps de tabelas minidump, informações sobre exceções C++ e recursos typelib.
  • Diversos
    • O suporte para o protocolo de troca de chaves Diffie-Hellman (DH) foi aprimorado. Agora é possível configurar e obter parâmetros DH. Manipuladores para criar pares de chaves pública e privada foram implementados.
    • O uso de preenchimento OAEP (Optimal Asymmetric Encryption Padding) com o algoritmo RSA foi garantido.
    • O API DirectPlay agora implementa suporte para sessões de rede.
    • Melhorada a manipulação de estados de entrada/saída assíncrona ao operar no modo WoW64 (Windows-on-Windows de 64 bits), permitindo a execução de aplicativos Windows de 32 bits em sistemas Unix de 64 bits.
    • Suporte à carga de drivers ODBC para SGBDs compilados para Windows foi adicionado.
    • Plena compatibilidade com RPC/COM, RTTI C++ (Run-Time Type Information) e exceções C++ foi implementada para a plataforma ARM.
    • O runtime C agora suporta a codificação UTF-8 nas funções ANSI.
    • As capacidades do mecanismo MSHTML foram expandidas. Suporte para protótipos e construtores de objetos foi adicionado. Um novo interface de vinculação de objetos foi integrado ao motor JavaScript para MSHTML. As funções internas MSHTML foram convertidas em objetos JavaScript válidos. O coletor de lixo para JavaScript foi melhorado, abrangendo todos os contextos de execução de scripts na thread. O suporte para objetos JavaScript ArrayBuffer e DataView foi adicionado.
    • A integração contínua baseada em Gitlab agora suporta análise estática usando Clang e relatórios de execução de testes JUnit.
    • A biblioteca Capstone 5.0.3 está integrada, permitindo a desassemblagem no depurador WineDb.
    • Os componentes foram atualizados para novas versões: Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibPng 1.6.44, LibTiff 4.7.0, LibXml2 2.12.8, LibXslt 1.1.42 e Zlib 1.3.1.

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