WINE surgió como un proyecto para poder ejecutar software nativo de Windows en otros sistemas operativos tipo Unix, tanto Linux, como macOS, así como BSD, etc. No se trata de un emulador, sino de una capa de compatibilidad, y gracias a ella se han nutrido otros proyectos como ReactOS, Proton, CrossOver, etc. Aquí vamos a ver qué hay en las entrañas de este software y cómo funciona.
Índice de contenidos
WINE (Wine Is Not an Emulator) es una capa de compatibilidad que permite ejecutar aplicaciones nativas de Microsoft Windows en sistemas operativos basados en Unix, como Linux y macOS, entre otros. WINE actúa como un puente entre el sistema operativo anfitrión y las aplicaciones de Windows, traduciendo las llamadas del sistema Windows en llamadas compatibles con el sistema operativo host. Esto permite que las aplicaciones de Windows se ejecuten sin necesidad de una máquina virtual o emulador.
No lo confundas, WINE no es un emulador como pueda ser QEMU, por lo que solo ejecuta software nativo de Windows para la misma plataforma, en este caso x86. Por otro lado, no es un hipervisor o máquina virtual como pueda ser VMWare o VirtualBox, donde se ejecuta un sistema operativo completo Windows para ejecutar las aplicaciones.
Por tanto, WINE sirve para ejecutar aplicaciones de Windows (Win32/Win64) en los *nix. Dicho de otro modo, WINE permite que aplicaciones de Windows, como juegos, programas de oficina o herramientas de diseño, se ejecuten en sistemas operativos como Linux, macOS, Android, y FreeBSD. Esto es útil para usuarios que desean seguir utilizando aplicaciones específicas sin tener que instalar Windows en una partición separada, máquina virtual, etc., y que no se encuentran de forma nativa para estos sistemas operativos.
También te puede interesar conocer más sobre equipos compatibles con Linux
WINE es un proyecto de código abierto, bajo licencia GNU GPL, en su código contribuyen numerosos desarrolladores, así como compañías que aportan parches o mejoras constantes. Además, algunos proyectos se nutren de WINE o WINE de ellos, como por ejemplo:
Otros proyectos también se han nutrido de WINE o WINE de ellos, cabe mencionar ReactOS, que es un sistema operativo similar a Windows y conpatible con su software, pero de código abierto… También tenemos proyectos que se basan en WINE como Bottles, Play On Linux, Lutris, etc.
Existen otros softwares similares para ejecutar software no nativo en Linux, como también DOSBox, para software de MS-DOS, o Darling, que permitía ejecutar software de Mac, etc. Por si te interesa indagar…
WINE es un proyecto muy complejo, compuesto por diferentes elementos esenciales que hay que entender, como:
Comenzamos con wrc (Wine Resource Compiler) es una herramienta que permite compilar recursos de Windows (como iconos, imágenes, menús y diálogos) para ser utilizados en aplicaciones que funcionan dentro del entorno de WINE. Es similar a la herramienta de recursos de Microsoft en Windows, pero adaptada para funcionar en un entorno no nativo de Windows.
wmc (Wine Message Compiler), una utilidad que se utiliza para compilar los mensajes de texto que se usan en las aplicaciones de Windows. Estos mensajes generalmente contienen texto de la interfaz de usuario o textos específicos para el manejo de errores. Ayuda a traducir los mensajes del sistema y hacerlos compatibles con el sistema operativo en el que se ejecuta WINE.
winemaker genera un archivo de configuración Makefile a partir de los archivos de proyecto de una aplicación de Windows. Su propósito es simplificar el proceso de construcción y compilación de aplicaciones de Windows para que puedan ejecutarse dentro de WINE. Facilita la integración de aplicaciones que fueron diseñadas originalmente para Windows en sistemas Unix/Linux.
vinegcc es un script de WINE que funciona como un compilador de C y C++ dentro del entorno de WINE. Su propósito es permitir la compilación de código fuente de Windows en el entorno de WINE, traduciéndolo a código que puede ejecutarse en el sistema operativo anfitrión. Es útil cuando se desarrollan aplicaciones o cuando se intenta portar software desde Windows a Linux usando Wine.
Otra herramienta importante es winedump, para depuración y que permite inspeccionar y volcar información sobre el archivo ejecutable de Windows (PE, Portable Executable). Esta herramienta es útil para analizar el contenido de las aplicaciones de Windows y entender cómo interactúan con el sistema operativo, ayudando en el desarrollo y la depuración dentro de WINE.
winebuild es una herramienta que permite compilar y generar archivos binarios a partir del código fuente de Windows, en el contexto de un entorno WINE. Es parte del proceso de construcción del propio WINE y también se utiliza cuando se desarrollan aplicaciones que deben ejecutarse dentro del entorno de compatibilidad de WINE.
La siguiente es vidl. Facilita la gestión y visualización de archivos de video dentro de WINE. Puede ser útil para realizar pruebas o ejecutar aplicaciones relacionadas con la visualización de medios que se ejecutan en el entorno de Windows en Linux u otros sistemas operativos basados en UNIX.
wineserver es el componente central del sistema WINE, que se encarga de gestionar los recursos y servicios dentro del entorno. Actúa como un servidor entre las aplicaciones de Windows y el sistema operativo anfitrión, manejando el ciclo de vida de las aplicaciones, las llamadas del sistema y la interacción con los recursos del sistema.
Seguimos con winepath, una herramienta de línea de comandos utilizada para convertir rutas de archivos de Windows (por ejemplo, C:\Program Files) a rutas de archivo del sistema operativo anfitrión (como Linux o macOS). Esto es necesario porque los sistemas de archivos de Windows y Unix/Linux son diferentes, y esta herramienta permite gestionar las rutas de archivos en un entorno híbrido.
Por otro lado tenemos winemine, una versión de Minesweeper, el popular juego de Windows, ejecutada dentro de WINE. Este tipo de aplicaciones se utiliza principalmente para probar el funcionamiento de aplicaciones gráficas y de juegos dentro de WINE, ayudando a asegurar que la compatibilidad con la interfaz gráfica de usuario (GUI) sea correcta.
El explorador de archivos de WINE se llama winefile. Proporciona una interfaz gráfica similar al Explorador de Windows. Permite navegar por el sistema de archivos del entorno WINE y ejecutar aplicaciones de Windows desde allí. Es útil para usuarios que prefieren una interfaz gráfica para gestionar los archivos y programas en lugar de usar la línea de comandos.
winedbg es el depurador de aplicaciones para el entorno WINE. Permite a los desarrolladores depurar aplicaciones de Windows dentro de WINE, proporcionando herramientas para identificar errores, hacer seguimiento de variables y analizar el flujo de ejecución de las aplicaciones. Es una herramienta esencial para quienes desarrollan o portan aplicaciones desde Windows a otros sistemas operativos.
Por supuesto, también hay una consola o línea de comandos, y se llama wineconsole. Emula la consola de comandos de Windows (cmd.exe). Permite a los usuarios ejecutar programas de consola de Windows en un entorno de terminal en Linux o macOS. Es útil para ejecutar herramientas de línea de comandos o scripts de Windows sin necesidad de una interfaz gráfica.
conecfg es una utilidad de configuración para ajustar y personalizar los parámetros de red en WINE. Permite modificar la configuración de la red de WINE para adaptarla a diferentes necesidades de las aplicaciones de Windows, como las opciones de proxy o configuraciones de red específicas.
En este caso, wineboot es una herramienta que simula el proceso de arranque de Windows dentro de WINE. Se utiliza para inicializar el entorno de Windows, estableciendo las configuraciones necesarias y asegurándose de que las aplicaciones de Windows puedan ejecutarse correctamente. Es útil para restaurar o reparar el entorno de WINE después de una instalación o configuración incorrecta.
regsvr32 permite registrar o desregistrar bibliotecas de enlace dinámico (DLL) en el sistema operativo WINE. Es útil cuando se necesita registrar ciertas DLLs para que una aplicación de Windows funcione correctamente dentro de WINE, ya que algunas aplicaciones dependen de bibliotecas que deben estar registradas en el sistema.
No podía faltar regedit, el Editor del Registro de Windows, que se utiliza dentro de WINE para modificar el registro de Windows simulado. El registro de Windows es esencial para que las aplicaciones se ejecuten correctamente, ya que almacenan configuraciones y preferencias del sistema. Regedit permite acceder y modificar esas configuraciones dentro del entorno de WINE.
msiexec para la ejecución de archivos MSI (Microsoft Installer) en el entorno de WINE. Permite instalar, desinstalar o reparar aplicaciones que utilizan paquetes de instalación MSI, que son comunes en los programas de Windows. Es útil para gestionar aplicaciones que se distribuyen en este formato.
Importante también WineD3D, una implementación de Direct3D (la API gráfica de Windows) dentro del entorno de WINE. Traduce las llamadas a Direct3D en llamadas de OpenGL para que las aplicaciones que requieren Direct3D puedan ejecutarse en sistemas que no tienen nativamente esta API. Esto permite la ejecución de juegos y aplicaciones gráficas de Windows en plataformas Linux y macOS.
DXVK es un proyecto que implementa Direct3D 11 sobre Vulkan, una API gráfica moderna y de alto rendimiento. A través de DXVK, las aplicaciones que requieren Direct3D 11 pueden ejecutarse con mejor rendimiento en Linux utilizando Vulkan en lugar de OpenGL. Es utilizado principalmente por Proton (en Steam) y WINE para mejorar el rendimiento de juegos y aplicaciones gráficas.
VKD3D es una implementación de Direct3D 12 sobre Vulkan, diseñada para permitir la ejecución de juegos y aplicaciones de Windows que utilizan Direct3D 12 en plataformas que no tienen soporte nativo para esta API. Al igual que DXVK, VKD3D utiliza Vulkan para traducir las llamadas gráficas, mejorando el rendimiento en sistemas Linux al ejecutar software de Windows que depende de Direct3D 12.
Por último, también incluye algunas bibliotecas DLL (.dll), es decir, archivos de Windows que son esenciales para ejecutar el software nativo, ya que los diferentes programas hacen uso de ellas para sus funciones. Por ejemplo:
Otras se pueden agregar si son necesarias para el software que se desea ejecutar, y evitar que WINE de error en la ejecución al no tener la DLL. En estos casos, es importante conocer la arquitectura de archivos que tiene WINE, ya que habrá que insertar la .dll donde corresponda. Por eso, te animo a conocer cuáles son estas carpetas que describo en el siguiente apartado…
Para que WINE pueda ejecutar software nativo de Windows en sistemas operativos basados en Unix, se crea una estructura de directorios para simular el sistema de archivos de Windows. Estos directorios permiten que las aplicaciones de Windows funcionen como si estuvieran ejecutándose en un sistema Windows real. Esta estructura se encuentra dentro del directorio o carpeta .wine, y en su interior encontramos un directorio conocido como drive_c.
La carpeta drive_c dentro de .wine actúa como el equivalente a la unidad C: en un sistema Windows. Es donde se montan y almacenan los programas y archivos que instalas dentro del entorno WINE. Es como si fuera el «disco duro» de Windows dentro del entorno de WINE, donde se crean los archivos de programa y de sistema. Dentro de drive_c, puedes encontrar las carpetas típicas de un sistema Windows:
Deja los comentarios que veas oportunos, serán bienvenidos…
Se ha probado la tarjeta gráfica AMD Radeon RX 9070 en su diseño de referencia,…
Sharkoon ha presentado su nueva fuente de alimentación Rebel P10, una que llega con un…
Después de analizar la AMD Radeon RX 9070, hemos querido realizar varias comparativas con otras…