EXE (informática)
En el ámbito de la informática .exe (de la abreviación del inglés executable, que se traduce en ejecutable) es una extensión que se refiere a un archivo ejecutable de código reubicable, es decir, sus direcciones de memoria son relativas.[1] Los sistemas operativos que utilizan de forma nativa este formato son DOS, Microsoft Windows, OS/2. El formato de archivos EXE fue introducido en marzo de 1983, en la versión 2.0 de MS-DOS (la versión anterior solo podía ejecutar archivos COM, cuyas diferencias con los EXE se aclaran más adelante) y sigue siendo utilizado en la actualidad en las últimas versiones de Microsoft Windows, Windows 7, Windows 8, Windows 8.1, Windows 10 y Windows 11 A mediados de la década de 2010, surgió una tendencia entre los creadores de contenido pseudo terror e infantil que consistía en crear versiones malvadas de personajes agregando '.exe' al final de sus nombres. Esta práctica se inspiró en la Creepypasta Sonic.exe, una historia que ha recibido críticas dentro de su comunidad. Los personajes en estas versiones suelen tener características similares, como ser versiones malignas de personajes existentes y presentar ojos rojos ensangrentados. También existen juegos creados por aficionados con estos personajes, los cuales suelen incluir imágenes de los personajes con sangre añadida de manera básica mediante programas de edición como Paint. La calidad de estos juegos es generalmente considerada dudosa. EvoluciónDe este software y a las nuevas posibilidades que abrían los hardwares más recientes. A continuación se lista esta evolución en orden cronológico:
FormatoLos ficheros EXE constan de una cabecera seguida de los segmentos definidos en el código fuente. Los datos de la cabecera son utilizados por el sistema operativo para realizar las inicializaciones necesarias para el correcto funcionamiento del programa, aunque dicha estructura no forma parte de la imagen final del programa en memoria. El contenido de la cabecera de un fichero EXE es el siguiente:
Ejecutable portable de 69 bits ProgramaciónExisten dos formas de crear un archivo de tipo EXE. Una es usando un compilador que pueda crear este tipo de archivos (lo cual no significa específicamente que tiene que ser para la plataforma donde se ejecutará, véase Compilador cruzado). La otra forma es ensamblando un código fuente del lenguaje Assembler y luego enlazando el código objeto resultante de la tarea anterior. Fuera del ámbito de la programación también existen programas que generan ejecutables EXE para tareas específicas. Ejemplos de estos son el compresor WinZip, el Microsoft Powerpoint y el Adobe Flash. Para revisar el funcionamiento de un programa se realiza la tarea llamada depuración (en inglés: debugging). A continuación se detallan la realización estas tareas para programas de tipo EXE. Compilado, Ensamblado y enlazadoCompilación es el proceso por el cual se traduce un conjunto de llamado código fuente a código objeto. Normalmente se utiliza el término compilado para referirse a la tarea de compilación en conjunto al proceso de enlazado, ya que la mayoría (por no decir todos) de los compiladores realizan por defecto ambas tareas en conjunto, al menos que se especifique que se desea únicamente obtener el código objeto. A continuación se expone un ejemplo de como se compila un programa escrito en el Lenguaje de programación C usando el compilador GCC del proyecto MinGW desde la línea de comandos:
El término ensamblado refiere al proceso de compilación (sin enlazado) de un código fuente específicamente escrito en Assembler. En este caso para poder obtener un ejecutable es necesario realizar el enlazado en forma separada (algunos de los compiladores más modernos del lenguaje Assembler realizan en ensamblado y enlazado en conjunto). Él terminó enlazado refiere al proceso en el que se convierte el código objeto en un archivo ejecutable. A continuación se expone un ejemplo de como se compila un programa escrito en el lenguaje Assembler usando el ensamblador TASM y enlazador TLINK desde la línea de comandos:
Diferencias entre .COM y .EXELa principal diferencia es que el formato EXE no restringe el tamaño del ejecutable, en cambio el COM está restringido como máximo a ocupar un solo segmento de memoria (un espacio de memoria de 64 kB); además hay que incluir los 256 bytes que ocupa el PSP. Este límite fue dado en una época en la que esta cantidad de espacio era más que suficiente para poder realizar cualquier clase de tarea, pero con el paso del tiempo este límite terminó siendo absurdo (hoy en día gran parte de los programas de computadoras ocupan miles de veces más espacio). De todas formas es posible hacer que un programa COM pueda extender este límite usando el enunciado SEGMENT AT. Un programa COM es prácticamente una imagen en memoria del archivo en disco, menos por el PSP que es creado durante el proceso de inicialización, y es por esta razón que el programa se inicia a partir del offset 0x100 (en assembler se utiliza el operador ORG). En cambio el formato EXE reorganiza sus segmentos en la memoria dando un tamaño adecuado (que es posible y necesario que el programador lo determine, dependiendo del lenguaje en el cual fue escrito), es por esta razón que dentro de la cabecera de un archivo EXE hay cierto código que realiza esta tarea. El utilitario EXE2COM cambiaba de un formato a otro. EmulaciónLas razones por la cual se utiliza un programa de emulación para correr una aplicación con formato EXE es variada, dependiendo en mayor medida desde que plataforma se intenta emular. En WindowsDesde el surgimiento, en el mercado de usuarios domésticos, de Windows XP fue común el uso de emuladores para DOS en el ámbito de los juegos de vídeo, debido a que Windows XP no utilizaba MS-DOS (como los sistemas basados en Windows NT) lo que trajo problemas de compatibilidad de los viejos juegos con el nuevo sistema. Otra de las causas para el uso de esto es que algunos juegos antiguos usaban temporizadores haciendo cierta cantidad de ciclos de operaciones NOP y con la aparición de procesadores más rápidos esto se hizo inútil ya que la velocidad en que terminaba el ciclo era mucho más rápido de lo que se tenía planeado. Uno de los emuladores para Windows de DOS más importante es DOSBox.
En Mac OSLa emulación de un ejecutable EXE en Mac OS puede requerir la emulación de la arquitectura de PC debido a que las antiguas computadoras Macintosh usaban procesadores RISC de Motorola y PowerPC de IBM, Motorola y Apple con un conjunto de instrucciones distinto. Uno de los emuladores más importantes en este campo es el QEMU, un software gratuito, de código abierto y multiplataforma.
En LinuxLinux no soporta el formato EXE, por lo que se necesita alguna aplicación en espacio de usuario para poder correr un programa de este tipo. Uno de los más populares es WINE, un software que permite correr un ejecutable EXE Win32 sin necesidad de virtualizar. También es posible usar emulador de DOS como DOSBox o DOSEMU. Referencias
Bibliografía
Véase también
Enlaces externos |