fbpx
Wikipedia

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
Desarrollador
AT&T
Información general
Extensión de archivo ninguna, .o, .so
Tipo de formato Binario, ejecutable, código objeto, bibliotecas compartidas
Formato abierto ?

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.

Uso histórico

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.

Descripción

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

OMAGIC
El formato OMAGIC tiene segmentos contiguos a continuación de su cabecera, sin separación de texto y datos. Este formato también se utilizó como formato de código objeto.
NMAGIC
El formato MAGIC era similar al OMAGIC, no obstante el segmento de datos era cargado inmediatamente en la siguiente página posterior al final del segmento de texto; y el segmento de texto fue marcado como de sólo lectura.
ZMAGIC
El formato ZMAGIC agregó soporte para paginación por demanda. La longitud de los segmentos de código y datos en el archivo tenía que ser múltiplos del tamaño de la página.
QMAGIC
Los binarios QMAGIC eran típicamente cargados una página encima de la parte inferior del espacio de direcciones virtuales, a fin de permitir la captura de desreferencias de punteros nulos a través de un fallo de segmentación. La cabecera de a.out se fusionó con la primera página del segmento de texto, generalmente salvando un valor de la página de memoria.
CMAGIC
Las versiones antiguas de Linux utilizan este formato para los volcados de memoria.

Secciones en un binario a.out

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

exec header (cabecera ejecutable)

Contiene parámetros usados por el kernel para cargar un archivo binario en memoria y ejecutarlo, y por el editor de enlaces ld para combinar un archivo binario con otros archivos binarios. Esta sección es la única obligatoria.

text segment (segmento de texto)

Contiene código máquina y datos conexos que se cargan en memoria cuando un programa se ejecuta. Puede ser cargado como sólo lectura.

data segment (segmento de datos)

Contiene datos inicializados; siempre se cargan en memoria de escritura.

text relocations (reubicación de texto)

Contiene registros usados por el editor de enlaces para actualizar punteros en el segmento de texto al combinar archivos binarios.

data relocations (reubicación de datos)

Al igual que la sección de reubicación de texto, pero para los punteros del segmento de datos.

symbol table (tabla de símbolos)

Contiene registros usados por el editor de enlaces para una referencua cruzada de la dirección de variables y funciones con nombre (symbols) entre archivos binarios.

string table (tabla de cadenas de texto)

Contiene las cadenas de caracteres correspondientes a los nombres de símbolos.

Véase también

Referencias

  1. Ritchie, Dennis (abril de 1993). (html). Bell Labs (en inglés). Archivado desde el original el 11 de junio de 2015. Consultado el 21 de abril de 2020. «(This name, a.out, explains a bit of Unix etymology; it is the output of the assembler. Even after the system gained a linker and a means of specifying another name explicitly, it was retained as the default executable result of a compilation.)». 
  2. Rupert, Wood (8 de abril de 2002), «», lista de correo Proyecto GCC, archivado del original el 21 de abril de 2020, , consultado el 21 de abril de 2020. 
  3. Dennis Ritchie (3 de noviembre de 1971), (PDF), Bell Labs, archivado desde el original el 7 de diciembre de 2006, consultado el 24 de noviembre de 2006 .
  4. Daniel Barlow (14 de julio de 1996). . Archivado desde el original el 13 de julio de 2004. Consultado el 28 de marzo de 2008. 
  5. Ulrich Drepper (20 de agosto de 2006). «1.1 A Little Bit of History» (PDF). How To Write Shared Libraries. 4.0. desde el original el 16 de junio de 2007. Consultado el 20 de junio de 2007. «When introducing shared libraries certain design decisions had to be made to work in the limitations of a.out. (...) For all these reasons and more, Linux converted early on to using ELF (Executable Linkage Format) as the binary format.» 
  6. Eric Youngdale (1 de abril de 1995). «The ELF Object File Format: Introduction». desde el original el 10 de marzo de 2009. Consultado el 6 de mayo de 2012. «(...) it is not impossible to design shared library implementations that work with a.out. The current Linux shared libraries are certainly one example; another example is SunOS-style shared libraries which are currently used by BSD-du-jour. SunOS-style shared libraries contain a lot of the same concepts as ELF shared libraries (...)». 
  7. «BSD Myths». desde el original el 17 de abril de 2007. Consultado el 10 de abril de 2007. «There were no pressing reasons to switch earlier. In particular, FreeBSD did not (and does not) have the problems building shared libraries that spurred the Linux conversion from a.out to ELF.» 

