Lanzamiento estable de Wine 9.0

Luego de un año de desarrollo y 26 versiones experimentales, se presentó una versión estable de la implementación abierta de la API Win32 - Wine 9.0, que incorporó más de 7000 cambios. Los logros clave en la nueva versión incluyen la implementación de la arquitectura WoW64 para ejecutar programas de 32 bits en un entorno de 64 bits, integración de controladores para soportar Wayland, soporte para la arquitectura ARM64, implementación de la API DirectMusic y soporte para tarjetas inteligentes.

Se ha confirmado que 5336 programas (5266 hace un año, 5156 hace dos años y 5049 hace tres años) funcionan correctamente en Wine. WindowsOtros 4397 programas (4370 hace un año, 4312 hace dos años y 4227 hace tres años) funcionan correctamente con configuraciones adicionales y DLL externas. 3943 programas (3888 hace un año, 3813 hace dos años y 3703 hace tres años) presentan problemas menores que no afectan la funcionalidad básica de las aplicaciones.

Innovaciones clave en Wine 9.0:

  • Se ha añadido el controlador winewayland.drv, lo que permite usar Wine en entornos basados ​​en Wayland sin necesidad de componentes XWayland o X11. Este desarrollo tiene como objetivo proporcionar un entorno Wayland puro con soporte para el lanzamiento. Windows- Aplicaciones que no requieren la instalación de paquetes relacionados con X11, lo que permite un mayor rendimiento y capacidad de respuesta en los juegos al eliminar capas innecesarias. El uso de un entorno Wayland puro para Wine también elimina los problemas de seguridad inherentes a X11 (por ejemplo, los juegos X11 no confiables pueden espiar otras aplicaciones porque el protocolo X11 permite el acceso a todos los eventos de entrada y la sustitución de pulsaciones de teclas).

    El controlador está marcado como experimental y en desarrollo, pero, sin embargo, ya admite muchas funciones, como administración de ventanas, trabajo con múltiples monitores, soporte para escalar la salida en pantallas de alta densidad de píxeles (alto DPI), trabajar con coordenadas relativas al rastrear el movimiento del mouse y soporte para la API de gráficos Vulkan. De forma predeterminada, el controlador no está activo y para habilitarlo debe agregar “wayland” al parámetro de registro “HKCU\Software\Wine\Drivers” y asegurarse de que la variable de entorno DISPLAY no esté configurada: wine reg.exe add HKCU\ \Software\\Wine\\Controladores /v Gráficos /d x11,wayland

  • Todos los módulos se han convertido a la interfaz de llamada del sistema NT, en lugar de realizar llamadas directas entre las capas PE y Unix, lo que marca la finalización de muchos años de trabajo para convertir todas las DLL para utilizar el formato de archivo ejecutable PE (Portable Executable).
  • El desarrollo de la capa WoW64 (64 bits) continuó Windows-en-Windows), lo que te permite ejecutar 32 bits Windows- Aplicaciones en sistemas Unix de 64 bits. Todos los módulos que acceden a las bibliotecas de Unix utilizan traductores de llamadas al sistema WoW64 (thunks), lo que permite que los módulos de 32 bits en formato PE accedan a las bibliotecas de Unix de 64 bits.

    Se ha mejorado el nuevo modo de lanzamiento de WoW64, permitiendo que el código de 32 bits se ejecute dentro de un proceso de 64 bits (en el antiguo modo WoW64, las aplicaciones de 32 bits se ejecutaban en procesos Unix de 32 bits). Se ha añadido compatibilidad con el nuevo modo WoW64 en la plataforma. macOSDado que el nuevo modo WoW64 tiene algunos errores menores, como la falta de compatibilidad con 16 bits y un rendimiento reducido de OpenGL debido a la falta de compatibilidad con la extensión ARB_buffer_storage, aún no está habilitado de forma predeterminada y requiere compilarse con la opción "--enable-archs=i386,x86_64" en el script de configuración.

  • Se agregó la capacidad de ejecutar archivos ejecutables existentes. Windows En sistemas con arquitectura ARM64, Wine ahora se puede compilar para la ABI ARM64EC (compatible con emulación ARM64) y cargar módulos ARM64EC. Estos módulos se utilizan para simplificar la portabilidad de aplicaciones originalmente escritas para la arquitectura x86_64 a sistemas ARM64, permitiendo la ejecución de módulos de código x86_64 individuales en el entorno ARM64 mediante un emulador. Se ha añadido compatibilidad con el formato de archivo PE ARM64X, que permite cargar un único archivo ejecutable tanto en procesos x64/Arm64EC como ARM64. Se ha implementado una interfaz para emular sistemas x86 de 32 bits, pero la biblioteca del emulador aún no está incluida en la distribución principal de Wine (se puede usar el emulador externo FEX para ejecutar código x86 en el entorno ARM64).
  • Subsistema de gráficos
    • El controlador PostScript se ha rediseñado para admitir archivos de cola en el formato Windows, que almacenan datos sobre trabajos de impresión. Se excluyen las llamadas directas al controlador desde el entorno Unix.
    • Se ha agregado compatibilidad con el modo oscuro a los temas de WinRT. Se ha agregado una configuración a WineCfg para habilitar el diseño de interfaz oscura.
    • El controlador para la API de gráficos Vulkan ha agregado soporte para la especificación Vulkan 1.3.272 (8.0 era compatible con Wine 1.3.237).
    • Se han optimizado las funciones de la biblioteca GdiPlus, permitiendo un mayor rendimiento gráfico.
  • Direct3D
    • El análisis de un flujo de comandos de subprocesos múltiples se suspende cuando no se procesan comandos de renderizado, lo que permite reducir el consumo de energía al nivel de procesamiento de un solo subproceso cuando se ejecutan programas que no ocupan todo el ancho de banda del flujo de comandos.
    • Direct3D 10 incluye soporte para efectos adicionales.
    • Realicé optimizaciones de rendimiento en el código WineD3D y el backend utilizando la API de gráficos Vulkan.
    • El código de renderizado basado en la API de Vulkan ahora verifica qué capacidades admite el dispositivo y le dice a la aplicación qué nivel de funcionalidad Direct3D está disponible.
    • Se han implementado las funciones D3DXFillTextureTX y D3DXFillCubeTextureTX.
    • El backend clásico del sombreador OpenGL ARB ha agregado soporte para definir sombras usando la extensión ARB_fragment_program_shadow.
    • D3DXLoadMeshHierarchyFromX y funciones similares han agregado soporte para cargar datos de usuario mediante la interfaz ID3DXLoadUserData.
  • sonido y video
    • Se ha propuesto una implementación inicial de la API de DirectMusic. Se agregó soporte para colecciones, instrumentos y muestras de sonido en formato SoundFont. Se agregó soporte para el efecto Doppler. Se han implementado pruebas para verificar la correcta implementación al operar el secuenciador dmime y el sintetizador MIDI dmsynth.
    • La biblioteca FluidSynth está integrada en la API de DirectMusic para su uso.
    • Se implementó la compatibilidad para cargar fuentes de sonido (SoundFont: formatos para síntesis basada en muestras utilizados para reproducir archivos MIDI) en los formatos DLS1 y DLS2, así como en el formato SF2 utilizado en Linux.
    • Se agregó la capacidad de reproducir contenido MIDI usando la biblioteca dmsynth, usando el sintetizador de software FluidSynth y la API DirectSound para salida de audio.
    • Se agregó un decodificador de video en el formato de códec de video Indeo IV50.
  • DirectShow
    • Se ha implementado el componente DMO (DirectX Media Object) con un decodificador de formato WMV (Windows Vídeo multimedia).
    • Se agregó un filtro de captura de audio (DirectShow Audio Capture Filter).
    • Además de las transmisiones de audio, MPEG-1 Stream Splitter (DirectShow MPEG-1 Stream Splitter) ahora admite transmisiones de video y transmisiones de servicios.
    • Se ha implementado un filtro para decodificar vídeo en formato MPEG-1 (DirectShow MPEG-1 Video Decoder).
  • Dispositivos de entrada
    • DirectInput admite el mapeo de acciones, que le permite vincular botones en un controlador de juego a acciones específicas en los juegos.
  • Integración de escritorio
    • Los enlaces se han exportado al entorno principal del usuario, lo que permite que las aplicaciones que se ejecutan en Wine sean llamadas como controladores de protocolo al abrir una URL (por ejemplo, iniciar spotify.exe al abrir enlaces como “spotify:user:spotify:playlist:848218482355482821”).
    • Implementé la extracción de datos EDID (Extended Display Identification Data) con información sobre los parámetros del monitor conectado, como el nombre y modelo del dispositivo.
    • Es posible cerrar una ventana del escritorio implementada en modo de pantalla completa usando el botón "Salir del escritorio" en el menú "Inicio".
  • Internacionalización
    • Se ha ampliado la compatibilidad con los IME (Editores de Métodos de Entrada). Se ha trabajado para garantizar la compatibilidad con los sistemas nativos. Windows Implementaciones de IME y una mejor integración con Linux IME
    • Se ha proporcionado la generación de bases de datos locales en formato locale.nls a partir de la base de datos Unicode CLDR (Unicode Common Locale Data Repository) versión 44. Soporte para configuraciones regionales adicionales bew-ID, blo-BJ, csw-CA, ie-EE, mic-CA , se ha agregado prg-PL, skr-PK, tyv-RU, vmw-MZ, xnr-IN y za-CN.
    • La interfaz ha sido traducida al georgiano. Se proporcionan traducciones completas para 16 idiomas y traducciones parciales para 31 idiomas.
    • Las tablas de caracteres Unicode se han actualizado a la versión estándar 15.1.0. La base de datos de zonas horarias ha sido actualizada.
  • Núcleo (interfaces del núcleo) Windows)
    • Como la versión publicada Windows definido por defecto Windows 10.
    • Para archivos ejecutables en formato PE, se implementa la compatibilidad con la aleatorización del espacio de direcciones (ASLR), pero las direcciones para cargar el código en la memoria aún no están completamente aleatorizadas.
    • Se ha implementado soporte para un montón débilmente fragmentado (LFH, Low Fragmentation Heap), lo que ha aumentado el rendimiento de las operaciones de asignación de memoria.
    • Se agregó soporte para reserva de memoria (marcador de posición) al mecanismo de asignación de memoria virtual, lo que permite que una aplicación reserve un área específica de memoria virtual para uso futuro.
    • Los cargadores de 64 bits (cargador y precargador) de bibliotecas y archivos ejecutables se compilan en formato PIE (ejecutables independientes de la posición) para liberar parte del espacio de direcciones de 32 bits.
    • Se proporciona un desenrollado correcto de la pila para las llamadas al sistema NT y las llamadas de devolución de llamada del usuario.
  • Funciones de red
    • El motor MSHTML admite el mecanismo de recolección de basura "Recolección cíclica".
    • MSHTML ha agregado soporte para el procesamiento sincrónico de solicitudes XMLHttpRequest.
    • jscript.dll agrega soporte para que un objeto WeakMap funcione con una colección de pares clave/valor en los que la clave es un objeto que puede tener un valor arbitrario adjunto. Se implementaron los métodos WeakMap.get(), WeakMap.delete(), WeakMap.clear() y WeakMap.has().
    • El motor del navegador Gecko se ha actualizado a la versión 2.47.4.
    • Se ha implementado soporte para notificaciones sobre cambios en el estado de la interfaz de red.
  • Criptografía y seguridad
    • Se agregó soporte para tarjetas inteligentes a la biblioteca Winscard.dll, implementada a través de la biblioteca del sistema PCSClite.
    • BCrypt ha agregado soporte para el protocolo de intercambio de claves Diffie-Hellman.
    • Se implementó el paquete Negotiate, que proporciona una capa para usar la interfaz SSPI (Interfaz de proveedor de soporte de seguridad) para acceder a los proveedores de SSP (Proveedor de soporte de seguridad).
  • Aplicaciones integradas
    • Wine Debugger (winedbg) utiliza la biblioteca Zydis para desmontar las instrucciones de la máquina X86.
    • La interfaz de WineCfg se ha actualizado para ser compatible con versiones anteriores en plataformas de 64 bits. Windows (antes de XP), que permite ejecutar aplicaciones antiguas utilizando el modo WoW64.
    • Todas las aplicaciones gráficas integradas ahora muestran información de error en un cuadro de diálogo separado, en lugar de mostrarlos en la consola.
    • El programa systeminfo proporciona visualización de información de la base de datos WMI (Windows Instrumentación de gestión).
    • Se agregó la aplicación klist para mostrar tickets de Kerberos.
    • La aplicación taskkill implementa la capacidad de finalizar forzosamente procesos secundarios.
    • Se agregó la opción "/machine" a la utilidad de inicio para seleccionar la arquitectura utilizada al ejecutar ejecutables híbridos que admiten x86 y ARM.
    • Se ha implementado la mayor parte de la funcionalidad del programa de lista de tareas.
    • Se agregó una implementación básica de la aplicación findtr.
  • Herramientas de desarrollo
    • La utilidad WineDump tiene la capacidad de mostrar el contenido de los archivos de registro. Windows (formato REGF), así como mostrar datos para todas las arquitecturas (x86/ARM64) compatibles con archivos PE híbridos.
    • El compilador IDL ha agregado soporte para los atributos "componible", "default_overload", "obsoleto" y "protegido".
    • Se eliminó libwine.so, que quedó obsoleto en Wine 6.0 y ya no se usa en Wine durante mucho tiempo. Los programas en formato ELF creados en versiones anteriores de Wine (5.0 y anteriores) con libwine.so requieren reconstrucción para ejecutarse en Wine 9.0.
  • Bibliotecas integradas y dependencias externas
    • Las bibliotecas FluidSynth 2.3.3, Musl 1.2.3 (solo funciones matemáticas) y Zydis 4.0.0 están integradas en el paquete.
    • Los componentes Vkd3d 1.10, Faudio 23.12, OpenLDAP 2.5.16, LCMS2 2.15, LibMPG123 1.32.2, LibPng 1.6.40, LibTiff 4.6.0, LibXml2 2.11.5, LibXslt 1.1.38 y Zlib 1.3 se han actualizado a nuevas versiones. El motor Wine Mono con la implementación de la plataforma .NET se actualizó a la versión 8.1.0.
    • El controlador Winewayland.drv utiliza la biblioteca cliente Wayland como dependencias externas, así como las bibliotecas xkbcommon y xkbregistry.
    • Para admitir tarjetas inteligentes, se utiliza la biblioteca externa PCSClite (en macOS — PCSC).
    • La creación de archivos PE en plataformas que no son i386 ahora requiere un compilador cruzado compatible con directivas ".seh" para manejar excepciones.

Fuente: opennet.ru

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster