Cómo ejecutar un exe en Linux

julio 29, 2022 , 0 Comments

La popularidad de Windows hace que la mayor parte del software se distribuya en el formato de paquetes exe.
Con variantes, la pregunta de cómo ejecutar un exe en Linux es una de las que más se repite en foros, redes sociales y comentarios en blogs. De hecho, fue una de mis primeras búsquedas al empezar a interesarme en Linux.

Esta pregunta no tiene una respuesta corta ya que no hay un único método para la ejecución de programas de Windows en Linux. Y, el resultado final dependerá del programa.

Cómo funciona un programa informático

Para entender el problema de cómo ejecutar un exe en Linux necesitamos conocer cómo funciona un programa informático. Para hacerlo, permítanme utilizar una analogía.

La mayor parte de nosotros aprendió las habilidades básicas para ejecutar su trabajo en casa, la escuela o la universidad. Al momento de entrar al trabajo sabíamos leer, escribir, realizar operaciones matemáticas básicas y los conocimientos comunes a la profesión que ejercemos. Supongamos que se eliminaran las escuelas y universidades y que los hogares solo se limitaran a brindar a los niños las necesidades básicas debiendo asumir cada empresa las tareas de educación.

El primer resultado sería un aumento de los costos laborales dado que cada empleado tardaría más tiempo en ser productivo. Por otra parte, es probable que cada empresa o sector desarrollara su propio lenguaje y ¿por qué no? su propia matemática. Cuando quisiéramos cambiar de trabajo, el proceso educativo debería repetirse. Y, lo mismo para el resto de nuestras actividades.

Los ordenadores tienen varios componentes para realizar tareas

Los programas utilizan componentes del sistema operativo y bibliotecas adicionales para la realización de algunas tareas.

Con los programas informáticos sucede lo mismo. El tiempo de desarrollo es largo y los costos son altos, lo que implica que cualquier ahorro que pueda conseguirse (tanto en tiempo como en dinero) es importante. ¿Cómo se consiguen esos ahorros?

Dejando que las bibliotecas y el sistema operativo se ocupen de las tareas rutinarias comunes.

Aunque un navegador web y un procesador de textos tengan fines diferentes, aún tienen que mostrar sus menús en pantalla, responder a los movimientos del ratón o mandar un documento a la impresora. Si cada uno de ellos tuviera que implementar esas funciones en su propio código, el peso de cada programa sería mayor y aumentarían el tiempo de desarrollo, los costos y la posibilidad de errores. Es por eso, que como dije antes se recurre a las bibliotecas y al sistema operativo.

Las bibliotecas son programas que cumplen una función específica a pedido de otros programas. Se instalan cuando algún programa tiene necesidad de ellas y está lista para ser utilizada por los que la necesiten en el futuro. El sistema operativo es el encargado de la interacción entre el ordenador y el usuario e incluye todas aquellas bibliotecas para el adecuado funcionamiento del hardware.

Cómo ejecutar un exe en Linux

El formato .exe

Un archivo ejecutable contiene una secuencia de instrucciones en código que el ordenador ejecuta de manera directa cuando se hace clic en el icono del archivo. En Windows, existen varios tipos de archivos ejecutable pero la mayoría tienen la extensión .exe.

Los archivos ejecutables contienen código máquina binario que se obtuvo a partir de la compilación del código fuente. Este código se usa para indicarle a la unidad central de procesamiento del ordenador la forma de ejecutar un programa.

El problema básico para resolver, al momento de ejecutar un archivo exe en Linux, es que cada sistema operativo tiene su propia forma de comunicarse con las bibliotecas y los programas que se le instalan. Aunque yo escribo en el español de Argentina, ustedes pueden entenderme, un chino debería recurrir al traductor de Google.

Cualquier programa al iniciarse comprobará la presencia de las bibliotecas que necesita para funcionar. Si está en el sistema operativo correcto, pero faltan las librerías, las pedirá al momento de la instalación o indicará que se haga manualmente, pero, en el sistema operativo equivocado ni siquiera podrá instalarse.

Para esto existen tres soluciones:

  1. No hacerlo.
  2. Virtualización.
  3. Capa de compatibilidad.

No hacerlo

En un ordenador puedes ejecutar varios sistemas

En una computadora moderna es posible ejecutar más de un sistema operativo.

No estoy tratando de hacerme el gracioso.  Si necesitas un programa para Windows para una necesidad crítica que requiere 100% de compatibilidad deberías instalarlo en Windows. La mayoría de las distribuciones Linux están preparadas para trabajar con lo que se conoce como arranque dual. Esto es que al momento de iniciar el ordenador es posible elegir con cuál sistema operativo iniciar. Incluso el proceso de instalación está automatizado de manera que resulte fácil para el usuario novato.

El único punto a tener en cuenta es que siempre se instala Windows primero con todas las actualizaciones que haya disponible, luego se cierra sesión correctamente y recién se procede a la instalación de Linux. Si no actualizas, el instalador de Linux no detectará a Windows y no podrá configurar el arranque compartido. Si instalas primero Linux, Windows borrará el gestor de arranque y deberás a volver a instalarlo.

Virtualización

La virtualización es el procedimiento de simular el hardware mediante software. Es decir que el sistema operativo y los programas instalados creen que están en un ordenador real. Este hardware simulado (Máquina virtual) utiliza parte de los recursos del hardware real.

De lo que se trata es de instalar Windows en una máquina virtual y luego los programas que necesitemos. La única contra de esto es que no estaremos aprovechando todos los recursos de hardware y que la ejecución podría resultar más lenta. Aunque en equipos más potentes, esto no debería ser problema.

Soluciones de virtualización para Linux

  • VirtualBox: Es el más conocido de los gestores de máquinas virtuales. Ya trae preestablecida la configuración para que funcionen todas las versiones de Windows y sus asistentes facilitan la creación de máquinas virtuales. Puede intercambiar archivos con el ordenador anfitrión y dispositivos externos.
  • KVM: Es una herramienta de virtualización integrada en el núcleo de Linux y creada por sus propios desarrolladores. Esto brinda una mayor seguridad y mejor integración con el sistema anfitrión. Generalmente se usa con un gestor de máquinas virtuales denominado QEMU. Ambas están en los repositorios.
  • GNOME Boxes: Se trata de una interfaz gráfica para diferentes tecnologías de virtualización de código abierto. Es una buena alternativa a VirtualBox que pueden tener en cuenta los usuarios novatos que adopten una distribución basada en el escritorio GNOME. Viene preinstalada o está en los repositorios de la mayoría de las distribuciones basadas en GNOME.
Monitor con software ofimático, ideal para ejecutar un exe

Mediante el uso de una capa de compatibilidad es posible utilizar Microsoft Office en Linux.

Capa de compatibilidad

Mediante el uso de una capa de compatibilidad es posible utilizar software diseñado para un sistema operativo en otro.  Lo hace traduciendo los requerimientos del programa en instrucciones que el sistema operativo anfitrión pueda atender.

Wine

Wine es la capa de compatibilidad sobre la que se construyen todas las soluciones de instalación de aplicaciones de Windows en Linux. Su nombre no tiene nada que ver con el vino, sino que es un acrónimo recursivo en ingles de Wine no es un emulador. Se encuentra en los repositorios de las principales distribuciones Linux.

CrossOver Linux

Es un producto comercial basado en Wine con agregados propios. En lugar de los lanzamientos quincenales de Wine, se enfoca en lograr una mejor compatibilidad.

PlayOnLinux

En este caso se trata de un programa que consiste en una interfaz gráfica y una serie de scripts que facilitan la configuración de Wine y la instalación de programas de Windows en Linux. PlayOnLinux puede encontrarse en los repositorios de las principales distribuciones Linux.

Bottles

Bottles es una aplicación cuya interfaz gráfica hace más fácil la instalación de Wine y otros archivos necesarios para el funcionamiento de aplicaciones de Windows en Linux. Permite la gestión de varios «prefijos de Wine». Un prefijo Wine es un directorio que repite la jerarquía del sistema de archivos de Windows. Contiene una unidad «C» en la que se puede instalar software destinado a Windows. Además, incluye otros archivos necesarios para que una aplicación basada en Windows funcione en Linux.

Nos permite crear tantos prefijos de Wine como deseemos e instalarles aplicaciones compatibles con Windows. Es así, que por ejemplo podemos tener un prefijo dedicado a juegos y otro a utilidades.

Bottles puede instalarse desde la tienda de Flatpak.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.