next up previous
Next: La primera sesión. Up: Lo básico de UNIX. Previous: Lo básico de UNIX.

Arquitectura del sistema operativo UNIX.

Como todos los sistemas operativos UNIX gestiona los recursos físicos del ordenador (CPU, memoria, disco, terminales, etc) con las siguientes características:

1.
Ser multiusuario permite que varios usuarios trabajen simultáneamente en el mismo ordenador, compartiendo así todos los recursos. En ocasiones alguien ha llamado a un sistema operativo de este tipo: multipuesto. Esto tiene una agradable ventaja: mucha gente puede usar simultáneamente la misma computadora y así aumentar la productividad. Probablemente si no fuera por esta cualidad del sistema operativo, no existirían grandes sistemas y todo el mundo debería trabajar con un PC.

2.
Ser multitarea hace posible que un usuario pueda ejecutar simultáneamente varios programas. También se llama por esto multiprogramado. Realmente esta propiedad es casi una consecuencia de que el sistema operativo sea multiusuario, ya que la multitarea se puede conseguir dejando que un mismo usuario acceda al sistema más de una vez.

3.
Ser en tiempo compartido posibilita que el sistema operativo distribuya controladamente los recursos del ordenador entre todos los usuarios. La cantidad de atención que un proceso recibe de la CPU puede ser modificado a antojo del usuario. A partir de UNIX System V Release 4, este sistema puede utilizarse para aplicaciones en tiempo real débil, es decir, aquellas cuyo tiempo de respuesta no puede garantizarse más que en términos estadísticos. Esto realmente es uno de los principales inconvenientes de UNIX para sistemas de tiempo real en los que el tiempo de respuesta del sistema es una cuestión clave. Por ejemplo, UNIX no sirve para correr en la computadora de un avión que ejecute el código del piloto automático, ya que la probabilidad de respuesta inmediata no sería del 100%, es decir, un tanto por ciento de los aviones se estrellarían.

4.
Ejecuta las aplicaciones según el modelo de memoria virtual que permite que un programa puede ejecutarse sin necesidad de que se almacene en su totalidad y simultáneamente en la memoria principal. Esto tiene tres grandes ventajas:
(a)
Puesto que sólo permanece el memoria la parte de un proceso que se está ejecutando, podemos almacenar muchos trozos de procesos simultáneamente (multitarea).
(b)
Un programa almacenado en disco y con un tamaño superior al de la memoria principal puede ejecutarse. Esto evita que los programas tengan que dividirse en overlays (partes disjuntas de un programa que si caben por separado en memoria principal) y que deben ser gestionadas directamente por el usuario.
(c)
Acelera el proceso de carga y lanzamiento de los procesos porque su ejecución puede comenzar en cuanto la primera página (bloque mínimo de transferencia entre el disco y la memoria principal) reside en memoria.

Tal y como se muestra en la figura 1.1, cuando un usuario entra a trabajar en un ordenador bajo UNIX le atiende un programa llamado intérprete de comandos (shell) que le permite ejecutar al menos 200 programas que forman parte de la distribución típica de UNIX. Sin embargo, desde un punto de vista técnico, el sistema operativo UNIX es tan solo el programa que gestiona los recursos del ordenador que se llama núcleo (kernel). Es por abuso del lenguaje por lo que habitualmente se habla de sistema operativo UNIX cuando nos referimos a cualquiera de los 200 comandos.

