MINIX está formado por una colección de procesos que comunican entre si y con los procesos de usuarios. Utilizando unas primitivas de comunicación a base de mensajes.

MINIX está estructurado en cuatro capas, cada una realiza una función definida.

4

init

proceso de usuario

proceso de usuario

proceso de usuario

 

procesos usuarios

3

Manejador de Memoria

Sistema de Ficheros

Servidor Red

Capa de servidores

2

tarea disco

tarea terminal

tarea reloj

......

tarea sistema

Capa de tareas I/O

1

MANEJO DE PROCESOS

 

CAPA 1 - Funciones:

Atiende las interrupciones, guardando y recuperando registros.
Planificación de tareas y procesos
Maneja mecanismos de mensajes, chequeo de destinos correctos, localización de buffers en memorial real para enviar y recibir, copia de bytes desde el que envía al que recibe.

La parte de esta capa que trata con el nivel inferior de las interrupciones está escrita en ensamblador, el resto en C.

CAPA 2 - Contiene los procesos (tareas) de I/O, manejadores de dispositivos (device drivers).

memoria
discos
impresora
terminal
reloj
sistema (no corresponde con ningún equipo)

Todas las tareas de la capa dos y todo el código de la capa uno están combinados juntos en un único programa binario el KERNEL.

Todas las tareas se gestionan independientemente y se comunican utilizando mensajes.

CAPA 3 - Contiene los servidores: el manejador de memoria, el sistema de ficheros, el servidor de red. Se ejecuta con menor privilegio que la capa 1 y 2.

El manejador de memoria (MM) contiene todas las llamadas al sistema relacionadas con memoria, tales como FORK, EXEC y BRK.

El sistema de ficheros (FS) contiene todas las llamadas, relativas a ficheros como READ, MOUNT, CHDIR, etc.

En MINIX, el manejo de recursos se realiza principalmente en el núcleo (capa 1 y 2) y las llamadas al sistema en la capa 3.

CAPA 4 - Contiene todos los procesos de usuarios, Shell, editores, compiladores, etc. 

 

Mapa de memoria RAM después que MINIX se ha cargado.

 

memoria libre para programas de usuarios

 

init

init

2372k - 2383k

inet

tarea inet

2198k - 2372k

fs

sistema de ficheros

1077k - 2198k depende nº buffers

mm

manejador de memoria

1024k - 1077k

 

memoria dispositivos I/O

640k - 1024k

 

memoria para el usuario

129k - 640k

 

 

 

kernel

tarea ....

129 k (depende de las tareas instaladas)

tarea impresora

 

tarea terminal

 

tarea memoria

 

tarea reloj

 

tarea disco

 
manejo de interrupciones CPU y mensajes

2k (00800) comienzo del núcleo

 

no utilizado

1k - 2k

 

vector de interrupciones

0 - 1k