Lanzamiento estable de Wine 7.0

Después de un año de desarrollo y 30 versiones experimentales, se presenta la versión estable de la implementación abierta del API Win32: Wine 7.0, que incluye más de 9100 cambios. Entre los logros clave de esta nueva versión se destaca la conversión de la mayoría de los módulos de Wine al formato PE, el soporte para temas visuales, la ampliación del stack para joysticks y dispositivos de entrada con interfaz HID, y la implementación de la arquitectura WoW64 para ejecutar programas de 32 bits en un entorno de 64 bits.

En Wine se ha confirmado el funcionamiento completo de 5156 programas (en comparación con 5049 hace un año) para Windows, y otros 4312 (en comparación con 4227 hace un año) funcionan perfectamente con configuraciones adicionales y DLL externas. Se observan problemas menores en 3813 programas (en comparación con 3703 hace un año), que no afectan el uso de las funciones principales de las aplicaciones.

Novedades clave de Wine 7.0:

  • Módulos en formato PE
    • Casi todas las bibliotecas DLL han sido actualizadas para utilizar el formato de archivo ejecutable PE (Portable Executable, utilizado en Windows) en lugar de ELF. El uso de PE resuelve problemas con el soporte de varios esquemas de protección contra copia, que verifican la identidad de los módulos del sistema en el disco y en la memoria.
    • Se ha implementado la capacidad de interacción de los módulos PE con bibliotecas de Unix utilizando la llamada de sistema estándar del núcleo NT, lo que permite ocultar las llamadas al código de Unix de los depuradores de Windows y supervisar el registro de hilos.
    • Las DLL integradas ahora solo se cargan si existe en el disco el archivo correspondiente en formato PE, independientemente de si es una biblioteca auténtica o un stub. Este cambio permite que la aplicación siempre vea un enlace correcto con los archivos PE. Para desactivar este comportamiento, se puede utilizar la variable de entorno WINEBOOTSTRAPMODE.
  • WoW64
    • Se ha realizado la implementación de la arquitectura WoW64 (Windows-on-Windows de 64 bits), que permite ejecutar aplicaciones de Windows de 32 bits en procesos de Unix de 64 bits. El soporte se ha realizado a través de la incorporación de una capa que traduce llamadas al sistema NT de 32 bits en accesos de 64 bits a NTDLL.
    • Las capas WoW64 están preparadas para la mayoría de las bibliotecas de Unix y permiten que los módulos de 32 bits en formato PE accedan a bibliotecas de Unix de 64 bits. Una vez que se complete la conversión de todos los módulos al formato PE, se podrá ejecutar aplicaciones de Windows de 32 bits sin necesidad de instalar bibliotecas de Unix de 32 bits.
  • Temas visuales
    • Se ha implementado soporte para temas. Incluye temas como "Light", "Blue" y "Classic Blue", que se pueden seleccionar a través del configurador WineCfg.
    • Se ha añadido la posibilidad de personalizar la apariencia de todos los elementos de control de la interfaz mediante temas. Se garantiza la actualización automática de los elementos después de cambiar el tema.
    • Todas las aplicaciones integradas de Wine ahora cuentan con soporte para temas. Se ha adaptado las aplicaciones para pantallas de alta densidad de píxeles (High DPI).
  • Subsistema gráfico
    • Se ha añadido una nueva biblioteca Win32u, que extrae partes de las bibliotecas GDI32 y USER32 relacionadas con el procesamiento gráfico y la gestión de ventanas a nivel de núcleo. Más adelante, comenzará el trabajo para trasladar a Win32u componentes de controladores como winex11.drv y winemac.drv.
    • En el controlador Vulkan se ha implementado el soporte para la especificación de la API gráfica Vulkan 1.2.201.
    • Se ha proporcionado soporte para la salida a través de la API Direct2D de objetos geométricos rayados, con la posibilidad de verificar la coincidencia del clic (hit-test).
    • En la API Direct2D se ha implementado soporte inicial para efectos visuales aplicados utilizando la interfaz ID2D1Effect.
    • En la API Direct2D se ha añadido soporte para la interfaz ID2D1MultiThread, utilizada para organizar el acceso exclusivo a recursos en aplicaciones multihilo.
    • En el conjunto de bibliotecas WindowsCodecs se ha implementado soporte para la decodificación de imágenes en el formato WMP (Windows Media Photo) y la codificación de imágenes en el formato DDS (DirectDraw Surface). Se ha suspendido el soporte para la codificación de imágenes en el formato ICNS (para macOS), que no es compatible con Windows.
  • Direct3D
    • Se ha mejorado significativamente el nuevo motor de renderizado que traduce llamadas Direct3D a la API gráfica Vulkan. En la mayoría de las situaciones, el nivel de soporte de Direct3D 10 y 11 en el motor basado en Vulkan se ha llevado al paridad con el antiguo motor basado en OpenGL. Para habilitar el motor de renderizado a través de Vulkan, debe establecer la variable de registro Direct3D "renderer" en el valor "vulkan".
    • Se han implementado muchas características de Direct3D 10 y 11, incluyendo contextos diferidos (Deferred Contexts), objetos de estado que operan en el contexto de dispositivos, desplazamientos constantes en los buffers, limpieza de representaciones de texturas desordenadas, copia de datos entre recursos en formatos sin tipo (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS), etc.
    • Se ha añadido soporte para configuraciones de múltiples monitores, permitiendo seleccionar el monitor para mostrar aplicaciones Direct3D en modo de pantalla completa.
    • La API DXGI ha implementado la posibilidad de corrección gamma de pantalla, que puede ser utilizada por aplicaciones basadas en Direct3D 10 y 11 para ajustar el brillo de la pantalla. Se ha asegurado la obtención de contadores de búferes de cuadros virtuales (SwapChain).
    • Direct3D 12 ha agregado soporte para firmas raíz de versión 1.1.
    • En el código de renderizado a través de la API Vulkan, se ha mejorado la eficiencia en el procesamiento de solicitudes cuando el sistema soporta la extensión VK_EXT_host_query_reset.
    • Se ha agregado la posibilidad de renderizar búferes de cuadros virtuales (SwapChain) a través de GDI, si OpenGL o Vulkan no se pueden utilizar para la visualización, por ejemplo, al renderizar en una ventana desde diferentes procesos, como en programas basados en el marco CEF (Chromium Embedded Framework).
    • Al utilizar el backend para shaders GLSL, se garantiza la aplicación del modificador 'precise' para las instrucciones de shaders.
    • La API DirectDraw ha añadido soporte para renderizado 3D en la memoria del sistema, utilizando dispositivos de software como 'RGB', 'MMX' y 'Ramp'.
    • Se han agregado a la base de gráficos Direct3D las tarjetas AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 y NVIDIA GT 1030.
    • Se ha eliminado la clave 'UseGLSL' del registro HKEY_CURRENT_USER\Software\Wine\Direct3D, y a partir de Wine 5.0 se debe usar 'shader_backend' en su lugar.
    • Para soportar Direct3D 12, ahora se requiere tener la biblioteca vkd3d de al menos la versión 1.2.
  • D3DX
    • En la implementación de D3DX 10, se ha mejorado el soporte para el marco de efectos visuales y se ha añadido soporte para el formato de imagen Windows Media Photo (JPEG XR).
    • Se han añadido funciones para la creación de texturas disponibles en D3DX10, como D3DX10CreateTextureFromMemory().
    • Se han implementado parcialmente las interfaces de programación ID3DX10Sprite y ID3DX10Font.
  • Sonido y video
    • Se han combinado las extensiones de GStreamer para DirectShow y el marco Media Foundation en un solo backend WineGStreamer, lo que debería simplificar el desarrollo de nuevas API de decodificación de contenido.
    • Sobre la base del backend WineGStreamer, se han implementado objetos de Windows Media para la lectura sincrónica y asincrónica.
    • Se ha continuado desarrollando la implementación del marco Media Foundation, añadiendo soporte para la funcionalidad IMFPMediaPlayer, el distribuidor de muestras (sample allocator), mejorando el soporte para EVR y los búferes de renderizado SAR.
    • Se ha eliminado la biblioteca wineqtdecoder, que proporcionaba un decodificador para el formato QuickTime (ahora se utiliza GStreamer para todos los códecs).
  • Dispositivos de entrada
    • Se ha mejorado significativamente la pila para dispositivos de entrada que admiten el protocolo HID (Dispositivos de Interfaz Humana), implementando funciones como el análisis de descriptores HID, el procesamiento de mensajes HID y la provisión de mini controladores HID.
    • Se ha mejorado la traducción de descripciones de dispositivos a mensajes HID en los backends del controlador winebus.sys.
    • Se ha agregado un nuevo backend DirectInput para joysticks que soportan el protocolo HID. Se ha implementado la posibilidad de utilizar efectos de retroalimentación en los joysticks. Mejorado panel de control la interacción con dispositivos compatibles con XInput. En WinMM, el soporte para joysticks se ha trasladado a DInput, en lugar de utilizar el backend evdev en Linux y IOHID en macOS. Se ha eliminado el antiguo controlador de joysticks winejoystick.drv.
    • Se han añadido nuevas pruebas al módulo DInput, basadas en el uso de dispositivos HID virtuales que no requieren un dispositivo físico.
  • Texto y fuentes
    • Se ha agregado el objeto Font Set en DirectWrite.
    • El interfaz TextHost se ha implementado correctamente en RichEdit.
  • Núcleo (interfaces del núcleo de Windows)
    • Al ejecutar un archivo ejecutable no identificado en Wine (por ejemplo, 'wine foo.msi'), ahora se llama a start.exe, que invoca los controladores asociados con el tipo de archivo.
    • Se ha añadido soporte para los mecanismos de sincronización NtAlertThreadByThreadId y NtWaitForAlertByThreadId, que son similares a los futexes en Linux.
    • Se ha añadido soporte para objetos de depuración de NT, utilizados para depurar funciones del núcleo.
    • Se ha añadido soporte para claves de registro dinámicas para almacenar datos de rendimiento.
  • C Runtime
    • Se ha implementado un conjunto completo de funciones matemáticas en el C runtime, que se han trasladado principalmente desde la biblioteca Musl.
    • Se asegura un soporte adecuado para las funciones de cálculo con punto flotante en todas las plataformas CPU.
  • Capacidades de red
    • Se ha mejorado el modo de compatibilidad con Internet Explorer 11 (IE11), que ahora se usa por defecto para procesar documentos HTML.
    • Se ha implementado el modo JavaScript ES6 (ECMAScript 2015) en la biblioteca mshtml, que proporciona soporte para características como la expresión let y el objeto Map.
    • La instalación de paquetes MSI de Wine con complementos del motor Gecko en el directorio de trabajo ahora se realiza según sea necesario y no durante la actualización de Wine.
    • Se ha añadido soporte para el protocolo DTLS.
    • Se ha implementado el servicio NSI (Interfaz de Almacén de Red), que almacena y transmite información sobre el enrutamiento y las interfaces de red en la computadora a otros servicios.
    • Los controladores de API WinSock, como setsockopt y getsockopt, se han trasladado a la biblioteca NTDLL y al controlador afd.sys, para alinearse con la arquitectura de Windows.
    • El directorio de trabajo de Wine ahora instalará sus propios archivos con bases de datos de red, como /etc/protocols y /etc/networks, en lugar de acceder a bases de datos similares de Unix.
  • Plataformas alternativas
    • Se ha añadido soporte para hardware Apple basado en los chips ARM M1 (Apple Silicon).
    • Para admitir las funciones BCrypt y Secur32 en la plataforma macOS, ahora se requiere la instalación de la biblioteca GnuTLS.
    • Los archivos ejecutables de 32 bits para plataformas ARM ahora se compilan en modo Thumb-2, al igual que en Windows. Se utiliza un preloader para cargar dichos archivos.
    • Se ha implementado soporte para la desenrollado (unwinding) de excepciones en plataformas ARM de 32 bits.
    • Para FreeBSD, se ha ampliado el número de consultas admitidas de información de bajo nivel sobre el sistema, como datos sobre el estado de la memoria y el nivel de carga de la batería.
  • Aplicaciones integradas y herramientas de desarrollo
    • La utilidad reg.exe ha añadido soporte para representaciones del registro de 32 y 64 bits. Se ha añadido soporte para copiar claves del registro.
    • La utilidad WineDump ha añadido soporte para la salida de volcado de metadatos de Windows y para mostrar información detallada sobre las entradas de CodeView.
    • En el depurador Wine Debugger (winedbg) se ha implementado la posibilidad de depurar procesos de 32 bits desde un depurador de 64 bits.
    • El compilador IDL (widl) ha añadido la capacidad de cargar bibliotecas integradas en archivos PE, se ha proporcionado soporte para atributos y construcciones específicos de WinRT, y se ha realizado la búsqueda de bibliotecas en función de la plataforma.
  • Sistema de construcción
    • En los directorios específicos de arquitecturas de hardware, las bibliotecas ahora se guardan con nombres que reflejan la arquitectura y el tipo de archivos ejecutables, por ejemplo, 'i386-windows' para el formato PE y 'x86_64-unix' para bibliotecas unix, lo que permite implementar soporte para diferentes arquitecturas en una única instalación de Wine y facilitar la cross-compilation de Winelib.
    • Para establecer en los encabezados de los archivos PE opciones que controlen la transición al uso de bibliotecas DLL nativas, se ha añadido la bandera '--prefer-native option' en winebuild (el proceso DLL_WINE_PREATTACH en DllMain se ha detenido).
    • Se ha añadido soporte para la versión 4 del formato de datos de depuración Dwarf, que ahora se utiliza por defecto al compilar bibliotecas Wine.
    • Se ha añadido la opción de compilación '--enable-build-id' para conservar identificadores únicos de la compilación en los archivos ejecutables.
    • Se agregó soporte para el uso del compilador Clang en modo de compatibilidad con MSVC.
  • Varios
    • Los nombres de los directorios estándar en la interfaz de usuario personalizada (Windows Shell) se han ajustado al esquema utilizado desde Windows Vista, es decir, en lugar de 'Mis Documentos', ahora se crea el directorio 'Documentos', y la mayor parte de los datos se guarda en el directorio 'AppData'.
    • En la capa para la biblioteca OpenCL se ha agregado soporte para la especificación OpenCL 1.2.
    • En el controlador WinSpool se ha agregado soporte para varias opciones de tamaños de página al imprimir.
    • Se agregó soporte inicial para MSDASQL, el proveedor OLE DB de Microsoft para controladores ODBC.
    • El motor Wine Mono con la implementación de la plataforma .NET se ha actualizado a la versión 7.0.0.
    • Los datos Unicode se han actualizado a la especificación Unicode 14.
    • En el árbol de fuentes se han incorporado bibliotecas Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt y Zlib, que se compilan en formato PE y no requieren una versión en formato Unix. Además, estas bibliotecas también pueden ser importadas desde el sistema para utilizar ensamblajes externos en lugar de las versiones PE integradas.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster