Lanzamiento estable de Wine 10.0

Después de un año de desarrollo y 29 versiones experimentales, se presenta la versión estable de la implementación abierta de Win32 API — Wine 10.0, que incluye más de 6000 cambios. Entre los logros clave en esta nueva versión se destaca el soporte total para la arquitectura ARM64EC, escalado en pantallas de alta densidad de píxeles, inclusión predeterminada del controlador Wayland, implementación de paneles para la configuración de pantalla y joystick, un backend multimedia alternativo basado en FFmpeg, un controlador Bluetooth, soporte para Vulkan 1.4 y la capacidad de emular cambios en los modos de video.

Wine ha confirmado el funcionamiento completo de 5372 programas para Windows (hace un año 5336, hace dos años 5266, hace tres años 5156); otros 4435 programas (hace un año 4397, hace dos años 4370, hace tres años 4312) funcionan perfectamente con configuraciones adicionales y DLL externas. Hay 4020 programas (hace un año 3943, hace dos años 3888, hace tres años 3813) que presentan problemas menores, los cuales no afectan el uso de las funciones básicas de las aplicaciones.

Novedades clave de Wine 10.0:

  • ARM64
    • Se ha logrado un soporte completo para la arquitectura ARM64EC (Compatible con Emulación ARM64), cuyo nivel de soporte en Wine ha alcanzado la paridad con la arquitectura ARM64. La arquitectura ARM64EC ha sido diseñada para facilitar la portabilidad de aplicaciones originalmente escritas para sistemas x86_64 a sistemas ARM64 y permite ejecutar en un entorno ARM64 módulos individuales con código x86_64 utilizando un emulador.
    • Se ha implementado soporte completo para el formato de archivos ejecutables PE ARM64X, que permite combinar en un único archivo ejecutable el código para las arquitecturas ARM64EC y ARM64. Para compilar Wine en formato ARM64X es necesario instalar LLVM desde Git (la funcionalidad requerida estará incluida en la versión 20 de LLVM) y al iniciar el script 'configure', especificar la opción '--enable-archs=arm64ec,aarch64'.
    • Se ha implementado una interfaz para emular sistemas de 64 bits x86. Al utilizar ARM64EC, Wine se ejecuta tal cual, mientras que la emulación se aplica solo al código de aplicaciones x86-64. La biblioteca con el emulador aún no está incluida en la composición principal de Wine, pero para ejecutar código x86-64 en un entorno ARM64 se puede utilizar un emulador externo FEX, compilado con soporte para ARM64EC.
    • Para el soporte de ARM64, se requiere en el sistema páginas de memoria de 4KB, como lo exige el ABI de Windows (la ejecución en entornos con núcleos de Linux que utilizan páginas de memoria de 16K o 64K aún no es compatible).
  • Subsistema gráfico
    • Se ha implementado un escalado más preciso en pantallas con alta densidad de píxeles (High-DPI). Se ha proporcionado soporte para el modo de conciencia DPI para la organización de la visualización de aplicaciones en pantallas de alta densidad de píxeles, teniendo en cuenta si la aplicación admite la adaptación a los cambios de DPI o no (las aplicaciones que no consideran el DPI se escalan automáticamente). Se han añadido opciones para anular el soporte de High-DPI vinculado a aplicaciones individuales o prefijos de Wine.
    • En el controlador para la API gráfica Vulkan se ha añadido soporte para la especificación Vulkan 1.4 (en Wine 9.0 se soportaba Vulkan 1.3.272). Se ha incluido soporte para las extensiones de Vulkan para la codificación y decodificación de videos.
    • Al utilizar el backend X11 se ha implementado la posibilidad de renderizar ventanas secundarias de Vulkan para aplicaciones que utilizan tales ventanas para mostrar contenido 3D (anteriormente esta posibilidad solo estaba disponible para OpenGL).
    • En la biblioteca GdiPlus se ha añadido soporte para el mecanismo de vinculación de fuentes («Font Linking»), que permite utilizar múltiples fuentes al mostrar texto cuando faltan fuentes que abarquen todos los caracteres que aparecen en el texto.
  • Wayland
    • En la configuración por defecto se ha activado el controlador winewayland.drv, que permite usar Wine en entornos basados en el protocolo Wayland sin recurrir a XWayland y componentes de X11. Wine ejecuta aplicaciones por defecto en Wayland directamente solo si XWayland no está disponible; de lo contrario, el lanzamiento utilizando XWayland sigue siendo prioritario. Para forzar la inclusión de Wayland se puede usar la variable de entorno DISPLAY, o agregar una clave en el registro creando un archivo file.reg: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] «Graphics»=»wayland» y aplicándolo con el comando: $ WINEPREFIX=\/ruta\/al\/prefijo wine regedit \/ruta\/al\/file.reg
    • En el controlador winewayland.drv se ha añadido soporte para OpenGL y buffers de píxeles (pBuffer).
    • Se han resuelto problemas con la posición de las ventanas emergentes en entornos basados en Wayland.
    • Al utilizar Wayland se ha implementado el soporte para la repetición automática de pulsaciones al mantener presionadas las teclas.
  • Integración con el escritorio
    • Se ha añadido un mecanismo experimental de emulación «modesetting», que permite emular el cambio de modos de video sin realizar cambios reales en la configuración de la pantalla. La visibilidad del cambio de resolución de la pantalla sin cambiar el modo de video se crea a través de la extensión y el escalado de ventanas.
    • Se ha añadido un nuevo applet del Panel de Control de Escritorio (desk.cpl) que implementa la interfaz de gestión de la configuración de la pantalla (por ejemplo, se puede cambiar la resolución virtual del escritorio o ajustar los parámetros de la pantalla emulada).
    • Se ha añadido la posibilidad de restablecer la configuración de la pantalla a los valores predeterminados en caso de que no se pueda restaurar el estado después de un cierre inesperado del proceso.
    • Se ha añadido soporte para desactivar la visualización de iconos en la bandeja del sistema (en 'HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer' se debe establecer 'NoTrayItemsDisplay=1').
    • Se ha añadido soporte para desactivar lanzadores de Shell en modo escritorio (en 'HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer' se debe establecer 'NoDesktop=1').
  • Direct3D
    • Para la representación utilizando OpenGL ahora se requiere soporte para GLSL 1.20, así como para las extensiones EXT_framebuffer_object y ARB_texture_non_power_of_two. El soporte para el antiguo backend ARB shader y las configuraciones OffscreenRenderingMode ha sido descontinuado.
    • Para Direct3D 9 y versiones anteriores se ha añadido un pipeline gráfico de funciones fijas (en versiones antiguas de Direct3D solo se ofrecían operaciones gráficas predefinidas que no podían ser modificadas), implementado mediante el lenguaje de sombreador HLSL y que permite emular las funciones fijas al renderizar a través de la API de Vulkan o OpenGL.
    • Al renderizar utilizando Vulkan se activan las extensiones de Vulkan para cambiar dinámicamente el estado del pipeline gráfico, lo que ayuda a reducir los bloqueos en los juegos.
    • Se ha añadido un backend alternativo glsl-vkd3d para los sombreados GLSL, que utiliza vkd3d-shader.
    • Se ha proporcionado soporte inicial para la compilación de efectos Direct3D utilizando vkd3d-shader.
    • En la biblioteca D3DX9 se ha implementado la capacidad de generar texturas MIP (MipMap) al cargar texturas volumétricas. Se ha añadido soporte para formatos de presentación de color 64bpp RGBA y 48bpp RGB en imágenes PNG, así como formatos X8L8V8U8, A2W10V10U10, A8P8, V16U16 y Q16W16V16U16.
  • Sonido y video
    • Como alternativa al backend basado en GStreamer, se ha implementado un nuevo backend multimedia basado en FFmpeg, adecuado para garantizar el funcionamiento del marco Media Foundation. Para habilitar el backend alternativo en la sección del registro 'HKCU\Software\Wine\MediaFoundation' debe especificarse 'DisableGstByteStreamHandler=1'.
    • Se ha mejorado la implementación de la API Media Foundation, que ahora se integra mejor con aplicaciones que dependen de componentes de demultiplexión y decodificación.
    • En la API DirectMusic se añadió soporte para cargar archivos MIDI.
  • Dispositivos de entrada
    • Se añadió la versión inicial del controlador Bluetooth.
    • Se añadió el applet Joystick Control Panel (joy.cpl) con la implementación de configuraciones para el joystick.
    • Se realizaron mejoras relacionadas con dispositivos de entrada (touchpads, ratones) que utilizan el protocolo HID (Human Interface Device). Se añadió el controlador mouhid.sys para dispositivos HID. Se implementó un análisis correcto de dispositivos de entrada compuestos y se aseguró la transmisión de información sobre ellos a las aplicaciones de Windows como dispositivos separados.
    • Para el backend de X11 se añadió soporte para pantallas táctiles y se implementó la posibilidad de usar el modo multitáctil mediante el procesamiento de mensajes WM_POINTER* (WM_POINTERENTER, WM_POINTERLEAVE, etc.).
    • Se implementó la colocación de algunas estructuras internas de la biblioteca user32 en memoria compartida, lo que mejoró el rendimiento y redujo la carga en el Wine Server.
    • En winex11 se añadió soporte para el procesamiento de eventos XInput2 vinculado a ventanas individuales.
    • Se implementó un soporte correcto para teclados con distribución Dvorak.
  • Núcleo (interfaces del núcleo de Windows)
    • Se añadió soporte para elevar los privilegios de procesos (un proceso inicialmente ejecutado como usuario normal puede recibir privilegios de administrador). Al crear procesos del servidor (msi action server), así como procesos que invocan las funciones RtlCreateUserProcess() y CreateProcessInternal(), se utiliza por defecto un token de administrador limitado.
    • Al obtener información sobre las etiquetas de los discos, ahora se utiliza, cuando es posible, la llamada a servicios del sistema a través de DBus, en lugar de intentar acceder directamente al dispositivo.
    • Se implementó un mecanismo unidireccional de comunicación entre procesos (IPC) Mailslots directamente en el Wine server, lo que permitió lograr un soporte completo de la semántica de Windows.
    • Se implementó la espera de eventos del puerto serie en modo asíncrono.
    • Se añadió soporte completo para las extensiones de procesador XSTATE en los contextos de hilo, lo que permitió utilizar nuevas extensiones vectoriales como AVX-512.
  • Aplicaciones integradas
    • Se reescribió el motor de procesamiento de entrada utilizado en el intérprete de comandos cmd.exe. En cmd.exe se añadió soporte para las operaciones '||' y '&&'.
    • Se añadió soporte para expresiones regulares y búsqueda sin distinción de mayúsculas y minúsculas a la utilidad findstr.
    • Se añadió la posibilidad de registrar módulos ARM64EC en las utilidades regsvr32 y rundll32.
    • Se han añadido utilidades: sort para ordenar datos de entrada, fc para comparar archivos y where para buscar archivos.
    • La aplicación wmic ha implementado un modo interactivo.
    • En Explorer se añadió soporte opcional para el menú de inicio y la barra de herramientas. Se asegura el lanzamiento de explorer.exe con derechos de acceso reducidos.
  • Herramientas para desarrolladores
    • Se ha añadido la opción «-marm64x» en winebuild para generar bibliotecas híbridas ARM64X.
    • Se ha añadido la opción «-marm64x» en winegcc, que permite la compilación para ARM64X.
    • En los archivos generados utilizando el lenguaje de definición de interfaces IDL (Interface Definition Language), se han utilizado componentes que son totalmente compatibles con la ejecución en modo de interpretación.
    • El compilador del lenguaje de definición de interfaces IDL (Interface Definition Language) ahora admite la generación de bibliotecas de tipos (TypeLib) en el antiguo formato (SLTG).
    • La utilidad winedump ha agregado soporte para guardar volcado de tablas minidump, información sobre excepciones C++ y recursos typelib.
  • Varios
    • Se ha mejorado el soporte del protocolo de intercambio de claves Diffie-Hellman (DH). Se ha añadido la posibilidad de configurar y obtener parámetros DH. Se han implementado controladores para crear pares de claves públicas y privadas.
    • Se ha proporcionado el uso de relleno adicional OAEP (Optimal Asymmetric Encryption Padding) junto con el algoritmo RSA.
    • La API DirectPlay ha implementado el soporte para sesiones de red.
    • Se ha mejorado el manejo de estados de entrada/salida asíncronos al trabajar en modo WoW64 (Windows-on-Windows de 64 bits), permitiendo ejecutar aplicaciones de Windows de 32 bits en sistemas Unix de 64 bits.
    • Se ha añadido soporte para la carga de controladores ODBC para bases de datos construidas para Windows.
    • Para la plataforma ARM, se ha implementado el soporte completo para RPC/COM, C++ RTTI (Información de Tipo en Tiempo de Ejecución) y excepciones C++.
    • El runtime de C ha implementado soporte UTF-8 en funciones ANSI.
    • Se han ampliado las capacidades del motor MSHTML. Se ha añadido soporte para prototipos y constructores de objetos. Se ha agregado una nueva interfaz de vinculación de objetos para MSHTML en el motor JavaScript. Las funciones integradas de MSHTML se han transformado en objetos JavaScript válidos. Se ha mejorado el recolector de basura para JavaScript, que ahora abarca todos los contextos de ejecución del script en el hilo. Se ha añadido soporte para objetos JavaScript ArrayBuffer y DataView.
    • Se ha añadido soporte para análisis estático utilizando Clang y reportes de pruebas JUnit en el sistema de integración continua basado en Gitlab.
    • Se ha integrado la biblioteca Capstone 5.0.3, que ha permitido la desensambladura en el depurador WineDb.
    • Componentes actualizados a nuevas versiones: Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibPng 1.6.44, LibTiff 4.7.0, LibXml2 2.12.8, LibXslt 1.1.42 y Zlib 1.3.1.

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