Sistema Operativo Minix
Contenido
1.
INTRODUCCIÓN
Los sistemas
GNU/Linux [Joh98] ya no son una novedad; cuentan con una amplia variedad de
usuarios y de ámbitos de trabajo donde son utilizados. Su origen se remonta al
mes de agosto de 1991, cuando un estudiante finlandés llamado Linus Torvald
anunció, en el newsgroup comp.os. minix que había creado su propio núcleo de
sistema operativo y lo ofreció a la comunidad de desarrolladores para que lo
probara y sugiriera mejoras para hacerlo más utilizable. Este sería el origen
del núcleo (o kernel) del operativo que, más tarde, se llamaría Linux.
2. OBJETIVO GENERAL
2.1
Objetivo general
Investigar
sobre el sistema operativo Minix.
2.2
Objetivos específicos
·
Conocer el
funcionamiento del sistema operativo Minix.
·
Explorar qué
hardware se necesita para el funcionamiento de Minix.
·
Estudiar el
manejo de listas, control de procesos minix/Linux.
3. DESARROLLO CONCEPTUAL
3.1 ¿Qué
es MINIX?
MINIX es un sistema operativo diseñado para ser altamente fiable, flexible
y seguro. La versión más reciente está basada un poco en las versiones
anteriores de MINIX, pero es diferente en varias áreas clave.
Este sistema operativo es extremadamente pequeño, la parte que se ejecuta
en modo de kernel es menor a 4000 líneas de código ejecutable. Las partes que
se ejecutan en modo de usuario están divididas en pequeños módulos aislados uno
de otro. Por ejemplo, cada manejador de dispositivo se ejecuta como un proceso
en modo de usuario separado, entonces un error en un manejador (la fuente más
grande de errores en cualquier sistema operático), no puede detener el sistema
operativo completo. De hecho, la mayor parte del tiempo cuando un manejador
falla, este es reemplazado automáticamente sin necesidad de intervención del
usuario. Estas características, la pequeña cantidad de código del kernel y
otros aspectos mejoran en gran forma la fiabilidad del sistema.
3.2 Hardware
que se necesita para su funcionamiento
Se necesita un Intel 386 o superior con 4 MB de RAM, un disco duro IDE
con al menos 100 MB de espacio libre y un CD-ROM IDE para iniciar. No es
posible (por ahora) iniciar desde un CD-ROM USB.
|
3.3
Funciones del núcleo (nivel 1)
El núcleo de
MINIX, tal y como se dijo antes, tiene menos trabajo que los núcleos
monolíticos arquetípicos de UNIX. Básicamente su trabajo es:
Recoger las
interrupciones físicas de los dispositivos y las llamadas al sistema de los
procesos Gestionar la CP Dar un modelo más abstracto a los procesos La primera
función es necesaria para abstraer los detalles de las interrupciones, tanto
físicas como lógicas. Para ello, el núcleo se encarga de convertir estas
interrupciones en mensajes, para homogeneizar la comunicación entre procesos.
Es decir, que los procesos ven las interrupciones como simples mensajes.
La segunda
es básica en
cualquier sistema operativo
multiusuario y multitarea, y principalmente está para
aprovechar al máximo la capacidad de procesamiento de la máquina. Esta gestión
debe repartir lo más equitativamente posible el tiempo de CPU entre los
procesos y evitar que alguno de ellos se quede sin tiempo de procesamiento.
La última
simplemente consiste en hacer el
“trabajo sucio” del que alguien tiene que encargarse. Principalmente consiste en que guardar y
restaurar los registros en los cambios de contexto, y resuelve el envío de
mensajes, comprobando que los destinos son correctos, copiando los mensajes,
etc.
3.4
Funciones de la capa de controladores (nivel 2)
Esta capa comprende todas las llamadas “tareas”, que
son lo que otros sistemas operativos llaman manejadores o controladores de
dispositivo (drivers). Por cada dispositivo a controlar, es decir, por cada
manejador, hay una tarea ejecutándose en este nivel. Por ejemplo, generalmente
habrá una tarea para la impresora, otra para la terminal, otra para el disco,
etc. en la mayoría de los sistemas.
Además de las tareas “normales” de control de
dispositivos, hay una adicional, llamada “tarea del sistema”, que copia entre
regiones de memoria. No es estrictamente una tarea de E/S, ya que trabaja
exclusivamente con memoria, pero hace trabajos de copia entre regiones de
memoria cuando otros procesos no pueden hacerlo, por ejemplo, al mandar
mensajes.
Aunque las tareas tienen mayores privilegios que los
procesos de usuario (para poder acceder a los dispositivos físicos, poder
copiar a zonas de memoria de otros procesos, etc.), y tienen mayor prioridad a
la hora de ejecutarse, a efectos de comunicación son igual que los procesos, es
decir, mandan y reciben mensajes. Esto
hace el diseño del núcleo más limpio y homogéneo.
3.5
Funciones de la capa de servicios (nivel 3)
La
capa de servicios la componen principalmente los servicios del sistema de
ficheros (FS) y el manejo de memoria (MM). Además, se pueden añadir servicios
de red, que no vienen compilados por defecto en MINIX, y uno puede crearse sus
propios servicios.
El
gestor de memoria sirve las peticiones como fork, exec, o brk, mientras que el
sistema de ficheros responde a las llamadas como read, mount, o chdir.
Estos
servicios tienen más prioridad que los procesos de usuario, pero no pueden
realizar la E/S directamente
(tienen los mismos privilegios). Es decir, tienen que hacer peticiones a las tareas del nivel
2. Tampoco pueden acceder a zonas de memoria que no se les hayan asignado, por
lo que tienen que pedir servicios a la tarea del sistema. Esto facilita la modificación de los
servicios de este nivel por depender de llamadas al sistema del núcleo, que por
una parte son de mayor nivel, y por otra parte hace que el nivel 3 no dependa
de la configuración física del sistema informático en cuestión.
Los
servicios, además, son ficheros ejecutables independientes del núcleo. La ventaja más evidente es la rapidez y
comodidad para cambiar la implementación del nivel 3, por no vernos obligados a
cambiar todo el núcleo.
3.6
Funciones de la capa de nivel de usuario (nivel
4)
La
capa superior comprende todos los procesos “normales” de nivel de usuario, es
decir, los intérpretes de órdenes, como el bash o el ash; los compiladores,
como el gcc o el g++; los servicios del sistema, como el lpd o el syslogd, etc.
Como es lógico, es la capa que tiene menores privilegios y menor prioridad de
ejecución de todas.
Ningún
proceso de esta capa puede acceder a zonas de memoria de otros procesos, estén
en la capa que estén. Si se tienen que comunicar, se mandan mensajes, y las
copias en memoria las hace el núcleo mismo o el servicio del sistema.
Por
otro lado, por tener los menores privilegios, si hay un solo proceso de otra
capa intentando ejecutarse, obtendrá la CPU antes. Es decir, que no se
ejecutará ningún proceso del nivel 4 mientras haya procesos de otras capas
intentándolo.
Es
importante resaltar que, aunque se carguen servicios como el lpd
que estén ejecutándose todo el tiempo que esté la máquina encendida, éstos no
tendrán los mismos privilegios que los procesos de otras capas.
3.7

Control de procesos en minix

Comentarios
Publicar un comentario