Hoy se cumplen 25 años del lanzamiento de Wine, la conocida capa de compatibilidad que permite ejecutar programas y aplicaciones de Windows sobre sistema Unix y Unix-like, entre los que se encuentra GNU/Linux.

Wine debe su nombre al acrónimo recursivo Wine Is Not an Emulator, así que no, no es en realidad un emulador de Windows, aunque desde muchos medios sea presentado de esa forma para simplificar lo que realmente es: una reimplmenetación de las API del sistemas operativos de Microsoft. Esto quiere decir que los programas y las aplicaciones se ejecutan de forma nativa, no siendo virtualizadas ni usando un entorno de ejecución ajeno.

Aprovechando el vigésimo quinto aniversario de este software, en MuyLinux vamos a repasar la trayectoria de un proyecto que es casi tan veterano como el propio Linux, ya que durante mucho tiempo se ha mostrado como un intento de solución para aquellos que querían ejecutar aplicaciones de Windows sobre otros sistemas operativos, pero también videojuegos. Afortunadamente el software disponible para Linux ha mejorado mucho cuantitativa y cualitativamente en la última década, por lo que la dependencia de Wine se ha reducido en consonancia.

Un poco de historia

Wine siempre tuvo el mismo objetivo desde el mismo momento de su nacimiento. Siendo creado por Bob Amstadt y Eric Youngdale, el proyecto fue publicado un 4 de julio de 1993 con el propósito de ofrecer una vía de ejecutar aplicaciones de Windows sobre Linux, aunque más adelante se sumarían implementaciones para otros sistemas Unix y tipo Unix como FreeBSD.

En 1993 el panorama de la informática tenía muy poco que ver con el actual, con un Windows en plena expansión e imponiendo su dominio con la ayuda de uno de sus mayores socios, Intel (que apoya a quien le pueda reportar beneficios, algo que incluye a Linux). La estrecha relación entre ambas marcas generó un término llamado Wintel, que a día de hoy está algo en desuso. Entonces los desarrolladores de Wine se centraron en ofrecer soporte para las aplicaciones de 16-bit creadas para Windows 3.1, pero desde 2010 centra todos sus esfuerzos en las aplicaciones de 32 y 64 bits, ajustándose así a las versiones de Windows más utilizadas en la actualidad.

La primera versión estable, la 1.0, no apareció hasta junio de 2008, 15 años después de arrancar el proyecto. En aquellos tiempos Windows XP era el gran dominador de la informática de consumo, aunque el iPhone ya estaba revolucionando todo para romper junto con Android la fuerte posición dominante del sistema operativo de Microsoft. En aquella época también estaban el fiasco de Windows Vista y un OS X que posiblemente estuviera viviendo su mejor momento comparado con la competencia. Desde entonces el desarrollo ha sido imparable y la actual versión estable es la 3.0.

Wine siempre ha sido software libre, pero su licencia ha ido variando con el paso de los años. En un principio fue publicado sobre todo bajo MIT, la misma licencia utilizar por Xorg y Wayland, pero esta fue cambiada en 2002 para usar principalmente la LGPLv2.1, que ha mantenido hasta el día de hoy y pinta mantendrá en el futuro.

Cómo funciona Wine

Wine se encarga de reproducir el entorno de ejecución del sistema operativo de Microsoft para traducir sus llamadas de sistema a otras ajustadas al estándar POSIX. También recrea la estructura de directorios de Windows y ofrece implementaciones alternativas de las bibliotecas, servicios del sistema a través de wineserver y otros componentes como el Editor de Registro de Windows y msiexec. ¿Cómo ha podido conseguir hacer todo eso sin acabar en los tribunales frente a Microsoft? Para ello emplea pruebas de caja negra para evitar infringir el copyright del gigante de Redmond.

Al basarse sobre todo en ingeniería inversa para poder soportar las tecnologías de Microsoft, a veces hay que esperar años hasta poder ejecutar la última versión. De hecho el soporte para Direct3D 11 no llegó hasta 2016, y eso que la primera versión de DirectX 11 apareció en 2009 (Direct3D es un componente de DirectX).

Wine, implementado más allá

Wine no es un proyecto creado solo para quedar bien entre ciertos usuarios que buscan poder ejecutar ciertas aplicaciones de Windows sobre Linux, sino que es lo suficientemente grande como para generar incluso intereses comerciales en torno a él.

El mayor ejemplo de esto es la empresa CodeWeavers, principal contribuidor corporativo a Wine, que además comercializa una implementación propia de este software llamado CrossOver, que incluye ciertas modificaciones frente a la versión vanilla y ciertos componentes privativos para mejorar la compatibilidad con el software disponible para Windows, con los juegos y Microsoft Office (una vez más) al frente.

También sistemas operativos de pleno derecho, como ReactOS, un clon libre de Windows creado de cero a partir de ingeniería inversa cuya colaboración con el proyecto Wine se remonta prácticamente a sus orígenes.

Otro software que ha ayudado mucho en la utilización de Wine a lo largo de tiempo has sido PlayOnLinux, un frontend que automatiza la configuración para facilitar la instalación de una gran cantidad de aplicaciones específicas, entre las que se encuentran muchos juegos, Microsoft Office desde la versión 2000 hasta la 2010, Internet Explorer e incluso aplicaciones de Apple como iTunes y el navegador web Safari. Sin embargo, desde hace unos años su desarrollo está bastante parado.

Winetricks, que también es un software de terceros, es lo que le ha quitado el protagonismo a PlayOnLinux, siendo un script que facilita la instalación de componentes básicos de Windows, abarcando sobre todo DLL y fuentes.

Y más recientemente se puede destacar a Winepack, que intenta ofrecer una vía más simple que las anteriores para instalar aplicaciones de Windows aprovechándose de las posibilidades que ofrece el formato de paquetes Flatpak.