Lanzamiento estable de Wine 8.0

Luego de un año de desarrollo y 28 versiones experimentales, se presentó una versión estable de la implementación abierta de la API Win32 - Wine 8.0, que incorporó más de 8600 cambios. El logro clave en la nueva versión marca la finalización del trabajo de traducción de los módulos de Wine al formato.

Wine ha confirmado el pleno funcionamiento de 5266 (hace un año 5156, hace dos años 5049) programas para Windows, otros 4370 (hace un año 4312, hace dos años 4227) programas funcionan perfectamente con configuraciones adicionales y DLL externas. 3888 programas (3813 hace un año, 3703 hace dos años) tienen problemas operativos menores que no interfieren con el uso de las funciones principales de las aplicaciones.

Innovaciones clave en Wine 8.0:

  • Módulos en formato PE
    • Después de cuatro años de trabajo, se ha completado la conversión de todas las bibliotecas DLL para utilizar el formato de archivo ejecutable PE (Portable Executable, utilizado en Windows). El uso de PE permite el uso de depuradores disponibles para Windows y resuelve problemas con el soporte de varios esquemas de protección de copia que verifican la identidad de los módulos del sistema en el disco y en la memoria. También se han resuelto los problemas con la ejecución de aplicaciones de 32 bits en hosts de 64 bits y aplicaciones x86 en sistemas ARM. Entre las tareas restantes que se planea resolver en versiones experimentales posteriores de Wine 8.x, está la transición de módulos a la interfaz de llamada del sistema NT en lugar de realizar llamadas directas entre las capas PE y Unix.
    • Se ha implementado un administrador de llamadas al sistema especial, que se utiliza para traducir llamadas de bibliotecas PE a Unix para reducir la sobrecarga de ejecutar una llamada al sistema NT completa. Por ejemplo, la optimización hizo posible reducir la degradación del rendimiento al utilizar las bibliotecas OpenGL y Vulkan.
    • Las aplicaciones Winelib conservan la capacidad de utilizar ensamblajes mixtos de Windows/Unix de bibliotecas ELF (.dll.so), pero dichas aplicaciones sin bibliotecas de 32 bits no admitirán la funcionalidad disponible a través de la interfaz de llamada del sistema NT, como WoW64.
  • WoW64
    • Se proporcionan capas WoW64 (Windows sobre Windows de 64 bits) para todas las bibliotecas de Unix, lo que permite que los módulos de 32 bits en formato PE accedan a las bibliotecas de Unix de 64 bits, que, después de deshacerse de las llamadas directas de PE/Unix, lo harán. Es posible ejecutar aplicaciones Windows de 32 bits sin instalar bibliotecas Unix de 32 bits.
    • En ausencia de un cargador Wine de 32 bits, las aplicaciones de 32 bits pueden ejecutarse en el nuevo modo experimental WoW64 similar a Windows, en el que el código de 32 bits se ejecuta dentro de un proceso de 64 bits. El modo se habilita al compilar Wine con la opción '—enable-archs'.
  • Subsistema de gráficos
    • La configuración predeterminada utiliza el tema claro (“Light”). Puede cambiar el tema utilizando la utilidad WineCfg.
      Lanzamiento estable de Wine 8.0
    • Los controladores de gráficos (winex11.drv, winemac.drv, wineandroid.drv) se convierten para ejecutar llamadas al sistema en el nivel Unix y acceder a los controladores a través de la biblioteca Win32u.
      Lanzamiento estable de Wine 8.0
    • Se ha implementado la arquitectura del procesador de impresión, que se utiliza para eliminar las llamadas directas entre los niveles PE y Unix en el controlador de la impresora.
    • La API de Direct2D ahora admite efectos.
    • La API de Direct2D ha agregado la capacidad de grabar y reproducir listas de comandos.
    • El controlador para la API de gráficos Vulkan ha agregado soporte para la especificación Vulkan 1.3.237 (Vulkan 7 era compatible con Wine 1.2).
  • Direct3D
    • Se agregó un nuevo compilador de sombreadores para HLSL (lenguaje de sombreadores de alto nivel), implementado en base a la biblioteca vkd3d-shader. También sobre la base de vkd3d-shader, se han preparado un desensamblador HLSL y un preprocesador HLSL.
    • Se ha implementado la interfaz Thread Pump introducida en D3DX 10.
    • Los efectos de Direct3D 10 agregan soporte para muchas expresiones nuevas.
    • La biblioteca de soporte para D3DX 9 ahora admite la proyección de texturas Cubemap.
  • sonido y video
    • Basado en el marco GStreamer, se ha implementado soporte para filtros para decodificar audio en formato MPEG-1.
    • Se agregó un filtro para leer streaming de audio y video en formato ASF (Advanced Systems Format).
    • Se ha eliminado la capa de biblioteca intermedia OpenAL32.dll, en lugar de la cual ahora se utiliza la biblioteca nativa de Windows OpenAL32.dll, suministrada con las aplicaciones.
    • Media Foundation Player ha mejorado la detección del tipo de contenido.
    • Se ha implementado la capacidad de controlar la velocidad de transferencia de datos (control de velocidad).
    • Soporte mejorado para el mezclador y presentador predeterminado en Enhanced Video Renderer (EVR).
    • Se agregó la implementación inicial de la API Writer Encoding.
    • Soporte mejorado del cargador de topología.
  • Dispositivos de entrada
    • Soporte significativamente mejorado para la conexión en caliente de controladores.
    • Se propone una implementación mejorada del código para determinar los volantes de juegos, construido sobre la base de la biblioteca SDL.
    • Soporte mejorado para el efecto Force feedback al usar ruedas de juego.
    • Se ha implementado la capacidad de controlar motores de vibración izquierdo y derecho utilizando la especificación HID Haptic.
    • Cambió el diseño del panel de control del joystick.
    • La compatibilidad con los controladores Sony DualShock y DualSense se proporciona mediante el uso del backend hidraw.
    • El módulo WinRT Windows.Gaming.Input se propone con la implementación de una interfaz de software para acceder a gamepads, joysticks y volantes de juego. Para la nueva API, entre otras cosas, se implementa soporte para notificación de conexión en caliente de dispositivos, efectos táctiles y de vibración.
  • Internacionalización
    • Se garantiza la generación de la base de datos local correcta en el formato locale.nls desde el repositorio Unicode CLDR (Unicode Common Locale Data Repository).
    • Las funciones de comparación de cadenas Unicode se han movido para utilizar la base de datos y el algoritmo Sortkey de Windows en lugar del algoritmo de intercalación Unicode, acercando el comportamiento a Windows.
    • La mayoría de las funciones han agregado soporte para rangos superiores de códigos Unicode (planos).
    • Es posible utilizar UTF-8 como codificación ANSI.
    • Las tablas de caracteres se han actualizado a la especificación Unicode 15.0.0.
  • Texto y fuentes
    • La vinculación de fuentes se ha habilitado para la mayoría de las fuentes del sistema, resolviendo el problema de la falta de glifos en sistemas con configuraciones regionales chinas, coreanas y japonesas.
    • Respaldo de fuente alternativa reelaborado en DirectWrite.
  • Núcleo (interfaces del núcleo de Windows)
    • Se implementó la base de datos ApiSetSchema, que reemplazó los módulos api-ms-* y redujo el consumo de espacio en disco y direcciones.
    • Los atributos de los archivos DOS se guardan en el disco en un formato compatible con Samba utilizando atributos FS extendidos.
  • Funciones de red
    • Se agregó soporte para OCSP (Protocolo de estado de certificados en línea), utilizado para verificar certificados revocados.
    • Se ha ampliado la gama de funciones de EcmaScript disponibles en el modo de cumplimiento de estándares de JavaScript.
    • Implementé un recolector de basura para JavaScript.
    • El paquete de motor Gecko incluye funciones para personas con discapacidades.
    • MSHTML agrega soporte para la API de almacenamiento web, el objeto de rendimiento y objetos adicionales para el manejo de eventos.
  • Aplicaciones integradas
    • Todas las aplicaciones integradas se han convertido para utilizar la biblioteca Common Controls 6, con soporte para temas de diseño y renderizado teniendo en cuenta pantallas con alta densidad de píxeles.
    • Capacidades mejoradas para depurar subprocesos en Wine Debugger (winedbg).
    • Las utilidades de registro (REGEDIT y REG) ahora admiten el tipo QWORD.
    • El Bloc de notas ha agregado una barra de estado con información sobre la posición del cursor y una función Ir a línea para saltar a un número de línea específico.
    • La consola incorporada proporciona salida de datos en la página de códigos OEM.
    • El comando 'consulta' se ha agregado a la utilidad sc.exe (Control de servicio).
  • Sistema de montaje
    • Se ha proporcionado la capacidad de crear archivos ejecutables en formato PE para varias arquitecturas (por ejemplo, '—enable-archs=i386,x86_64').
    • En todas las plataformas con el tipo largo de 32 bits, los tipos de datos definidos como largos en Windows ahora se redefinen como "largos" en lugar de "int" en Wine. En Winelib, este comportamiento se puede desactivar mediante la definición WINE_NO_LONG_TYPES.
    • Se agregó la capacidad de generar bibliotecas sin usar dlltool (se habilita configurando la opción '—sin-dlltool' en Winebuild).
    • Para mejorar la eficiencia de carga y reducir el tamaño de las bibliotecas sin código y de solo recursos, Winegcc implementa la opción '--data-only'.
  • Miscelánea
    • Versiones actualizadas de las bibliotecas integradas Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, LibXslt 1.1.37, Zlib 1.2.13.
    • El motor Wine Mono con la implementación de la plataforma .NET ha sido actualizado a la versión 7.4.
    • Se ha implementado soporte para cifrado basado en el algoritmo RSA y firmas digitales RSA-PSS.
    • Se agregó la versión inicial de la API de automatización de la interfaz de usuario.
    • El árbol de fuentes incluye las bibliotecas LDAP y vkd3d, que están compiladas en formato PE, lo que elimina la necesidad de suministrar ensamblajes Unix de estas bibliotecas.
    • La biblioteca OpenAL ha sido descontinuada.

Fuente: opennet.ru

Añadir un comentario