En informática, System Object Model (SOM) es un formato de archivo ejecutable patentado desarrollado por Hewlett-Packard para sus sistemas operativos HP-UX y MPE / ix . En particular, SOM es el formato nativo utilizado para ejecutables de aplicaciones de 32 bits , código objeto y bibliotecas compartidas que se ejecutan bajo la familia de procesadores PA-RISC .
Desarrollado por | Hewlett Packard |
---|
Con la introducción de los procesadores de 64 bits , Hewlett Packard adoptó el formato de formato ejecutable y enlazable (ELF) para representar el código de programa más amplio de 64 bits, sin dejar de usar SOM para aplicaciones que se ejecutan en modo de 32 bits. Más tarde, con la introducción de la familia de procesadores Itanium , HP-UX abandonó el formato SOM en favor de ELF para código de aplicación de 32 y 64 bits.
En HP-UX, el formato de archivo SOM a veces se denomina formato a.out y se describe mediante las estructuras del lenguaje de programación C en el archivo de encabezado "/usr/include/a.out.h". Sin embargo, el formato SOM técnicamente no es el mismo que el formato estándar a.out utilizado por muchos otros sistemas operativos Unix.
Descripción general del formato de archivo SOM
Un archivo SOM consta de un registro de encabezado de tamaño fijo seguido de varias secciones, algunas de las cuales son opcionales. El encabezado siempre aparece al principio del archivo y contiene las compensaciones de bytes y los tamaños de donde se encuentran las otras secciones dentro del archivo. A excepción del encabezado, las otras secciones pueden aparecer en cualquier parte del archivo, aunque el diseño típico de un archivo SOM (asumiendo que todas las secciones están presentes) es el siguiente:
- Registro de encabezado
- Registro de encabezado auxiliar
- Registros espaciales
- Registros subespaciales
- Registros de reparación del cargador
- Cuerdas espaciales
- Registros de símbolos
- Registros de reparación
- Cadenas de símbolos
- Registros del compilador
- Datos para espacios cargables
- Datos para espacios descargables
Los campos numéricos se almacenan en orden de bytes big endian , el orden de bytes nativo del PA-RISC, y la mayoría tiene 32 bits de ancho. Las cadenas de caracteres son generalmente codificados en 8 bits ASCII y ambos precedidos de un indicador de longitud de 32 bits además de ser terminada en nulo , como cadenas C . La mayoría de los registros están alineados con palabras (comienzan en desplazamientos de bytes pares) con relleno según sea necesario.
Ver también
enlaces externos
- Página de manual de HP-UX a.out (4) , Hewlett-Packard
- Documento de arquitectura en tiempo de ejecución PA-RISC de 32 bits, HP-UX 11.0 versión 1.0 , Hewlett-Packard, 1997
- Documento de arquitectura en tiempo de ejecución PA-RISC de 32 bits, HP-UX 10.20 versión 3.0 , Hewlett-Packard, 1997. También disponible en parisc-linux.org
- Glosario del kit de transición de software HP-UX , Hewlett-Packard (en línea)
- Especificaciones de la arquitectura PA-RISC 1.1