Lanzamiento estable de Wine 5.0

Después de un año de desarrollo y 28 versiones experimentales presentado la versión estable de la implementación abierta del Win32 API — Wine 5.0, que incluye más de 7400 cambios. Entre los logros clave de la nueva versión se destaca la entrega de módulos de Wine incorporados en formato PE, soporte para configuraciones de múltiples monitores, una nueva implementación de la API de sonido XAudio2 y soporte para la API gráfica Vulkan 1.1.

En Wine ha sido confirmado funcionan plenamente 4869 (hace un año era 4737) programas para Windows, otros 4136 (hace un año eran 4045) programas funcionan muy bien con configuraciones adicionales y DLL externas. Se observan pequeños problemas en 3635 programas, que no interfieren con el uso de las funciones principales de las aplicaciones.

Mejoras clave novedades Wine 5.0:

  • Módulos en formato PE
    • Con un compilador MinGW, la mayoría de los módulos de Wine ahora se compilan en formato de archivos ejecutables 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 realizan verificación de identidad de los módulos del sistema en el disco y en la memoria;
    • Los archivos ejecutables PE ahora se copian en el directorio ~/.wine ($WINEPREFIX) en lugar de usar archivos DLL ficticios, lo que hace que el contenido se parezca más a las instalaciones reales de Windows, a costa de consumir espacio adicional en disco;
    • Los módulos convertidos a formato PE pueden utilizar funciones estándar de wchar y constantes con Unicode (por ejemplo, L»abc»);
    • En el entorno de ejecución C de Wine se ha añadido soporte para vincular archivos binarios compilados en MinGW, que se utiliza por defecto al compilar DLL en lugar del entorno de ejecución de MinGW;
  • Subsistema gráfico
    • Se ha añadido soporte para trabajar con múltiples monitores y adaptadores gráficos, incluyendo la posibilidad de modificar dinámicamente las configuraciones;
    • Se ha actualizado el controlador para la API gráfica Vulkan, que se ha alineado con la especificación Vulkan 1.1.126;
    • En la biblioteca WindowsCodecs se ha implementado la posibilidad de convertir formatos raster adicionales, incluyendo formatos con paleta indexada;
  • Direct3D
    • Al ejecutar aplicaciones de pantalla completa de Direct3D, se ha asegurado la desactivación del protector de pantalla;
    • En DXGI (Infraestructura Gráfica DirectX) se ha añadido soporte para notificar a la aplicación sobre la minimización de su ventana, lo que permite que la aplicación reduzca la ejecución de operaciones que consumen muchos recursos al minimizar la ventana;
    • Para aplicaciones que utilizan DXGI, se ha implementado la posibilidad de alternar entre el modo de pantalla completa y el modo ventana mediante la combinación Alt+Enter;
    • Se han ampliado las capacidades de implementación de Direct3D 12, por ejemplo, se añadió soporte para alternar entre el modo de pantalla completa y el modo ventana, cambiar modos de pantalla, salida con escalado y controlar el intervalo de reemplazo de los buffers de renderizado (swap interval);
    • Se ha mejorado el manejo de diversas situaciones límite, como la aplicación de valores de entrada fuera de los rangos permitidos para las pruebas de transparencia y profundidad, renderización con texturas reflejadas y buffers, uso de objetos DirectDraw incorrectos clipper, creación de dispositivos Direct3 para ventanas incorrectas, uso de áreas visibles, valores mínimos de parámetros que son iguales a los máximos, etc.;
    • En Direct3D 8 y 9 se proporciona un seguimiento más preciso de las áreas "sucias" de las texturas cargadas;
    • Se ha reducido el tamaño del espacio de direcciones necesario al cargar texturas 3D, comprimidas mediante el método S3TC (en lugar de cargar completamente, las texturas se cargan en fragmentos).
    • Se ha implementado la interfaz ID3D11Multithread para proteger secciones críticas en aplicaciones multihilo;
    • Para las aplicaciones antiguas de DirectDraw, se han realizado diversas mejoras y correcciones relacionadas con el cálculo de iluminación;
    • Se han implementado llamadas adicionales para obtener información sobre los shaders en la API ShaderReflection;
    • Se ha añadido soporte en wined3d para blitter basado en CPU para procesar recursos comprimidos;
    • Se ha ampliado la base de datos de tarjetas gráficas reconocidas en Direct3D;
    • Se han añadido nuevas claves de registro HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (backend para trabajar con shaders: "glsl" para GLSL, "arb" para ARB vertex/fragment y "none" para desactivar el soporte de shaders), "strict_shader_math" (0x1 — activar, 0x0 — desactivar la conversión de shaders Direct3D). La clave "UseGLSL" ha sido declarada obsoleta (debe usarse "shader_backend");
  • D3DX
    • Se ha implementado soporte para el mecanismo de compresión de texturas 3D S3TC (S3 Texture Compression);
    • Se han añadido implementaciones correctas de operaciones como el relleno de texturas y superficies no mapeables (unmappable);
    • Se han realizado diversas mejoras y correcciones en el marco de creación de efectos visuales;
  • Núcleo (interfaces del núcleo de Windows)
    • La mayoría de las funciones utilizadas en Kernel32 se han trasladado a
      KernelBase, siguiendo los cambios en la arquitectura de Windows;
    • La posibilidad de mezclar DLL de 32 y 64 bits en los directorios utilizados para la carga. Se asegura la ignorancia de bibliotecas que no corresponden a la arquitectura actual (32/64), en caso de que más adelante en la ruta se pueda encontrar una biblioteca válida para la arquitectura actual.
    • Se ha mejorado la emulación de objetos del núcleo para los controladores de dispositivos.
    • Se han implementado objetos de sincronización a nivel de núcleo, como spinlocks, mutexes rápidos y variables acopladas a recursos.
    • Se proporciona correcta información a las aplicaciones sobre el estado de la batería.
  • Interfaz de usuario e integración con el escritorio.
    • Las ventanas minimizadas ahora se muestran utilizando un título en lugar de un icono al estilo de Windows 3.1.
    • Se han añadido nuevos estilos de botones. SplitButton (botón con menú desplegable de acciones) y Command Links (enlaces en cuadros de diálogo que se utilizan para avanzar a la siguiente etapa).
    • Se han creado enlaces simbólicos para las carpetas 'Descargas' y 'Plantillas', que apuntan a los directorios correspondientes en sistemas Unix.
  • Dispositivos de entrada
    • Durante el arranque, se asegura la instalación y carga de los controladores de dispositivos Plug & Play necesarios.
    • Se ha mejorado el soporte para controladores de juegos, incluidos mini-joysticks (hat switch), volantes y pedales de acelerador y freno.
    • Se ha descontinuado el soporte para la antigua API de Linux que interactuaba con joysticks, utilizada en núcleos de Linux anteriores a la versión 2.2.
  • .NET
    • El motor Mono se ha actualizado a la versión 4.9.4 e incluye partes del marco de trabajo de Windows Presentation Foundation (WPF).
    • Se ha añadido la capacidad de instalar complementos de Mono y Gecko en un único directorio común, ubicando los archivos en la jerarquía /usr/share/wine en lugar de copiarlos a nuevos prefijos.
  • Capacidades de red
    • El motor de navegador Wine Gecko, que se utiliza en la biblioteca MSHTML, se ha actualizado a la versión 2.47.1. Se ha implementado soporte para nuevas API de HTML.
    • Se ha implementado soporte para elementos SVG en MSHTML.
    • Se han añadido muchas nuevas funciones de VBScript (por ejemplo, controladores de errores y excepciones, funciones Hour, Day, Month, String, LBound, RegExp.Replace, RScriptTypeInfo_* y ScriptTypeComp_Bind*, etc.).
    • Se ha garantizado la persistencia del estado del código en VBScript y JScript (persistencia de script);
    • Se ha añadido una implementación inicial del servicio HTTP (WinHTTP) y la API asociada (HTTPAPI) para aplicaciones cliente y servidor que envían y reciben solicitudes mediante el protocolo HTTP.
    • Se ha implementado la posibilidad de obtener parámetros de configuración del proxy HTTP a través de DHCP.
    • Se ha añadido soporte para redirigir las solicitudes de autenticación a través del servicio Microsoft Passport;
  • Criptografía
    • Se ha implementado soporte para claves criptográficas basadas en curvas elípticas (ECC) usando GnuTLS.
    • Se ha añadido la capacidad de importar claves y certificados desde archivos en formato PFX;
    • Se ha añadido soporte para el esquema de generación de claves basado en la contraseña PBKDF2;
  • Texto y fuentes
    • En la implementación de la API DirectWrite se ha añadido soporte para las capacidades de OpenType relacionadas con el posicionamiento de glifos, que están habilitadas por defecto para la tipografía en Latin, incluyendo el kerning;
    • Se ha mejorado la seguridad en el procesamiento de datos de fuentes mediante la verificación de la validez de diversas tablas de datos antes de su uso;
    • Las interfaces de DirectWrite se han alineado con el SDK reciente;
  • Sonido y video
    • Se ha propuesto una nueva implementación de la API de sonido XAudio2, basada en el proyecto FAudio. El uso de FAudio en Wine permite lograr una mejor calidad de sonido en los juegos y aprovechar características como la mezcla de volumen y efectos de sonido avanzados;
    • Se han añadido un gran número de nuevas llamadas en la implementación del marco Media Foundation, incluyendo soporte para colas asíncronas integradas y personalizadas, API de Source Reader, Media Session, etc.
    • El filtro de captura de video ha sido trasladado al uso de la API v4l2 en lugar de la API v4l1, lo que ha permitido ampliar el rango de cámaras compatibles;
    • Se han eliminado los decodificadores de AVI, MPEG-I y WAVE embebidos, y ahora se utilizan los GStreamer o QuickTime del sistema;
    • Se ha añadido un subconjunto de las API de configuración VMR7;
    • Se ha añadido soporte para el ajuste de volumen de canales individuales en los controladores de sonido;
  • Internacionalización
    • Las tablas Unicode se han actualizado a la versión 12.1.0;
    • Se ha implementado soporte para la normalización de Unicode;
    • Se ha asegurado la instalación automática de la región geográfica (HKEY_CURRENT_USER\Control Panel\International\Geo) basada en la configuración de idioma actual;
  • RPC/COM
    • Se ha añadido soporte para estructuras complejas y arreglos en typelib;
    • Se ha añadido una implementación inicial de la biblioteca runtime de Windows Script;
    • Se ha añadido una implementación inicial de la biblioteca ADO (Microsoft ActiveX Data Objects);
  • Instaladores
    • Se ha implementado soporte para la entrega de parches (Patch Files) en el instalador MSI;
    • En la utilidad WUSA (Instalador independiente de Windows Update) se ha habilitado la capacidad de instalar actualizaciones en formato .MSU;
  • Plataforma ARM
    • Para la arquitectura ARM64, se añadió soporte para el desmantelamiento de pila (stack unwinding) en ntdll. Se añadió soporte para la conexión de bibliotecas externas libunwind;
    • Se ha implementado soporte para proxies sin costuras (stubless proxies) en la arquitectura ARM64 para interfaces de objetos;
  • Herramientas para el desarrollo / Winelib
    • Se ha añadido la posibilidad de utilizar el depurador de Visual Studio para la depuración remota de aplicaciones ejecutadas en Wine;
    • Se ha implementado parcialmente la biblioteca DBGENG (Debug Engine);
    • Los archivos ejecutables compilados para Windows ya no dependen de libwine, lo que permite ejecutarlos en Windows sin dependencias adicionales;
    • En el Compilador de Recursos y el Compilador IDL se añadió la opción ‘—sysroot’ para definir la ruta de ubicación de los archivos de encabezado;
    • Se añadieron las opciones ‘—target’, ‘—wine-objdir’ al winegcc,
      ‘—winebuild’ y ‘-fuse-ld’, simplificando la configuración del entorno para la compilación cruzada;
  • Aplicaciones integradas
    • Se implementó la utilidad CHCP para configurar la codificación de la consola;
    • Se implementó la utilidad MSIDB para manipular bases en formato MSI;
  • Optimización del rendimiento
    • Diferentes funciones relacionadas con el tiempo han sido adaptadas para utilizar funciones de sistema de alto rendimiento para temporizadores, lo que ha reducido la sobrecarga en el ciclo de renderizado de muchos juegos;
    • Se añadió la posibilidad de uso en el sistema de archivos Ext4 en modo sin distinción de mayúsculas y minúsculas;
    • Se optimizó el rendimiento del procesamiento de un gran número de elementos en diálogos de salida de listas que operan en modo LBS_NODATA;
    • Se añadió una implementación más rápida de bloqueos SRW (Slim Reader/Writer) para Linux, trasladada a Futex;
  • Dependencias externas
    • Para compilar módulos en formato PE se utilizó el compilador cruzado MinGW-w64;
    • La implementación de XAudio2 requiere la biblioteca FAudio;
    • Para rastrear cambios en archivos en sistemas BSD
      se utilizó la biblioteca Inotify;
    • Para la gestión de excepciones en la plataforma ARM64 se requiere la biblioteca Unwind;
    • En lugar de Video4Linux1 ahora se requiere la biblioteca Video4Linux2.

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