1.Sobre Minix.

2. Estructura de Minix.

3. Cómo arranca Minix.

Volver a la página principal.

Sobre Minix.

Minix es un clon de Unix distribuído junto con su código fuente y desarrollado por Andrew S. Tanenbaum.

Gracias a su reducido tamaño, diseño basado en el paradigma de microkernel, y su amplia documentación, resulta bastante apropiado para personas que desean ejecutar un sistema operativo Unix-compatible en su máquina personal así como aprender sobre su funcionamiento interno.

Para una persona poco familiarizada con los elementos internos de un sistema operativo, Minix es una buena opción que le permite entender casi todos sus elementos en pocos meses de uso y estudio.

Volver al principio de la página

Estructura de Minix.

Minix se estructura en cuatro capas:

    - La de funciones,

    - La de procesos de entrada y salida y manejadores de dispositivos,

    - La de servidores y

    - La capa de procesos de usuario.

La capa de funciones atiende las interrupciones, planifica las tareas y procesos, maneja los mecanismos de mensajes, chequea destinos correctos, loacliza buffers en memoria real para enviar y recibir y copia bytes desde el que envía al que recibe.

La capa de procesos de entrada y salida y manejadores de dispositivos se encarga de manejar la memoria, los discos, la impresora, el terminal, el reloj.

Los servidores que incluye la capa 3 son el manejador de memoria, el sistema de ficheros y el servidor de red. El manejador de memoria (MM) contiene todas las llamadas al sistema relacionadas con memoria tales como fork, exec y brk. El sistema de ficheros contiene todas las llamadas relativas al manejo de ficheros como READ, MOUNT, CHDIR ...

Una vez cargado, la distribución de Minix en memoria es la siguiente:

 

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

 

Volver al principio de la página

Como arranca Minix.

La BIOS carga el MASTERBOOT en memoria y lo ejecuta. Este carga el BOOTSTRAP desde el primer sector de la partición activa y este carga el BOOT de Minix.

 El BOOT de Minix carga el kernel.

El kernel inicializa el sistema y lanza todas las tareas de manejadores, que una vez inicializadas se bloquean en espera de trabajo. Luego se lanza el manejador de memoria, el manejador del sistema de ficheros y finalmente se ejecuta el proceso INIT.

 INIT lee el fichero /etc/ttytab para ver cuantos terminales hay, y mediante FORK crea un proceso hijo para cada terminal.

Cada proceso hijo ejecuta /usr/bin/getty que presenta un mensaje de bienvenida y espera que se teclee un nombre de usuario.

Cuando alguien entra en el sistema, se ejecuta /usr/bin/login con el nombre de usuario como argumento y se ejecuta el shell de ese usuario, especificado en /etc/passwd,

 normalment /bin/sh:

 El shell espera por un comando y luego lanza un FORK y un exec por cada comando.

Volver al principio de la página