stringtranslate.com

Formato del módulo de objetos (Intel)

El formato de módulo de objeto (OMF) es un formato de archivo de objeto que se utiliza principalmente para software destinado a ejecutarse en microprocesadores Intel 80x86 . Fue desarrollado originalmente por Intel alrededor de 1975-1977 para ISIS-II , dirigido a los procesadores 8080/8085 de 8 bits . [1] [2] [3] [4] Esta variante más tarde se conoció como OMF-80 .Como OMF-86 se adaptó al procesador 8086 de 16 bits en 1978. [5]

La versión 4.0 de OMF para la familia 8086 se lanzó en 1981 con el nombre de Relocatable Object Module Format , [6] [3] [4] y quizás sea más conocida por los usuarios de DOS como un archivo .OBJ .Las versiones para los procesadores 80286 ( OMF-286 ) [7] [8] y 80386 de 32 bits ( OMF-386 ) [9] [10] [3] se introdujeron en 1981 y 1985, respectivamente.Desde entonces, ha sido estandarizado por el Comité de Estándares de Interfaz de Herramientas [11] y también fue ampliado por Microsoft [12] e IBM ( IBM-OMF ). Intel también adaptó el formato al microcontrolador 8051 ( OMF-51 [13] y AOMF ).

Formato de archivo

Muchos formatos de archivos de objetos constan de 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 a las que apunta el encabezado, como el formato ELF . Las "secciones", código, á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 fue diseñado para requerir una memoria mínima al vincularse 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 de OMF de varios proveedores y a la adición de características como código de 32 bits y enlaces dinámicos. Estos son tipos de registros importantes:

No hay ningún encabezado que contenga desplazamientos de archivos, como un puntero a una tabla de símbolos, en el archivo; un vinculador debe analizar completamente el archivo 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 de más 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 objeto. También proporciona la posibilidad de almacenar el nombre del símbolo del punto de entrada del archivo ejecutable posterior en un archivo 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 . [14] [15]

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 utilizó este formato al generar objarchivos para C++. Era el único formato de archivos objeto que podía vincularse a un programa o unidad escrita en Object Pascal antes de la versión XE2 de Delphi, que introdujo soporte para el formato COFF , junto con el objetivo de Windows de 64 bits.

Ver también

