x
1

A.out



a.out es un formato de archivo usado en versiones antiguas de sistemas operativos tipo Unix, para ejecutables, código objeto, y —en sistemas posteriores— bibliotecas compartidas. Su nombre proviene de la contracción de la expresión en inglés assembler output, de acuerdo a lo dicho por Dennis Ritchie.[1]

a.out sigue siendo el nombre de archivo de salida por defecto para ejecutables creados por ciertos compiladores/enlazadores cuando no se especifica un nombre de archivo de salida,[2]​ aunque estos ejecutables ya no estén en el formato a.out.

En la primera edición de UNIX apareció un formato a.out para la PDP-7, similar al formato a.out usado en la PDP-11.[3]​ Este fue sustituido por el formato COFF en el Unix System V de AT&T, que fue a su vez remplazado en System V Release 4 por el formato ELF.[2]

Aunque Berkeley Unix siguió usando el formato a.out por algún tiempo, los sistemas BSD modernos desde entonces han cambiado al formato ELF. NetBSD/i386 cambió formalmente de a.out a ELF en su lanzamiento 1.5. FreeBSD/i386 cambió a ELF durante la transición de la versión 2.2 a la 3.0.

El soporte de a.out para obtener información de depuración se realiza mediante el uso de entradas especiales en la tabla de símbolos llamado stabs. El formato stabs también se ha utilizado en muchas variaciones de COFF y ELF.

Linux también usó a.out hasta el kernel 1.2, hasta que fue sustituido por ELF para esa plataforma de esta manera (el soporte para ELF fue añadido en la versión experimental 1.1.52).[4]

La transición de Linux a ELF fue más o menos forzada debido a la naturaleza compleja que presentaba construir bibliotecas compartidas con a.out en esa plataforma, que incluía la necesidad de registrar el espacio virtual de direcciones en la que se encuentra la biblioteca con una autoridad central, tal como la biblioteca ld.so en formato a.out no pudo reubicar bibliotecas compartidas.[5]​ Los varios sabores de BSD fueron capaces de continuar usando binarios a.out mucho tiempo después de que Linux fuera forzado a cambiar a ELF, debido a la naturaleza un tanto más flexible del formato a.out de BSD comparado con aquel de Linux.[6][7]MINIX 3 cambió el formato de sus binarios a ELF en su versión 3.2.0.

Los ejecutables a.out normalmente vienen en una de las diversas variantes: OMAGIC, NMAGIC, QMAGIC o ZMAGIC.

Un archivo a.out se compone de un máximo de siete secciones, en el siguiente orden:

exec header (cabecera ejecutable)

text segment (segmento de texto)

data segment (segmento de datos)

text relocations (reubicación de texto)

data relocations (reubicación de datos)

symbol table (tabla de símbolos)

string table (tabla de cadenas de texto)



Escribe un comentario o lo que quieras sobre A.out (directo, no tienes que registrarte)


Comentarios
(de más nuevos a más antiguos)


Aún no hay comentarios, ¡deja el primero!