Quizás una de las principales características del sistema operativo UNIX es su asombrosa portabilidad a todo tipo de sistemas y la inalterable interfaz que muestra al usuario. Por esto, UNIX corre en la mayoría de las computadoras existentes (desde un IBM PC o CBM Amiga hasta un vectorial de Cray o Convex). En concreto lo que hace cada fabricante es adaptar UNIX y concretamente el núcleo a su máquina y de esta forma se comportará de forma similar a cualquier otra máquina que ejecuta UNIX. El secreto de esta facilidad de implantación se muestra en la figura 1.1 en la que se muestran los niveles que forman el sistema operativo UNIX. La característica más relevante de cualquier sistema UNIX es que existe un adecuado aislamiento entre cualquier usuario (incluido el superusuario) y el hardware del sistema, siempre usándose como intermediario el núcleo del sistema operativo que es la principal parte dependiente de la máquina. Por esta razón, Linux que no es más que una versión no comercial de UNIX (de ahí su bajo coste) corre actualmente en los siguientes sistemas (visitar www.cs.us.es/archive/linux/devel.html para más información):


  
Figura 1.1: Arquitectura del sistema operativo UNIX.
\begin{figure}\centerline{\epsfig{figure=basico/arquitectura_UNIX.eps,
width=7 cm,
angle=-90}}
\end{figure}

1.
DEC AXP (Alpha). Es la última saga de máquinas de Digital que montan la familia de procesadores de 64 bits DEC Alpha 21064, 21064A y 21164 trabajan actualmente entre 150 y 633 MHz (por ahora sólo en máquinas monoprocesador). Para más información visitar www.azstarnet.com/ axplinux. Además ahora corre sobre ARM.

2.
Sparc. Es la plataforma desarrollada por Sun Microsystems. Actualmente Linux corre sobre Sparc 1, 1+, 2, IPC, IPX, SLC, ELC, Sparc Classic, LX, 5, 10, 20, UltraSparc 140/170, y en breve en SparcCenter 1000/2000 y Sun 4/3xx. Para más información revisar www.geog.ubc.ca/sparclinux.html.

3.
Power Macintosh. Los nuevos Apple con CPU's PowerPC también corren Linux bajo el nombre de MkLinux. Concretamente Linux ha sido portado a Power Macintosh 6100, 7100, 8100 y PowerComputing 100 y 120. Información extra en www.mklinux.apple.com. También se está portando a Apple MAC con 680x0.

4.
IBM PowerPC. También IBM corre Linux en sus nuevas estaciones de trabajo con PowerPC, concretamente en las series 830 y 850. Más información en www.linuxppc.org.

5.
Amiga. Para el ya desaparecido CBM Amiga tenemos una versión de Linux llamada Linux/m68k que usa procesadores de la familia 680x0 (ahora hasta el 68060). Para más información atender a ftp.informatik.uni-oldenburg.de/pub/amiga/linux.

6.
Atari ST. Esta máquina también monta un motorola 680x0 por lo que podemos encontrar información extra en la dirección de Amiga.

7.
Acorn. Las máquinas Acorn pueden montar una tarjeta con un 486. Existe un Linux para esta configuración. Más información en www.ph.kcl.ac.uk/ amb/linux.html.

8.
MIPS. MIPS es la empresa perteneciente a Silicon Graphics que fabrica los microprocesadores R2000, R3000, R4000, R44000, R5000, R8000 y R10000 (y alguna que otra variante más). También se montan en vídeo consolas como la PlayStation de Sony. Linux/MIPS corre actualmente en la subfamilia R4x00. Ejemplos de máquinas que montan este procesador son: Acer PICA-61, DECStation 5000/2x, 5000/100, 3100, Deskstation rPC44, Mips Magnum 4000PC, Olivetti M700-10 y RM200.

9.
i386, i486, Pentium y Pentium Pro. Originalmente Linux fue escrito para el i386 y este fue el principal acierto de Linus Torvalds pues escogió la plataforma más extendida en todo el mundo. Linux necesita únicamente 2 Mbytes (aunque tan poca memoria lo enlentece mucho) y un 80386SX para funcionar. Actualmente se está portando también a PC con un 8086 bajo el nombre de Proyecto ELKS (ver www.linux.org.uk/Linux8086.html) y a sistemas con hasta 16 procesadores (Proyecto Linux/SMP). Un buen punto de partida para recavar información en castellano acerca de Linux es slug.ctv.es/ alfredo.


next up previous
Next: La primera sesión. Up: Lo básico de UNIX. Previous: Lo básico de UNIX.
Vicente González Ruiz
1998-07-13