MINIX tiene tres tipos de formatos para tres clases de ficheros.

ficheros ejecutables.

archivos.

módulos de librerias.

FORMATO DE LOS FICHEROS EJECUTABLES (a.out)

Un fichero ejecutable tiene tres partes.

ENCABEZAMIENTO

PROGRAMA

INICIALIZACION

DE DATOS

El segmento de datos no inicializados (bss) no está presente en los ficheros ejecutables.

Este sistema operativo soporta dos modelos de memoria.

MODELO PEQUEÑO - 64K para programa + datos + stack.

MODELO SEPARADO ID

64K para programa
64K para datos + stack

 

Un encabezamiento normal consiste de 8 palabras de 4 bytes (32 bytes)

0:0x04100301L (modelo pequeño), ó 0x04200301L (separado I,D)

1:0x00000020L (encabezamiento de 32 bytes) ó 0x00000030L (encabezamiento de 48 bytes)

2:tamaño del segmento de programa en bytes.

3:tamaño del segmento de inicialización de datos en bytes.

4:tamaño del segmento de datos no inicializados (bss) en bytes.

5:0x00000000L

6:Memoria total asignada al programa.

7:0x00000000L

Se admite un encabezamiento de 48 bytes que consiste:

32 bytes (encabezamiento normal) + 16 bytes (son ignorados)

 

EN EL MODELO PEQUEÑO

6:memoria total = programa + datos + bss + asignación dinámica

En el modelo separado ID

6:memoria total = datos + bss + asignación dinámica

Asignación dinámica.- es la memoria total reservada para el stack más crecimientos del segmento de datos. 

La asignación dinámica puede modificarse con el comando chmen que actualiza la palabra 6 del encabezamiento.

FORMATO DE UN ARCHIVO 

El formato de un archivo consiste en una secuencia de pares:

(ENCABEZAMIENTO, FICHERO)

donde los ficheros vienen precedidos por el número mágico: 0177545

El encabezamiento consiste de 26 bytes con los siguientes campos:

campo

tamaño

especificación

name

14

nombre de fichero

time

4

fecha de la última modificación

uid

1

identificador del usuario (truncado a 1 byte)

gid

1

identificador del grupo

mode

2

bits de protección del fichero

size

4

tamaño del fichero

Si un fichero tiene un número de bytes impar se le añade un byte cero para que el encabezamiento comience en una dirección par. 

Las dos palabras de 4 bytes del encabezamiento se almacenan con la palabra de mayor orden primero (por compatibilidad con la versión de 7 UNIX)

FORMATO DE LIBRERIA

MINIX contiene varias librerías de procedimientos que contienen: 

- procedimientos utilizados propiamente por el sistema (multiplicaciones, divisiones, etc). 

- llamadas al sistema (con los mismos parámetros que UNIX).

Cada fichero contiene un procedimiento llamable, cada nombre que va a ser visible desde fuera tiene que declararse en una sentencia .define 

Todas las sentencias .define ocuparán los primeros lugares dentro del fichero. 

Estas sentencias se generan cuando el compilador C se llama con el flag -LIB 

Los comandos libpack y libupack, compactan, (eliminan comentarios) y descompactan código ensamblador.