Referencias

  1. ^ Formatos de archivo de objetos absolutos MCS 80/85 (PDF) (especificación técnica). Santa Clara, California, Estados Unidos: Intel Corporation . 1977. Número de producto 9800183B. Archivado desde el original (PDF) el 27 de junio de 2017.(16 páginas)
  2. ^ Formatos de módulo de objetos reubicables MCS 80/85 (PDF) (especificación técnica). Santa Clara, California, Estados Unidos: Intel Corporation . Marzo de 1981. Número de producto 121747-001. A33S/381/S00IP. Archivado (PDF) desde el original el 25 de noviembre de 2023 . Consultado el 25 de noviembre de 2023 .(42 páginas)
  3. ^ abc Burgett, Kenneth "Ken" (10 de noviembre de 2017). "Desarrollo del sistema operativo Intel ISIS: una entrevista con Ken Burgett". Archivado desde el original el 24 de noviembre de 2023 . Consultado el 25 de noviembre de 2023 . Un buen amigo mío, Bruce, consiguió el trabajo de desarrollar el formato de módulo de objetos (OMF) para el 8080 y el próximo 8086 . Este trabajo perduró durante años, ya que MS-DOS lo usó con pocas o ninguna modificación […] Fue un buen trabajo y se actualizó en 1985 para admitir el modo de dirección plana de 32 bits 80386 . […] La OMF nos dio una buena hoja de ruta para el diseño del enlazador, que unía los módulos de objetos, y el localizador, que procesaba el código reubicable en una imagen de memoria fija, con un punto de entrada definido, ya que así era como ISIS manejaba cargar módulos. El localizador también se construyó para permitir el mapeo de un módulo vinculado en un conjunto de imágenes EPROM , de modo que pudieran programarse mediante un quemador de graduación .[1][2]
  4. ^ ab Necasek, Michal (25 de julio de 2020) [9 de julio de 2020]. "¿Qué edad tiene OMF?". Museo OS/2 . Archivado desde el original el 25 de noviembre de 2023 . Consultado el 25 de noviembre de 2023 .
  5. ^ Especificación de producto externa, formatos de módulo de objetos 8086 . Corporación Intel . 1978-12-19.
  6. ^ "Formatos de módulo de objetos reubicables 8086" (PDF) . Versión 4.0. Santa Clara, California, Estados Unidos: Intel Corporation . Noviembre de 1981. Número de producto 121748-001. arca:/13960/t07w7pz4b. Archivado (PDF) desde el original el 25 de noviembre de 2023 . Consultado el 8 de febrero de 2020 .[3][4][5] (124 páginas)
  7. ^ Guía del usuario del creador del sistema iAPX 286 (PDF) . Santa Clara, California, Estados Unidos: Intel Corporation . Septiembre de 1981. Número de pedido 121711-001. Archivado (PDF) desde el original el 26 de noviembre de 2023 . Consultado el 26 de noviembre de 2023 .[6] (90 páginas)
  8. ^ "Formato de módulo de objetos iAPX 286". Guía del escritor de sistemas operativos iAPX 286 (PDF) . Corporación Intel . 1983. págs. 11-10-11-11. Número de pedido 121960-001. Archivado (PDF) desde el original el 26 de noviembre de 2023 . Consultado el 26 de noviembre de 2023 .(2 de 251 páginas)
  9. ^ Especificación 386 Formato de módulos de objetos . Corporación Intel . 1991 [1990]. Número de pedido 482991-002.
  10. ^ Archivos de arranque simples en formato de 386 módulos de objetos . Corporación Intel . 1991 [1990]. Número de pedido 483164-001.
  11. ^ "Especificación del formato de módulo de objetos reubicables (OMF) de los estándares de interfaz de herramientas (TIS)" (PDF) . Versión 1.1. Comité TIS / Unix Internacional . Mayo de 1995 [1993, 1992]. Archivado desde el original (PDF) el 7 de febrero de 2020 . Consultado el 7 de febrero de 2020 .[7][8] (87 páginas)
  12. ^ "El formato de archivo OBJ de Microsoft". Formatodearchivo.Info . Archivado desde el original el 25 de noviembre de 2023 . Consultado el 26 de noviembre de 2023 .
  13. ^ Especificación de producto externo para el formato del módulo de objetos MCS-51 (PDF) . Versión 5.0 Revisión A. Intel Corporation . 1982-09-05. Número de producto 9800183B. Centro de control de documentos número 481984. Archivado (PDF) desde el original el 25/11/2023.(24 páginas) (NB. Esta es la versión enviada con Intel RL51 2.0 y PL/M-51 1.0. Había una versión anterior X207 con fecha del 12 de abril de 1982).
  14. ^ Formato de módulo de objetos (OMF) y formato de módulo ejecutable lineal (LX) de IBM OS/2 de 16/32 bits (PDF) . Versión 8. Boca Raton, Florida, EE.UU.: IBM Corporation . 30 de junio de 1994 [1991, 1993]. Archivado (PDF) desde el original el 26 de noviembre de 2023 . Consultado el 26 de noviembre de 2023 .(v+87 páginas)
  15. ^ Formato de módulo de objetos (OMF) y formato de módulo ejecutable lineal (LX) de IBM OS/2 de 16/32 bits. Versión/Revisión 10. Boca Raton, Florida, EE.UU.: IBM Corporation . 1996-10-09 [1991]. Archivado desde el original el 26 de noviembre de 2023 . Consultado el 26 de noviembre de 2023 .[9] (vi+95 páginas)

Otras lecturas