UN SISTEMA OPERATIVO SERIO


El objetivo de un Sistema Operativo (en adelante S.O.) serio es el de crear una máquina virtual para la que sea sencillo trabajar. Es decir, ocultar el hardware (en adelante será referido como "hardware" o "HW" indistintamente). De esta forma, dos arquitecturas distintas con el mismo S.O. parecerán la misma máquina. Por ejemplo, una SUN-10 con SunOS 4.2 (UNIX BSD 4.2 para SUN) y un PC-386 con FreeBSD (UNIX BSD 4.2 para PC) se antojarán iguales al usuario (no en prestaciones, por supuesto). Por el contrario, una misma arquitectura con dos S.O. distintos se presentará como dos máquinas distintas. Por ejemplo, un PC será  completamente distinto con MS-DOS 6.2 o con Slackware LINUX 1.2 (UNIX SYSTEM V para PC) como el que se regaló en el número 2 de Sólo Programadores.

Esta ocultación de hardware debe realizarse de un modo cómodo y seguro. Debe ser cómodo para poder utilizar los servicios del mismo sin problemas, aunque no directamente sino a través del S.O., en este caso, el UNIX. Y debe ser seguro para liberar al programador de la preocupación de evitar catástrofes, función de la que se debe encargar el propio sistema. A los programadores de DOS esto de la ocultación puede parecerles una desventaja, sin embargo esto es porque el DOS no realiza esta función, al menos, de forma "comoda y segura".

Desde una visión amplia, el S.O. debe suponer:

  1. Un entorno de mantenimiento y creación de programas

  2. Un interfaz sofisticado de operaciones para el programador, un intérprete de comandos

  3. La correcta gestión de recursos del sistema.

Desde una visión más restringida, se considera el S.O. como el núcleo o kernel del sistema con las funciones y estructuras de datos necesarias para GESTIONAR recursos. Así pues, el S.O. debe:

Llegados a este punto, los programadores con experiencia en DOS advertirán que en la mayoría de los casos son ellos los que se encargan de estas funciones en lugar del propio sistema.

UNIX, como la mayoría de los S.O. actuales es un sistema multiusuario y multitarea. Esto influye en la gestión de la protección del sistema que soluciona de la siguiente forma:

Es importante entender que un S.O. como UNIX "está en todas partes" y "nada escapa a su control". De este modo, existe un modo dual de ejecución de programas: modo usuario en el que el programa de usuario tiene el control y modo supervisor o monitor en el que es una rutina del propio S.O. la que controla el ordenador.
La entrada en modo supervisor o activación del S.O. se producirá por uno entre tres motivos:

  1. Una llamada al sistema

  2. Una interrupción (hardware o software)

  3. Un trap o interrupción especial hardware que generalmete aniquila el proceso que la provocó