Enlaces externos

  • Manual de a.out para Unix versión 6
  • Manual de a.out para Unix versión 7
  • Manual de a.out para 2.11BSD
  • Manual de a.out para 4.2BSD
  • Manual de a.out para SunOS 4.1.3
  • Manual de a.out para FreeBSD
  •   Datos: Q279254

formato, archivo, usado, versiones, antiguas, sistemas, operativos, tipo, unix, para, ejecutables, código, objeto, sistemas, posteriores, bibliotecas, compartidas, nombre, proviene, contracción, expresión, inglés, assembler, output, acuerdo, dicho, dennis, rit. a out es un formato de archivo usado en versiones antiguas de sistemas operativos tipo Unix para ejecutables codigo objeto y en sistemas posteriores bibliotecas compartidas Su nombre proviene de la contraccion de la expresion en ingles assembler output de acuerdo a lo dicho por Dennis Ritchie 1 a outDesarrolladorAT amp TInformacion generalExtension de archivoninguna o soTipo de formatoBinario ejecutable codigo objeto bibliotecas compartidasFormato abierto editar datos en Wikidata 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 esten en el formato a out Indice 1 Uso historico 2 Descripcion 2 1 Secciones en un binario a out 3 Vease tambien 4 Referencias 5 Enlaces externosUso historico EditarEn la primera edicion de UNIX aparecio 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 amp T que fue a su vez remplazado en System V Release 4 por el formato ELF 2 Aunque Berkeley Unix siguio usando el formato a out por algun tiempo los sistemas BSD modernos desde entonces han cambiado al formato ELF NetBSD i386 cambio formalmente de a out a ELF en su lanzamiento 1 5 FreeBSD i386 cambio a ELF durante la transicion de la version 2 2 a la 3 0 El soporte de a out para obtener informacion de depuracion se realiza mediante el uso de entradas especiales en la tabla de simbolos llamado stabs El formato stabs tambien se ha utilizado en muchas variaciones de COFF y ELF Linux tambien uso a out hasta el kernel 1 2 hasta que fue sustituido por ELF para esa plataforma de esta manera el soporte para ELF fue anadido en la version experimental 1 1 52 4 La transicion de Linux a ELF fue mas o menos forzada debido a la naturaleza compleja que presentaba construir bibliotecas compartidas con a out en esa plataforma que incluia 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 despues de que Linux fuera forzado a cambiar a ELF debido a la naturaleza un tanto mas flexible del formato a out de BSD comparado con aquel de Linux 6 7 MINIX 3 cambio el formato de sus binarios a ELF en su version 3 2 0 Descripcion EditarLos ejecutables a out normalmente vienen en una de las diversas variantes OMAGIC NMAGIC QMAGIC o ZMAGIC OMAGIC El formato OMAGIC tiene segmentos contiguos a continuacion de su cabecera sin separacion de texto y datos Este formato tambien se utilizo como formato de codigo objeto NMAGIC El formato MAGIC era similar al OMAGIC no obstante el segmento de datos era cargado inmediatamente en la siguiente pagina posterior al final del segmento de texto y el segmento de texto fue marcado como de solo lectura ZMAGIC El formato ZMAGIC agrego soporte para paginacion por demanda La longitud de los segmentos de codigo y datos en el archivo tenia que ser multiplos del tamano de la pagina QMAGIC Los binarios QMAGIC eran tipicamente cargados una pagina encima de la parte inferior del espacio de direcciones virtuales a fin de permitir la captura de desreferencias de punteros nulos a traves de un fallo de segmentacion La cabecera de a out se fusiono con la primera pagina del segmento de texto generalmente salvando un valor de la pagina de memoria CMAGIC Las versiones antiguas de Linux utilizan este formato para los volcados de memoria Secciones en un binario a out Editar Un archivo a out se compone de un maximo de siete secciones en el siguiente orden exec header cabecera ejecutable Contiene parametros usados por el kernel para cargar un archivo binario en memoria y ejecutarlo y por el editor de enlaces ld para combinar un archivo binario con otros archivos binarios Esta seccion es la unica obligatoria text segment segmento de texto Contiene codigo maquina y datos conexos que se cargan en memoria cuando un programa se ejecuta Puede ser cargado como solo lectura data segment segmento de datos Contiene datos inicializados siempre se cargan en memoria de escritura text relocations reubicacion de texto Contiene registros usados por el editor de enlaces para actualizar punteros en el segmento de texto al combinar archivos binarios data relocations reubicacion de datos Al igual que la seccion de reubicacion de texto pero para los punteros del segmento de datos symbol table tabla de simbolos Contiene registros usados por el editor de enlaces para una referencua cruzada de la direccion de variables y funciones con nombre symbols entre archivos binarios string table tabla de cadenas de texto Contiene las cadenas de caracteres correspondientes a los nombres de simbolos Vease tambien EditarAnexo Comparacion de formatos de archivos ejecutables Formato Executable and Linkable Format ELF Referencias Editar Ritchie Dennis abril de 1993 The Development of the C Language La evolucion de el lenguaje C html Bell Labs en ingles Archivado desde el original el 11 de junio de 2015 Consultado el 21 de abril de 2020 This name a out explains a bit of Unix etymology it is the output of the assembler Even after the system gained a linker and a means of specifying another name explicitly it was retained as the default executable result of a compilation a b Rupert Wood 8 de abril de 2002 RE What to do with a out lista de correo Proyecto GCC archivado del original el 21 de abril de 2020 https web archive org web 20200421135140 https gcc gnu org legacy ml gcc help 2002 04 msg00075 html consultado el 21 de abril de 2020 Dennis Ritchie 3 de noviembre de 1971 a out assembler and link editor output PDF Bell Labs archivado desde el original el 7 de diciembre de 2006 consultado el 24 de noviembre de 2006 Daniel Barlow 14 de julio de 1996 The Linux ELF HOWTO v1 29 Archivado desde el original el 13 de julio de 2004 Consultado el 28 de marzo de 2008 Ulrich Drepper 20 de agosto de 2006 1 1 A Little Bit of History PDF How To Write Shared Libraries 4 0 Archivado desde el original el 16 de junio de 2007 Consultado el 20 de junio de 2007 When introducing shared libraries certain design decisions had to be made to work in the limitations of a out For all these reasons and more Linux converted early on to using ELF Executable Linkage Format as the binary format Eric Youngdale 1 de abril de 1995 The ELF Object File Format Introduction Archivado desde el original el 10 de marzo de 2009 Consultado el 6 de mayo de 2012 it is not impossible to design shared library implementations that work with a out The current Linux shared libraries are certainly one example another example is SunOS style shared libraries which are currently used by BSD du jour SunOS style shared libraries contain a lot of the same concepts as ELF shared libraries BSD Myths Archivado desde el original el 17 de abril de 2007 Consultado el 10 de abril de 2007 There were no pressing reasons to switch earlier In particular FreeBSD did not and does not have the problems building shared libraries that spurred the Linux conversion from a out to ELF Enlaces externos EditarManual de a out para Unix version 6 Manual de a out para Unix version 7 Manual de a out para 2 11BSD Manual de a out para 4 2BSD Manual de a out para SunOS 4 1 3 Manual de a out para FreeBSD Datos Q279254Obtenido de https es wikipedia org w index php title A out amp oldid 126904375, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos