Versão estável do Wine 9.0

Após um ano de desenvolvimento e 26 versões experimentais, foi apresentada uma versão estável da implementação aberta da API Win32 - Wine 9.0, que incorporou mais de 7000 alterações. As principais conquistas da nova versão incluem a implementação da arquitetura WoW64 para execução de programas de 32 bits em um ambiente de 64 bits, integração de driver para suporte ao Wayland, suporte à arquitetura ARM64, implementação da API DirectMusic e suporte para cartões inteligentes.

5336 programas (5266 há um ano, 5156 há dois anos, 5049 há três anos) foram confirmados como funcionando corretamente no Wine. WindowsOutros 4397 programas (4370 há um ano, 4312 há dois anos e 4227 há três anos) funcionam bem com configurações adicionais e DLLs externas. 3943 programas (3888 há um ano, 3813 há dois anos e 3703 há três anos) apresentam problemas menores que não interferem na funcionalidade básica dos aplicativos.

Principais inovações no Wine 9.0:

  • O driver winewayland.drv foi adicionado, permitindo que o Wine seja usado em ambientes baseados em Wayland sem a necessidade de componentes XWayland ou X11. Este desenvolvimento visa fornecer um ambiente Wayland puro com suporte para inicialização. Windows- Aplicativos que não exigem a instalação de pacotes relacionados ao X11, o que permite maior desempenho e capacidade de resposta em jogos, eliminando camadas desnecessárias. O uso de um ambiente Wayland puro para o Wine também elimina problemas de segurança inerentes ao X11 (por exemplo, jogos X11 não confiáveis ​​podem espionar outros aplicativos, pois o protocolo X11 permite acesso a todos os eventos de entrada e realizar substituição de teclas).

    O driver está marcado como experimental e em desenvolvimento, mas, mesmo assim, já possui suporte para diversos recursos, como gerenciamento de janelas, trabalho com múltiplos monitores, suporte para dimensionamento de saída em telas de alta densidade de pixels (alto DPI), trabalho com coordenadas relativas ao rastrear o movimento do mouse e suporte para a API gráfica Vulkan. Por padrão, o driver não está ativo e para habilitá-lo você deve adicionar “wayland” ao parâmetro de registro “HKCU\Software\Wine\Drivers” e certificar-se de que a variável de ambiente DISPLAY não esteja definida: wine reg.exe add HKCU\ \Software\\Wine\\Drivers /v Gráficos /d x11,wayland

  • Todos os módulos foram convertidos para a interface de chamada do sistema NT, em vez de fazer chamadas diretas entre as camadas PE e Unix, marcando a conclusão de muitos anos de trabalho para converter todas as DLLs para usar o formato de arquivo executável PE (Portable Executable).
  • O desenvolvimento da camada WoW64 (64 bits) continuou. Windows-sobre-Windows), o que permite executar sistemas de 32 bits Windows- Aplicações em sistemas Unix de 64 bits. Todos os módulos que acessam bibliotecas Unix usam tradutores de chamadas de sistema WoW64 (thunks), permitindo que módulos de 32 bits em formato PE acessem bibliotecas Unix de 64 bits.

    O novo modo de inicialização do WoW64 foi aprimorado, permitindo que código de 32 bits seja executado em um processo de 64 bits (no modo WoW64 antigo, aplicativos de 32 bits eram executados em processos Unix de 32 bits). O suporte para o uso do novo modo WoW64 na plataforma foi adicionado. macOSComo o novo modo WoW64 apresenta alguns pequenos bugs, como a falta de suporte a 16 bits e o desempenho reduzido do OpenGL devido à ausência de suporte à extensão ARB_buffer_storage, ele ainda não está habilitado por padrão e requer a compilação com a opção "--enable-archs=i386,x86_64" no script de configuração.

  • Adicionada a capacidade de executar arquivos executáveis ​​existentes. Windows Em sistemas com arquitetura ARM64, o Wine agora pode ser compilado para a ABI ARM64EC (Compatível com Emulação ARM64) e módulos ARM64EC podem ser carregados. Esses módulos são usados ​​para simplificar a portabilidade de aplicativos originalmente escritos para a arquitetura x86_64 para sistemas ARM64, permitindo a execução de módulos de código x86_64 individuais no ambiente ARM64 usando um emulador. Foi adicionado suporte ao formato de arquivo PE ARM64X, que permite que um único arquivo executável seja carregado em processos x64/Arm64EC e ARM64. Uma interface para emular sistemas x86 de 32 bits foi implementada, mas a biblioteca do emulador ainda não está incluída na distribuição principal do Wine (o emulador externo FEX pode ser usado para executar código x86 no ambiente ARM64).
  • Subsistema gráfico
    • O driver PostScript foi redesenhado para suportar arquivos de spool no formato Windows, que armazenam dados sobre trabalhos de impressão. Chamadas diretas ao driver a partir do ambiente Unix estão excluídas.
    • O suporte ao modo escuro foi adicionado aos temas WinRT. Uma configuração foi adicionada ao WineCfg para permitir o design de interface escura.
    • O driver para a API gráfica Vulkan adicionou suporte para a especificação Vulkan 1.3.272 (8.0 era compatível com Wine 1.3.237).
    • As funções da biblioteca GdiPlus foram otimizadas, permitindo maior desempenho gráfico.
  • Direct3D
    • A análise de um fluxo de comandos multithread é suspensa quando não há comandos de renderização sendo processados, o que permite reduzir o consumo de energia ao nível do processamento single-thread ao executar programas que não ocupam toda a largura de banda do fluxo de comandos.
    • Direct3D 10 inclui suporte para efeitos adicionais.
    • Fiz otimizações de desempenho no código WineD3D e backend usando a API gráfica Vulkan.
    • O código de renderização baseado na API Vulkan agora verifica quais recursos o dispositivo suporta e informa ao aplicativo qual nível de funcionalidade Direct3D está disponível.
    • As funções D3DXFillTextureTX e D3DXFillCubeTextureTX foram implementadas.
    • O backend clássico do shader OpenGL ARB adicionou suporte para definir sombras usando a extensão ARB_fragment_program_shadow.
    • D3DXLoadMeshHierarchyFromX e funções semelhantes adicionaram suporte para carregar dados do usuário usando a interface ID3DXLoadUserData.
  • Som e vídeo
    • Foi proposta uma implementação inicial da API DirectMusic. Adicionado suporte para coleções, instrumentos e amostras de som no formato SoundFont. Adicionado suporte para o efeito Doppler. Testes foram implementados para verificar a implementação correta ao operar o sequenciador dmime e o sintetizador MIDI dmsynth.
    • A biblioteca FluidSynth está incorporada na API DirectMusic para uso.
    • Implementado suporte para carregamento de fontes sonoras (SoundFont - formatos para síntese baseada em amostras usados ​​para reproduzir arquivos MIDI) nos formatos DLS1 e DLS2, bem como no formato SF2 usado em Linux.
    • Adicionada a capacidade de reproduzir conteúdo MIDI usando a biblioteca dmsynth, usando o sintetizador de software FluidSynth e a API DirectSound para saída de áudio.
    • Adicionado um decodificador para vídeo no formato de codec de vídeo Indeo IV50.
  • DirectShow
    • O componente DMO (DirectX Media Object) com um decodificador de formato WMV foi implementado (Windows Vídeo de mídia).
    • Adicionado um filtro de captura de áudio (DirectShow Audio Capture Filter).
    • Além dos fluxos de áudio, o MPEG‑1 Stream Splitter (DirectShow MPEG‑1 Stream Splitter) agora suporta fluxos de vídeo e fluxos de serviço.
    • Foi implementado um filtro para decodificação de vídeo no formato MPEG‑1 (DirectShow MPEG‑1 Video Decoder).
  • Dispositivos de entrada
    • DirectInput oferece suporte ao mapeamento de ações, que permite vincular botões em um controlador de jogo a ações específicas em jogos.
  • Integração de área de trabalho
    • As ligações foram exportadas para o ambiente principal do usuário, permitindo que aplicativos executados no Wine sejam chamados como manipuladores de protocolo ao abrir uma URL (por exemplo, iniciar spotify.exe ao abrir links como “spotify:user:spotify:playlist:848218482355482821”).
    • Implementada a extração de dados EDID (Extended Display Identification Data) com informações sobre os parâmetros do monitor conectado, como nome e modelo do dispositivo.
    • É possível fechar uma janela da área de trabalho implantada em modo de tela cheia usando o botão “Sair da área de trabalho” no menu “Iniciar”.
  • Internacionalização
    • O suporte para IMEs (Editores de Método de Entrada) foi expandido. Foram realizados trabalhos para garantir a compatibilidade com os IMEs nativos. Windows Implementações de IME e integração aprimorada com Linux IME
    • A geração de bancos de dados de localidade no formato locale.nls a partir do banco de dados Unicode CLDR (Unicode Common Locale Data Repository) versão 44 foi fornecida. Suporte para localidades adicionais bew-ID, blo-BJ, csw-CA, ie-EE, mic-CA. , prg-PL foi adicionado, skr-PK, tyv-RU, vmw-MZ, xnr-IN e za-CN.
    • A interface foi traduzida para o georgiano. Traduções completas são fornecidas para 16 idiomas e traduções parciais para 31 idiomas.
    • As tabelas de caracteres Unicode foram atualizadas para a versão padrão 15.1.0. O banco de dados de fuso horário foi atualizado.
  • Kernel (interfaces do kernel) Windows)
    • Conforme a versão emitida Windows definido por padrão Windows 10.
    • Para arquivos executáveis ​​​​no formato PE, o suporte para randomização do espaço de endereço (ASLR) é implementado, mas os endereços para carregar o código na memória ainda não são completamente aleatórios.
    • Foi implementado suporte para heap fracamente fragmentado (LFH, Low Fragmentation Heap), o que aumentou o desempenho das operações de alocação de memória.
    • Foi adicionado suporte para reserva de memória (placeholder) ao mecanismo de alocação de memória virtual, permitindo que um aplicativo reserve uma área específica de memória virtual para uso futuro.
    • Carregadores de 64 bits (carregador e pré-carregador) de arquivos executáveis ​​e bibliotecas são compilados no formato PIE (Position-Independent Executables) para liberar parte do espaço de endereço de 32 bits.
    • O desenrolamento correto da pilha é fornecido para chamadas do sistema NT e chamadas de retorno de chamada do usuário.
  • Oportunidades de networking
    • O mecanismo MSHTML suporta o mecanismo de coleta de lixo “Cycle Collection”.
    • MSHTML adicionou suporte para processamento síncrono de solicitações XMLHttpRequest.
    • jscript.dll adiciona suporte para um objeto WeakMap para trabalhar com uma coleção de pares chave/valor em que a chave é um objeto que pode ter um valor arbitrário anexado a ela. Implementados os métodos WeakMap.get(), WeakMap.delete(), WeakMap.clear() e WeakMap.has().
    • O mecanismo do navegador Gecko foi atualizado para a versão 2.47.4.
    • Foi implementado suporte para notificações sobre mudanças no estado da interface de rede.
  • Criptografia e Segurança
    • O suporte para cartões inteligentes foi adicionado à biblioteca Winscard.dll, implementada por meio da biblioteca do sistema PCSClite.
    • BCrypt adicionou suporte para o protocolo de troca de chaves Diffie-Hellman.
    • Foi implementado o pacote Negotiate, fornecendo uma camada para utilização da interface SSPI (Security Support Provider Interface) para acessar provedores de SSP (Security Support Provider).
  • Aplicativos incorporados
    • O Wine Debugger (winedbg) usa a biblioteca Zydis para desmontar instruções de máquina X86.
    • A interface do WineCfg foi atualizada para oferecer suporte a versões mais antigas em plataformas de 64 bits. Windows (antes do XP), que permite executar aplicativos antigos usando o modo WoW64.
    • Todos os aplicativos gráficos integrados agora exibem informações de erro em uma caixa de diálogo separada, em vez de exibi-las no console.
    • O programa systeminfo fornece a exibição de informações do banco de dados WMI (Windows Instrumentação de Gestão).
    • Adicionado aplicativo klist para exibir tickets Kerberos.
    • O aplicativo taskkill implementa a capacidade de encerrar à força processos filhos.
    • Adicionada opção "/machine" ao utilitário start para selecionar a arquitetura usada ao executar executáveis ​​híbridos que suportam x86 e ARM.
    • A maior parte da funcionalidade do programa de lista de tarefas foi implementada.
    • Adicionada uma implementação básica do aplicativo findstr.
  • Ferramentas de desenvolvimento
    • O utilitário WineDump tem a capacidade de exibir o conteúdo dos arquivos de registro. Windows (formato REGF), além de exibir dados para todas as arquiteturas (x86/ARM64) suportadas em arquivos PE híbridos.
    • O compilador IDL adicionou suporte para os atributos "composable", "default_overload", "deprecated" e "protected".
    • Removido libwine.so, que estava obsoleto no Wine 6.0 e não é mais usado no Wine há muito tempo. Programas no formato ELF criados em versões mais antigas do Wine (5.0 e anteriores) com libwine.so requerem reconstrução para serem executados no Wine 9.0.
  • Bibliotecas integradas e dependências externas
    • As bibliotecas FluidSynth 2.3.3, Musl 1.2.3 (somente funções matemáticas) e Zydis 4.0.0 estão integradas ao pacote.
    • Os componentes Vkd3d 1.10, Faudio 23.12, OpenLDAP 2.5.16, LCMS2 2.15, LibMPG123 1.32.2, LibPng 1.6.40, LibTiff 4.6.0, LibXml2 2.11.5, LibXslt 1.1.38 e Zlib 1.3 foram atualizados para novas versões. O motor Wine Mono com implementação da plataforma .NET foi atualizado para a versão 8.1.0.
    • O driver winewayland.drv usa a biblioteca cliente Wayland como dependências externas, bem como as bibliotecas xkbcommon e xkbregistry.
    • Para dar suporte a cartões inteligentes, é utilizada a biblioteca externa PCSClite (em macOS — PCSC).
    • A construção de arquivos PE em plataformas não i386 agora requer um compilador cruzado com suporte para diretivas ".seh" para lidar com exceções.

Fonte: opennet.ru

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