Lançamento estável do Wine 7.0

Após um ano de desenvolvimento e 30 versões experimentais, foi lançado o release estável da implementação aberta da Win32 API — Wine 7.0, que incorporou mais de 9100 mudanças. Entre os principais avanços desta nova versão, destaca-se a conversão da maioria dos módulos do Wine para o formato PE, suporte a temas, expansão do stack para joysticks e dispositivos de entrada com interface HID, e a implementação da arquitetura WoW64 para executar programas de 32 bits em um ambiente de 64 bits.

No Wine, a operação completa de 5156 programas (em relação a 5049 no ano passado) para Windows foi confirmada, enquanto 4312 programas (anteriormente 4227) funcionam perfeitamente com configurações adicionais e DLL externas. 3813 programas (comparados a 3703 no ano anterior) apresentam pequenos problemas, que não interferem nas funcionalidades principais dos aplicativos.

Novidades principais do Wine 7.0:

  • Módulos no formato PE
    • Quase todas as bibliotecas DLL foram traduzidas para o uso do formato de executáveis PE (Portable Executable, utilizado no Windows) em vez de ELF. A adoção do PE resolve problemas de suporte a diversos esquemas de proteção contra cópias que realizam a verificação de identidade dos módulos do sistema no disco e na memória.
    • Implementada a capacidade de interação de módulos PE com bibliotecas Unix usando a chamada de sistema padrão do núcleo NT, permitindo ocultar o acesso ao código Unix de depuradores do Windows e rastrear o registro de threads.
    • As DLL integradas agora carregam apenas se o arquivo correspondente no formato PE estiver presente no disco, independentemente de ser uma biblioteca real ou um stub. Essa alteração permite que a aplicação sempre veja a vinculação correta aos arquivos PE. Para desativar esse comportamento, pode-se usar a variável de ambiente WINEBOOTSTRAPMODE.
  • WoW64
    • Implementada a arquitetura WoW64 (Windows-on-Windows 64-bit), que permite executar aplicativos Windows de 32 bits em processos Unix de 64 bits. O suporte foi implementado através da adição de uma camada que traduz chamadas de sistema NT de 32 bits em chamadas de 64 bits para o NTDLL.
    • As camadas WoW64 estão preparadas para a maioria das bibliotecas Unix e permitem que módulos de 32 bits no formato PE acessem bibliotecas Unix de 64 bits. Após a conclusão da conversão de todos os módulos para o formato PE, haverá a possibilidade de executar aplicativos Windows de 32 bits sem a instalação de bibliotecas Unix de 32 bits.
  • Temas
    • Implementada a suporte a temas. Inclui os temas "Light", "Blue" e "Classic Blue", que podem ser selecionados através do configurador WineCfg.
    • Adicionada a possibilidade de personalizar a aparência de todos os elementos da interface através de temas. Garantida a atualização automática da aparência dos elementos após a alteração do tema.
    • Todos os aplicativos integrados do Wine agora têm suporte a temas. Adaptados os aplicativos para telas de alta densidade de pixels (High DPI).
  • Subsistema gráfico
    • Adicionada uma nova biblioteca Win32u, que contém partes das bibliotecas GDI32 e USER32 relacionadas ao processamento gráfico e à gestão de janelas em nível de núcleo. O trabalho para transferir componentes de drivers, como winex11.drv e winemac.drv, começará em breve.
    • No driver Vulkan, implementado o suporte para a especificação da API gráfica Vulkan 1.2.201.
    • Fornecido suporte para a renderização de objetos geométricos estriados através da API Direct2D, com a possibilidade de verificação de clique (hit-test).
    • Na API Direct2D, implementado o suporte inicial para efeitos visuais aplicados usando a interface ID2D1Effect.
    • Na API Direct2D, adicionada a interface ID2D1MultiThread, utilizada para organizar o acesso exclusivo a recursos em aplicações multithreaded.
    • Na coleção de bibliotecas WindowsCodecs, implementado o suporte para decodificação de imagens no formato WMP (Windows Media Photo) e codificação de imagens no formato DDS (DirectDraw Surface). O suporte para a codificação de imagens no formato ICNS (para macOS), que não é suportado no Windows, foi encerrado.
  • Direct3D
    • Significativamente aprimorado o novo mecanismo de renderização, que realiza a tradução de chamadas Direct3D para a API gráfica Vulkan. Na maioria das situações, o nível de suporte a Direct3D 10 e 11 no mecanismo baseado em Vulkan foi elevado ao paridade com o antigo mecanismo baseado em OpenGL. Para habilitar o mecanismo de renderização via Vulkan, deve-se definir a variável de registro Direct3D "renderer" com o valor "vulkan".
    • Implementadas muitas funcionalidades do Direct3D 10 e 11, incluindo contextos adiados (Deferred Contexts), funcionando em contexto de dispositivos, objetos de estado, deslocamentos constantes em buffers, limpeza de representações de texturas não ordenadas, cópia de dados entre recursos em formatos tipicamente não especificados (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS), etc.
    • Adicionada suporte a configurações de múltiplos monitores, permitindo escolher o monitor para exibir a aplicação Direct3D em modo de tela cheia.
    • Na API DXGI, foi implementada a função de correção gama da tela, que pode ser aplicada por aplicações baseadas em Direct3D 10 e 11 para alterar o brilho da tela. Garantido a extração dos contadores de buffers de quadro virtuais (SwapChain).
    • No Direct3D 12, foi adicionado suporte para assinaturas raiz da versão 1.1.
    • No código de renderização através da API Vulkan, foi melhorada a eficiência do processamento de solicitações quando há suporte para a extensão VK_EXT_host_query_reset no sistema.
    • Foi adicionada a possibilidade de saída de buffers de quadro virtuais (SwapChain) através do GDI, caso OpenGL ou Vulkan não possam ser usados para a exibição, por exemplo, ao exibir em uma janela de diferentes processos, como nos programas baseados no framework CEF (Chromium Embedded Framework).
    • Ao usar o backend para shaders GLSL, foi garantido o uso do modificador "precise" para instruções de shader.
    • Na API DirectDraw, foi adicionado suporte para renderização 3D na memória do sistema, utilizando dispositivos de software, como "RGB", "MMX" e "Ramp".
    • Na base de dados das placas gráficas do Direct3D, foram adicionadas placas AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 e NVIDIA GT 1030.
    • Da chave HKEY_CURRENT_USER\Software\Wine\Direct3D, foi removido o valor "UseGLSL", sendo necessário usar "shader_backend" a partir do Wine 5.0.
    • Para suporte ao Direct3D 12, é necessário ter a biblioteca vkd3d na versão mínima de 1.2.
  • D3DX
    • Na implementação do D3DX 10, foi melhorado o suporte para o framework de efeitos visuais e adicionado suporte para o formato de imagem Windows Media Photo (JPEG XR).
    • Adicionadas funções de criação de texturas no D3DX10, como D3DX10CreateTextureFromMemory().
    • As interfaces de programação ID3DX10Sprite e ID3DX10Font foram parcialmente implementadas.
  • Áudio e vídeo
    • No backend unificado WineGStreamer, foram combinadas extensões GStreamer para DirectShow e o framework Media Foundation, o que deve simplificar o desenvolvimento de novas APIs de decodificação de conteúdo.
    • Com base no backend WineGStreamer, foram implementados objetos Windows Media para leitura síncrona e assíncrona.
    • Continuou o desenvolvimento da implementação do framework Media Foundation, adicionando suporte para funcionalidades do IMFPMediaPlayer, do distribuidor de amostras (sample allocator), melhorando o suporte para EVR e buffers de renderização SAR.
    • A biblioteca wineqtdecoder, que fornecia um decodificador para o formato QuickTime (agora todos os codecs usam GStreamer), foi removida.
  • Dispositivos de entrada
    • O stack para dispositivos de entrada que suportam o protocolo HID (Human Interface Devices) foi significativamente aprimorado, incluindo a análise de descritores HID, o processamento de mensagens HID e a oferta de mini-drivers HID.
    • Na parte de trás do driver winebus.sys, a tradução de descrições de dispositivos para mensagens HID foi melhorada.
    • Adicionado um novo backend DirectInput para joysticks que suportam o protocolo HID. Implementada a capacidade de usar efeitos de feedback em joysticks. Melhorado painel de controle o funcionamento com joysticks. A interação com dispositivos compatíveis com XInput foi otimizada. No WinMM, o suporte a joysticks foi transferido para DInput, em vez de utilizar o backend evdev no Linux e IOHID no macOS. O antigo driver de joysticks winejoystick.drv foi removido.
    • No módulo DInput, novos testes foram adicionados, baseados na aplicação de dispositivos HID virtuais e que não requerem a presença de um dispositivo físico.
  • Texto e fontes
    • Um objeto Font Set foi adicionado ao DirectWrite.
    • No RichEdit, a interface TextHost foi implementada corretamente.
  • Núcleo (interfaces do núcleo Windows)
    • Ao iniciar um arquivo executável não reconhecido no Wine (por exemplo, 'wine foo.msi'), agora é chamado o start.exe, que invoca os manipuladores relacionados ao tipo de arquivo.
    • Adicionada a suporte a mecanismos de sincronização NtAlertThreadByThreadId e NtWaitForAlertByThreadId, que são semelhantes a futexes no Linux.
    • Adicionada a suporte a objetos de depuração NT, utilizados para depurar funções do núcleo.
    • Suporte a chaves de registro dinâmicas foi adicionado para armazenar dados de desempenho.
  • C Runtime
    • No runtime C, foi implementado um conjunto completo de funções matemáticas, que foram principalmente transferidas da biblioteca Musl.
    • Para todas as plataformas de CPU, o suporte correto para funções de cálculos em ponto flutuante foi assegurado.
  • Capacidades de rede
    • O modo de compatibilidade com o Internet Explorer 11 (IE11) foi melhorado e agora é utilizado por padrão para o processamento de documentos HTML.
    • Na biblioteca mshtml, foi implementado o modo JavaScript ES6 (ECMAScript 2015), que assegura suporte a capacidades como a expressão let e o objeto Map.
    • A instalação de pacotes MSI do Wine no diretório de trabalho com complementos ao mecanismo Gecko agora é feita sob demanda, em vez de durante a atualização do Wine.
    • Adicionada a suporte para o protocolo DTLS.
    • Implementado o serviço NSI (Network Store Interface), que armazena e transmite a outros serviços informações sobre roteamento e interfaces de rede no computador.
    • Os manipuladores de API WinSock, como setsockopt e getsockopt, foram transferidos para a biblioteca NTDLL e o driver afd.sys, para estar em conformidade com a arquitetura do Windows.
    • Agora, arquivos próprios com bancos de dados de rede, como /etc/protocols e /etc/networks, são instalados no diretório de trabalho do Wine, em vez de acessar bancos de dados similares do Unix.
  • Plataformas alternativas
    • Adicionada suporte para hardware da Apple baseado em chips ARM M1 (Apple Silicon).
    • Para dar suporte às funções BCrypt e Secur32 na plataforma macOS, agora é necessário instalar a biblioteca GnuTLS.
    • Arquivos executáveis de 32 bits para plataformas ARM agora são compilados no modo Thumb-2, como no Windows. Um pré-carregador é utilizado para carregar esses arquivos.
    • O suporte à desmontagem (unwinding) de exceções foi implementado para plataformas ARM de 32 bits.
    • Para o FreeBSD, aumentou-se o número de consultas suportadas sobre informações de baixo nível do sistema, como dados sobre o estado da memória e o nível de carga da bateria.
  • Aplicativos incorporados e ferramentas de desenvolvimento
    • O utilitário reg.exe agora suporta representações de registro de 32 e 64 bits. Suporte para a cópia de chaves do registro foi adicionado.
    • A utilidade WineDump agora suporta a saída de um dump de metadados do Windows e a exibição de informações detalhadas sobre entradas do CodeView.
    • O depurador Wine Debugger (winedbg) agora permite a depuração de processos de 32 bits a partir de um depurador de 64 bits.
    • O compilador IDL (widl) agora tem a capacidade de carregar bibliotecas embutidas em arquivos PE, assegurando suporte para atributos e construções específicas do WinRT, além de permitir a busca de bibliotecas com base na plataforma.
  • Sistema de Construção
    • Nas pastas específicas da arquitetura de hardware, as bibliotecas agora são salvas com nomes que refletem a arquitetura e o tipo de arquivos executáveis, como 'i386-windows' para o formato PE e 'x86_64-unix' para bibliotecas unix, permitindo suporte para diferentes arquiteturas em uma única instalação do Wine e facilitando a compilação cruzada do Winelib.
    • Para definir nos cabeçalhos dos arquivos PE uma opção que controla a utilização de DLLs nativas, um sinalizador ‘—prefer-native option’ foi adicionado ao winebuild (o tratamento de DLL_WINE_PREATTACH em DllMain foi interrompido).
    • Adicionado suporte para a versão 4 do formato de dados de depuração Dwarf, que agora é usado por padrão ao compilar bibliotecas Wine.
    • Adicionada a opção de construção ‘—enable-build-id’ para salvar identificadores únicos de construção em arquivos executáveis.
    • Suporte adicionado para o uso do compilador Clang em modo de compatibilidade com MSVC.
  • Diversos
    • Os nomes dos diretórios padrão na interface do usuário (Windows Shell) foram alterados para o esquema aplicado a partir do Windows Vista, ou seja, em vez de 'Meus Documentos', agora é criado o diretório 'Documentos', e a maior parte dos dados é salva no diretório 'AppData'.
    • Na camada da biblioteca OpenCL, foi adicionado suporte à especificação OpenCL 1.2.
    • No driver WinSpool, foi adicionado suporte a várias opções de tamanhos de páginas ao imprimir.
    • Suporte inicial ao MSDASQL, o provedor Microsoft OLE DB para drivers ODBC, foi adicionado.
    • O mecanismo Wine Mono com a implementação da plataforma .NET foi atualizado para a versão 7.0.0.
    • Os dados Unicode foram atualizados para a especificação Unicode 14.
    • As bibliotecas Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt e Zlib foram incorporadas à árvore de fontes, sendo compiladas no formato PE e não exigindo a versão no formato Unix. Essas bibliotecas também podem ser importadas do sistema para usar compilações externas em vez das versões PE embutidas.

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