Versión estable de Wine 7.0

Despois dun ano de desenvolvemento e 30 versións experimentais, presentouse unha versión estable da implementación aberta da API Win32 - Wine 7.0, que incorporou máis de 9100 cambios. Os principais logros da nova versión inclúen a tradución da maioría dos módulos Wine ao formato PE, soporte para temas, ampliación da pila para joysticks e dispositivos de entrada cunha interface HID e implementación da arquitectura WoW64 para executar programas de 32 bits nun Entorno de 64 bits.

Wine confirmou o funcionamento completo de 5156 (un ano atrás 5049) programas para Windows, outros 4312 (un ano 4227) programas funcionan perfectamente con configuracións adicionais e DLL externas. 3813 programas (hai 3703 anos) presentan pequenos problemas operativos que non interfiren no uso das principais funcións das aplicacións.

Novidades clave en Wine 7.0:

  • Módulos en formato PE
    • Case todas as DLL convertéronse para usar o formato de ficheiro executable PE (Executable Portátil, usado en Windows) en lugar de ELF. O uso de PE resolve problemas coa compatibilidade de varios esquemas de protección contra copias que verifican a identidade dos módulos do sistema no disco e na memoria.
    • Implementouse a capacidade de interactuar con módulos PE con bibliotecas de Unix mediante a chamada do sistema estándar do núcleo NT, o que lle permite ocultar o acceso ao código Unix dos depuradores de Windows e supervisar o rexistro de fíos.
    • As DLL integradas agora só se cargan se hai un ficheiro PE correspondente no disco, independentemente de se é unha biblioteca real ou un esbozo. Este cambio permite que a aplicación vexa sempre a vinculación correcta aos ficheiros PE. Para desactivar este comportamento, pode usar a variable de ambiente WINEBOOTSTRAPMODE.
  • WoW64
    • Implementouse a arquitectura WoW64 (Windows de 64 bits en Windows), que lle permite executar aplicacións de Windows de 32 bits en procesos Unix de 64 bits. O soporte implícase a través da conexión dunha capa que traduce as chamadas do sistema NT de 32 bits en chamadas de 64 bits a NTDLL.
    • As capas WoW64 están preparadas para a maioría das bibliotecas Unix e permiten que os módulos PE de 32 bits accedan ás bibliotecas Unix de 64 bits. Unha vez que todos os módulos sexan convertidos ao formato PE, será posible executar aplicacións de Windows de 32 bits sen instalar bibliotecas Unix de 32 bits.
  • Temas
    • Implementouse o soporte temático. Inclúense os temas de deseño "Light", "Blue" e "Classic Blue", que se poden seleccionar a través do configurador WineCfg.
    • Engadida a posibilidade de personalizar a aparencia de todos os controis da interface mediante temas. A aparencia dos elementos actualízase automaticamente despois de cambiar o tema do deseño.
    • Engadiuse compatibilidade con temas a todas as aplicacións Wine integradas. Adaptáronse as aplicacións a pantallas con alta densidade de píxeles (High DPI).
  • Subsistema gráfico
    • Engadiuse unha nova biblioteca Win32u, que inclúe partes das bibliotecas GDI32 e USER32 relacionadas co procesamento de gráficos e a xestión de ventás a nivel do núcleo. No futuro, comezará a traballar para portar compoñentes do controlador como winex32.drv e winemac.drv a Win11u.
    • O controlador Vulkan admite a especificación 1.2.201 da API de gráficos Vulkan.
    • Proporcionou soporte para a saída de obxectos xeométricos sombreados a través da API de Direct2D, coa posibilidade de comprobar se se produce un clic (proba de éxito).
    • A API de Direct2D ofrece soporte inicial para efectos visuais aplicados mediante a interface ID2D1Effect.
    • A API de Direct2D engadiu compatibilidade coa interface ID2D1MultiThread, que se usa para organizar o acceso exclusivo aos recursos en aplicacións multiproceso.
    • O conxunto de bibliotecas de WindowsCodecs ofrece soporte para decodificar imaxes no formato WMP (Windows Media Photo) e codificar imaxes no formato DDS (DirectDraw Surface). Xa non admitimos a codificación de imaxes no formato ICNS (para macOS), que non é compatible con Windows.
  • Direct3D
    • O novo motor de renderizado mellorouse significativamente, traducindo as chamadas de Direct3D á API de gráficos Vulkan. Na maioría das situacións, o nivel de compatibilidade para Direct3D 10 e 11 no motor baseado en Vulkan foi igualado co motor baseado en OpenGL máis antigo. Para activar o motor de renderizado Vulkan, configure a variable de rexistro de Direct3D "renderer" en "vulkan".
    • Implementáronse moitas funcións de Direct3D 10 e 11, incluíndo contextos diferidos, obxectos de estado que operan no contexto do dispositivo, compensacións persistentes nos búfers, borrado de vistas de texturas desordenadas, copia de datos entre recursos en formatos sen tipo (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32LES32), etc. .
    • Engadido soporte para configuracións de varios monitores, o que lle permite seleccionar un monitor para mostrar unha aplicación Direct3D en modo de pantalla completa.
    • A API DXGI proporciona corrección gamma da pantalla, que pode ser usada polas aplicacións baseadas en Direct3D 10 e 11 para cambiar o brillo da pantalla. Recuperación activada de contadores de framebuffers virtuais (SwapChain).
    • Direct3D 12 engade soporte para sinaturas raíz da versión 1.1.
    • No código de renderizado a través da API de Vulkan, a eficiencia do procesamento de consultas mellorouse cando o sistema admite a extensión VK_EXT_host_query_reset.
    • Engadida a posibilidade de emitir framebuffers virtuais (SwapChain) a través de GDI se non se poden usar OpenGL ou Vulkan para a súa visualización, por exemplo, cando se saen a unha xanela desde diferentes procesos, por exemplo, en programas baseados no marco CEF (Chromium Embedded Framework).
    • Cando se utiliza o backend do sombreador GLSL, o modificador "preciso" está garantido para as instrucións do sombreado.
    • A API de DirectDraw engade compatibilidade para renderizado 3D na memoria do sistema mediante dispositivos de software como "RGB", "MMX" e "Ramp".
    • Engadíronse á base de datos de tarxetas gráficas Direct3D as tarxetas AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 e NVIDIA GT 1030.
    • Eliminouse a chave "UseGLSL" do rexistro HKEY_CURRENT_USER\Software\Wine\Direct3D, no canto do cal, a partir de Wine 5.0, cómpre usar "shader_backend".
    • Para admitir Direct3D 12, agora necesitas polo menos a versión 3 da biblioteca vkd1.2d.
  • D3DX
    • A implementación de D3DX 10 mellorou a compatibilidade co marco de efectos visuais e engadiu compatibilidade co formato de imaxe Windows Media Photo (JPEG XR)
    • Engadíronse funcións de creación de texturas proporcionadas en D3DX10, como D3DX10CreateTextureFromMemory().
    • Implementáronse parcialmente as interfaces de software ID3DX10Sprite e ID3DX10Font.
  • Son e vídeo
    • Os complementos de GStreamer para DirectShow e o framework Media Foundation combínanse nun backend común de WineGStreamer, o que debería simplificar o desenvolvemento de novas API de decodificación de contido.
    • Baseándose no backend de WineGStreamer, os obxectos de Windows Media impléntanse para lecturas síncronas e asíncronas.
    • Perfeccionouse aínda máis a implementación do marco de Media Foundation, engadiuse o soporte para a funcionalidade IMFPMediaPlayer e o asignador de mostras e mellorouse o soporte para os búfers de renderización EVR e SAR.
    • Eliminouse a biblioteca wineqtdecoder, que proporciona un decodificador para o formato QuickTime (agora todos os códecs usan GStreamer).
  • Dispositivos de entrada
    • A pila para dispositivos de entrada que admiten o protocolo HID (Human Interface Devices) mellorouse significativamente, proporcionando capacidades como analizar descritores HID, procesar mensaxes HID e proporcionar controladores mini-HID.
    • Nos backends do controlador winebus.sys, mellorouse a tradución das descricións de dispositivos en mensaxes HID.
    • Engadiuse un novo backend DirectInput para joysticks compatibles co protocolo HID. Implementouse a capacidade de usar efectos de retroalimentación nos joysticks. Panel de control de joystick mellorado. Interacción optimizada con dispositivos compatibles con XInput. En WinMM, o soporte de joystick moveuse a DInput, en lugar de usar o backend evdev en Linux e IOHID en macOS IOHID. Eliminouse o antigo controlador do joystick winejoystick.drv.
    • Engadíronse novas probas ao módulo DInput, baseadas no uso de dispositivos HID virtuais e que non requiren un dispositivo físico.
  • Texto e fontes
    • Engadiuse o obxecto Font Set a DirectWrite.
    • RichEdit implementa correctamente a interface TextHost.
  • Núcleo (Interfaces do núcleo de Windows)
    • Cando se executa un ficheiro executable non identificado (como 'wine foo.msi') en Wine, agora chámase start.exe, que invoca controladores asociados co tipo de ficheiro.
    • Engadiuse soporte para os mecanismos de sincronización NtAlertThreadByThreadId e NtWaitForAlertByThreadId, semellante aos futexes en Linux.
    • Engadido soporte para obxectos de depuración de NT usados ​​para depurar funcións do núcleo.
    • Engadido soporte para claves de rexistro dinámicas para gardar datos de rendemento.
  • C Tempo de execución
    • O tempo de execución C implementa un conxunto completo de funcións matemáticas, que se trasladan principalmente desde a biblioteca Musl.
    • Todas as plataformas de CPU ofrecen soporte correcto para funcións de punto flotante.
  • Funcións da rede
    • Modo de compatibilidade mellorado para Internet Explorer 11 (IE11), que agora se usa por defecto para procesar documentos HTML.
    • A biblioteca mshtml implementa o modo JavaScript ES6 (ECMAScript 2015), que ofrece soporte para funcións como a expresión let e o obxecto Map.
    • A instalación de paquetes MSI con engadidos ao motor Gecko no directorio de traballo de Wine faise agora cando sexa necesario, e non durante unha actualización de Wine.
    • Engadido soporte para o protocolo DTLS.
    • Implantouse o servizo NSI (Network Store Interface), que almacena e transmite información sobre enrutamento e interfaces de rede do ordenador a outros servizos.
    • Os controladores da API de WinSock como setsockopt e getsockopt movéronse a NTDLL e ao controlador afd.sys para que se axusten á arquitectura de Windows.
    • Os ficheiros da base de datos da rede de Wine, como /etc/protocols e /etc/networks, están agora instalados no directorio de traballo de Wine, en lugar de acceder a bases de datos Unix similares.
  • Plataformas alternativas
    • Engadido soporte para equipos de Apple baseados en chips M1 ARM (Apple Silicon).
    • A compatibilidade coas funcións BCrypt e Secur32 en macOS agora require a instalación da biblioteca GnuTLS.
    • Os executables de 32 bits para plataformas ARM agora están construídos no modo Thumb-2, de xeito similar a Windows. Para cargar estes ficheiros úsase un precargador.
    • Para as plataformas ARM de 32 bits, implementouse o soporte para as excepcións de desenrolo.
    • Para FreeBSD, ampliouse o número de consultas admitidas para información de baixo nivel do sistema, como o estado da memoria e o nivel de carga da batería.
  • Aplicacións integradas e ferramentas de desenvolvemento
    • A utilidade reg.exe engadiu soporte para vistas do rexistro de 32 e 64 bits. Engadido soporte para copiar claves de rexistro.
    • A utilidade WineDump engadiu compatibilidade para descargar metadatos de Windows e mostrar información detallada sobre as entradas de CodeView.
    • O Wine Debugger (winedbg) ofrece a capacidade de depurar procesos de 32 bits desde un depurador de 64 bits.
    • A capacidade de cargar bibliotecas integradas en ficheiros PE engadiuse ao compilador IDL (widl), proporcionouse soporte para atributos e construcións específicos de WinRT e implementouse unha busca de bibliotecas específicas para a plataforma.
  • Sistema de montaxe
    • Nos directorios específicos da arquitectura, as bibliotecas gárdanse agora con nomes que reflicten a arquitectura e o tipo de executable, como 'i386-windows' para o formato PE e 'x86_64-unix' para bibliotecas de Unix, o que permite soporte para diferentes arquitecturas nun único Wine. instalación e proporcionar compilación cruzada de Winelib.
    • Para establecer unha opción nas cabeceiras dos ficheiros PE que controla a transición ao uso de DLL nativas, engadiuse a marca "--prefer-native option" a winebuild (o procesamento DLL_WINE_PREATACH en DllMain detívose).
    • Engadido soporte para a versión 4 do formato de datos de depuración de Dwarf, que agora se usa de forma predeterminada cando se crean bibliotecas Wine.
    • Engadiuse a opción de compilación "—enable-build-id" para gardar identificadores de compilación únicos en ficheiros executables.
    • Engadido soporte para usar o compilador Clang no modo de compatibilidade MSVC.
  • Miscelânea
    • Os nomes dos directorios típicos no intérprete de comandos do usuario (Windows Shell) dánse ao esquema empregado comezando por Windows Vista, é dicir. En lugar de "Os meus documentos", agora créase un directorio "Documentos" e a maioría dos datos gárdanse no directorio "AppData".
    • Engadiuse soporte para a especificación OpenCL 1.2 á capa de biblioteca OpenCL.
    • O controlador WinSpool engadiu soporte para diferentes tamaños de páxina ao imprimir.
    • Engadido soporte inicial para MSDASQL, o provedor de Microsoft OLE DB para controladores ODBC.
    • Actualizouse o motor Wine Mono coa implementación da plataforma .NET para a versión 7.0.0.
    • Os datos Unicode actualizáronse á especificación Unicode 14.
    • A árbore de orixe inclúe as bibliotecas Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt e Zlib, que se compilan en formato PE e non requiren unha versión en formato Unix. Ao mesmo tempo, estas bibliotecas tamén se poden importar do sistema para usar conxuntos externos en lugar de opcións de PE incorporadas.

Fonte: opennet.ru

Engadir un comentario