La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Microkernels - Minix Sistemas Operativos 2 – Usac 2009

Presentaciones similares


Presentación del tema: "Microkernels - Minix Sistemas Operativos 2 – Usac 2009"— Transcripción de la presentación:

1 Microkernels - Minix Sistemas Operativos 2 – Usac 2009

2 Minix Un UNIX más Que se ha mantenido pequeño Que tiene un microkernel
Y que aun siendo pequeño es multitarea y bien diseñado Totalmente modular Con un stack TCP/IP Hecho en C como los machos

3 Arquitectura . . . Lo primero que debemos entender

4 El kernel en minix El componente central
Basicamente como dicta la filosofia de los microkernels solo maneja el acceso al hardware y la comunicación entre procesos

5 ¿Versus Linux (el viejo linux)?
* Todos los servicios se obtienen en los servidores mediante llamadas IPC

6 Las llamadas al sistema
Desde el usuario al kernel Send, receive y sendrec Los procesos de usuario estan condenados a la ultima Si uno quiere que un susbsistema haga algo basta con enviarle un mensaje

7 IPC . . . en minix El IPC se maneja asi
Un proceso envia un mensaje y el destinatario al kernel El kernel lo envia al destinatario correcto (mediante el UID indicado) Funcionan a manera de demonios

8 Las llamadas al sistema
Table.c FS independiente

9 Y por si tenían duda Todo es a traves del kernel (sea cual sea la religión del kernel). Tanto hardware (drivers) como software (ver el caso de FORK)

10 ¿Como se programan? Un programa accesa a una llamada a traves de una biblioteca En este caso si queremos crear una llamada tenemos que crear la llamada y la biblioteca o la función de acceso correspondiente El prototipo lo encuentran en /usr/include/unistd.h

11 Entrando en detalle Si queremos implementar nuestra llamada necesitamos editar y seguir la estructura de table.c no_sys, /* 0 = unused */ do_exit, /* 1 = exit */ do_fork, /* 2 = fork */ do_usac/* 77 = XXX */ nuestra llamada. Ademas de escribir el método de la llamada debemos usar el proto.h

12 Algunas otras Debemos informar a la biblioteca de la nueva llamada
Esto se hace ubicando un archivo .c en el directorio /lib/posix con la sintaxis _llamada.c #include <lib.h> #define fork _fork #include <unistd.h> PUBLIC pid_tfork() { message m; return(_syscall(MM, FORK, &m)); }

13 Y este codigo significaba
Se llama a _syscall Se elige entre MM o FS (cuando el kernel recibe una llamada lo primero que hace es convocar a MM/FS) El segundo parametro define el tipo de servicio (ver /usr/include/minix/callnr.h) Y repitiendo un programa de usuario NO puede ejecutar la llamada directamente, tiene que usar un mensaje (ver /usr/include/minix/type.h)

14 ¿Y ahora? Prueben minix por si mismos Editor similar a vi – elvis
Editor similar a nano – elle Buscan algo: find -name foo.c Si quieren ver el codigo de una llamada busquen el getset.c Editar el codigo y copiar por ftp, wget o ¿telnet? O ir más alla y leer esto O esto:


Descargar ppt "Microkernels - Minix Sistemas Operativos 2 – Usac 2009"

Presentaciones similares


Anuncios Google