Formato de módulo de objeto reubicable


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

El formato de módulo de objeto reubicable (OMF) es un formato de archivo de objeto que se utiliza principalmente para software destinado a ejecutarse en microprocesadores Intel 80x86 . La versión 4.0 fue lanzada por Intel en 1981 bajo el nombre Object Module Format , [1] y quizás sea mejor conocida por los usuarios de DOS como un archivo .OBJ . Desde entonces, ha sido estandarizado por el Comité de Estándares de Interfaz de Herramientas . [2]

Formato de archivo

Muchos formatos de archivo de objeto consisten en un conjunto de tablas, como la tabla de reubicación, que se almacenan en posiciones fijas en el archivo, como el formato a.out , o son señaladas por el encabezado, como el formato ELF . Las "secciones", el código, el área de datos, etc., se almacenan como áreas contiguas de bytes dentro de dichos archivos.

Sin embargo, el formato del módulo de objetos reubicables se diseñó para requerir un mínimo de memoria al vincular y consta de una serie de registros que tienen el siguiente formato:

Existe una amplia variedad de tipos de registros debido a la consolidación de variantes OMF de varios proveedores y debido a la adición de características tales como código de 32 bits y enlace dinámico. Estos son tipos de registros importantes:

  • COMENT - (88h) Comentario, que también puede contener información de control.
  • EXTDEF - (8Ch) Define referencias externas
  • PUBDEF - (90h / 91h) Identifica los símbolos externos en este módulo
  • SEGDEF - (98h / 99h) Identifica segmentos
  • GRPDEF - (9Ah) Identifica grupos de segmentos, por ejemplo, MS-DOS DGROUP
  • FIXUPP - (9Ch / 9Dh) Registros de reparación o reubicación
  • LEDATA - (A0h / A1h) Contiene texto de un código o sección de datos
  • COMDEF - (B0h) Datos comunes no inicializados
  • COMDAT - (C2h / C3h) Datos comunes inicializados
  • MODEND - (8Ah / 8Bh) Indica el final del módulo

No hay un encabezado que contenga compensaciones de archivo, como un puntero a una tabla de símbolos, en el archivo; un vinculador debe analizar completamente el archivo de objeto para extraer toda la información.

En el formato OMF, los datos de una sección no se almacenan necesariamente como bytes contiguos en el archivo, sino que se pueden representar mediante varios registros. La especificación de formato de archivo (versión 1.1) dice que esto debe hacerse para secciones mayores de 1 KiB. Los registros que contienen información de reubicación (reparaciones) deben almacenarse inmediatamente después de los registros de datos de la sección a la que se aplican, de modo que los datos de la sección y la información de reubicación se "mezclen" en el archivo.

El formato de archivo proporciona registros especiales (LIDATA) que permiten la compresión de secuencias de datos repetidas en un archivo de objeto. También ofrece la posibilidad de almacenar el nombre del símbolo del punto de entrada del archivo ejecutable posterior en un archivo de objeto.

El formato de archivo también se puede utilizar como formato de archivo de biblioteca .

Usar

El formato de archivo es el formato de archivo de objeto más importante en DOS, Windows de 16 bits y OS / 2 de 16 y 32 bits .

Pocas cadenas de herramientas utilizan la versión de 32 bits del formato OMF. Por ejemplo, la cadena de herramientas Watcom C permite generar código para objetivos que utilizan diseños de memoria segmentada de 32 bits ; Iron Spring PL / I puede generar código para diseños de memoria plana OS / 2 de 32 bits.

El compilador Embarcadero Delphi usó este formato al generar objarchivos para C ++. Era el único formato de archivos de objeto que se podía vincular a un programa o unidad escrita en Object Pascal antes de la versión XE2 de Delphi, que introdujo el soporte del formato COFF , junto con el objetivo de Windows de 64 bits.

Ver también

Referencias

  1. ^ "8086 Formatos de módulo de objetos reubicables" . Versión 4.0. Intel . 1981. Número de producto 121748-001. arca: / 13960 / t07w7pz4b . Consultado el 8 de febrero de 2020 . (124 páginas)
  2. ^ "Especificación de formato de módulo de objeto reubicable (OMF) de estándares de interfaz de herramienta (TIS)" (PDF) . Versión 1.1. Comité TIS / UNIX International, Inc. Mayo de 1995 [1992]. Archivado (PDF) desde el original el 7 de febrero de 2020 . Consultado el 7 de febrero de 2020 . (87 páginas)

Otras lecturas

  • Levine, John R. (2000) [octubre de 1999]. "Capítulo 3: Archivos de objeto" . Enlazadores y cargadores . La Serie Morgan Kaufmann en Ingeniería de Software y Programación (1 ed.). San Francisco, Estados Unidos: Morgan Kaufmann . ISBN 1-55860-496-0. OCLC  42413382 . ISBN 978-1-55860-496-4 . Archivado desde el original el 25 de enero de 2013 . Consultado el 12 de enero de 2020 . Código: [1] [2] Errata: [3]
Obtenido de " https://en.wikipedia.org/w/index.php?title=Relocatable_Object_Module_Format&oldid=1049309149 "