Wine 9 llega con soporte experimental de Wayland y «emulación» de Windows 10 por defecto
Wine 9 ya está disponible como la nueva versión de la capa de compatibilidad que permite ejecutar software compilado para Windows en sistemas tipo Unix y Unix, entre ellos Linux, macOS y FreeBSD. Este lanzamiento ha introducido un total de 7.000 cambios individuales, una nueva arquitectura de Windows on Windows de 64-bit (WoW64) y un driver para Wayland en fase experimental.
En lo que respecta a la nueva arquitectura de WoW64, a partir de Wine 9 todas las transiciones de Windows al código de Unix pasan por la interfaz de llamada de sistema de NT, lo que representa un hito debido a que marca el fin del trabajo en torno al rediseño para convertir los módulos al formato PE (Portable Executable) e introduce un límite adecuado entre Windows y Unix (aquí hay que entender Unix como un concepto que abarca Linux, macOS, FreeBSD y otros).
Todos los módulos que hacen llamadas a una biblioteca de Unix contienen thunks de WoW64 para permitir dichas llamadas desde código PE de 32-bit, abriendo así la puerta a que aplicaciones de Windows compiladas para 32-bit puedan funcionar sobre una instalación pura de Unix de 64-bit. Esto ha sido introducido en un nuevo modo llamado “new WoW64 mode”, mientras que “old WoW64 mode” hace referencia a las aplicaciones de 32-bit que se ejecutan dentro de procesos de Unix de 32-bit.
La nueva arquitectura de WoW64 no está habilitada por defecto, por lo que es necesario introducir la opción --enable-archs=i386,x86_64
. Por otro lado, mejora el soporte para macOS debido a que este sistema ha eliminado el soporte para procesos de 32-bit.
Sobre el driver de Wayland, está en fase experimental y parece que todavía tiene que madurar mucho para estar habilitado por defecto, así que lo más seguro es que las bifurcaciones y reimplementaciones de Wine, de entre las que destaca Proton, sigan apoyándose en XWayland. Pese a su inmadurez, los responsables de Wine dicen que “ya implementa muchas funciones, como administración básica de ventanas, múltiples monitores, escalado de HiDPI, eventos de movimiento relativo y compatibilidad con Vulkan”.
No viene mal recordar que Wine es uno de los principales obstáculos que Wayland se ha encontrado para su consolidación, sobre todo porque en un principio no fue posible implementar el protocolo de manera que funcionara de forma totalmente independiente del compositor, un requisito que es absolutamente imprescindible. La consultora Collabora apareció tiempo después para recoger el testigo y parece que está logrando el objetivo bajo los requisitos exigidos, pero todavía queda trabajo por delante.
Un aspecto destacado de Wine 9 es que Windows 10 pasa a ser la versión del sistema “emulada” por defecto, cosa normal si tenemos en cuenta que es, desde hace años, el sistema operativo más usado en el sector del escritorio.
Otras cosas que merecen ser resaltadas son que la aleatoriedad en la disposición del espacio de direcciones (ASLR) está soportada en los binarios PE modernos para evitar conflictos en el espacio de direcciones, un asignador de memoria virtual que soporta marcadores de posición de memoria para permitir que las aplicaciones reserven espacio virtual, un decodificador Windows Media Video (WMV) de DirectX Media Object (DMO) que ha sido implementado, diversas mejoras en el procesamiento de Direct3D implementadas en WineD3D y el backend de Vulkan, la presencia de VKD3D 1.10, además de soportarse la versión 1.3.272 de Vulkan.
Para el soporte de ARM64 sobresale la implementación de una interfaz para la emulación de x86 de 32-bit. Esto no quiere decir que Wine proporcione emulación de por sí, sino que se ha puesto a disposición una interfaz para emplear alguna biblioteca externa.
Para recuperar el foco en el usuario final de escritorio, terminamos la mención de lo más relevante de Wine 9 con las novedades que han llegado a nivel de integración con el escritorio, las cuales se componen de asociaciones de protocolo URL/URI que se exportan como controladores de URL al escritorio Linux; que la información del monitor, como el nombre y la identificación del modelo, se recupera de los datos de identificación de pantalla extendida (EDID) del monitor físico; y que la ventana del escritorio se puede cerrar a través de la entrada «Salir del escritorio» en el menú Inicio cuando el modo de escritorio a pantalla completa está activado.
Wine es una de las obras de ingeniería inversa más destacadas del software libre, si no es la que más. A pesar de que en realidad muchos se refieren a ella como un emulador, la realidad es que se trata de una reimplementación de las API de Windows creada mediante ingeniería inversa para permitir la ejecución de programas y aplicaciones de Windows en sistemas Unix y tipo Unix. En su funcionamiento, básicamente se encarga de traducir las llamadas de sistema de Windows a otras que puedan ser entendidas por el sistema que está ejecutando Wine. La consecuencia de esto es que el software ejecutado mediante Wine funciona de manera nativa porque lo que hay en medio es un proceso de traducción, no de emulación.
Los que quieran conocer todos los detalles sobre Wine 9 pueden consultar el anuncio de lanzamiento. La capa de compatibilidad puede obtenerse de manera oficial para Ubuntu, Debian, Fedora y macOS a partir de la sección de descargas del proyecto, mientras que las compilaciones para SUSE, Slackware y FreeBSD son mantenidas por sus respectivas comunidades.
La entrada Wine 9 llega con soporte experimental de Wayland y «emulación» de Windows 10 por defecto es original de MuyLinux