SISTEMAS OPERATIVOS UNIX
En los años 70, Brian Kernighan y Ken
Thompson, empleados de AT&T,
decidieron escribir un sistema operativo nuevo para una maquina digital muy
conocida en ese entonces PDP-7. Dicho sistema operativo debió ser multiusuario
y multitarea. Llamaron a dicho sistema operativo UNIX que, aunque parezca raro,
no son las iniciales de nada, sino que es un derivado de un nombre del sistema
operativo MINIX, el cual evoluciona.
La primera versión de UNIX fue escrito
en Assembler, pero en posteriores versiones se utilizó un lenguaje de alto
nivel, él “C”. La idea de utilizar un lenguaje de alto nivel fue asegurar que el sistema sea portable, es decir, que
pudiera correrse en otras computadoras. En este sentido, UNIX fue el primer
sistema operativo escrito con este objeto en mente.
Un sistema UNIX posee una estructura de capas. En el centro
encontramos el hardware y redondeándolo el corazón o “kernel” del sistema. La
función del kernel es la administración del hardware (memoria, periféricos), y
de los procesos. Por afuera de los mismos encontramos los “shells” o interfaces
a de comando. Los shells son programables mediante scripts, como los archivos
BAT del DOS, pero en un lenguaje mucho mas poderoso. Por afuera de los shell
encontramos los comandos y las aplicaciones. Estos pueden comunicarse con el
shell o con el kernel directamente. En general, las aplicaciones no interactuan
con el hardware como suele suceder con el DOS, pues de esa manera son portables
mas fácilmente entre distintas plataformas, metas muy buscada en el mundo UNIX
y no tanto en el mundo DOS.
Entre las ventajas que posee
encontramos:
C Gran configurabilidad. Muchos
parámetros del sistema operativo pueden ser modificados. De hecho si se
licencia el código fuente, puede modificarse el kernel.
C Diversidad de plataforma.
C A partir del System V Release 4 existen
una cierta estandarización.
Entre sus fallas se detectaron:
C A pesar de los esfuerzos de todos los
desarroladores, aun existen diferencias entre los distintos UNIX.
C Es un sistema operativo muy poco
amigable con el usuario. Así, puede hablarse de un “temor de UNIX” entre la
gente de sistemas que no lo conocen. Se han desarrollado interfaces gráficas
que facilitan en gran parte su administración y manejo.
UNIX fue
diseñado desde el principio para facilitar al máximo las comunicaciones, tanto de los usuarios del sistema como entre
los distintos operadores (computadoras); no solo entre ordenadores con UNIX,
sino también entre ordenadores con UNIX y a ordenadores con otros sistemas
operativos.
Una
meta de largo alcance en las comunicaciones entre las computadoras es proveer
conectividad mundial entre computadoras y usuarios. Para se aceptable el amplio
rango de intereses involucrados, las técnicas de comunicación deben ser
decididas por consenso; para tal fin a sido desarrollado el estándar OSI (Open
System Interconnection). Esta es una arquitectura de red de especial
importancia, por que ha sido aceptada en el ámbito mundial.
El
modelo de referencia OSI es una descomposición arbitraria de funciones de
comunicación de computaras en siete niveles de abstracción denominados capas.
Cada capa tiene ciertas funciones conceptuales asociadas con ella, las cuales
se implementan de varias formas por medios de diferentes servicios y
protocolos.
Existe una amplia variedad de
estándares que no han tenido acepción mundial. Algunos de estos son IBM’S System Network Architecture (y a su
implementación DECnet), y el conjunto de protocolos del Departamento de Defensa de EE.UU. (DoD).
Los
protocolos DoD son ampliamente usados en los Estados Unidos especialmente en la
comunidad de sistemas UNIX.
Las
capas individuales de una arquitectura de red se realizan con definiciones de servicios y protocolos. En termino de
la arquitectura OSI, la implementación de la capa n es una entidad n. La
capa llamada sobre la entidad n es
una entidad (n+1) y es el usuario de servicio n. La capa inferior
a la capa n desde la cual la entidad
n requiere servicios, es la entidad (n-1). Un servicio n, de acuerdo a la modelo referencia OSI, es una capacidad de la
capa n y las capas inferiores a
ella, la cual es provista por la (n+1)
entidades en él limite entre la capa n y la capa (n+1).
La
implementación de interfaces de servicios (por ejemplo, las reglas mediante las
cuales el usuario n requiere (n-1) servicios dentro del sistema
abierto), no esta estandarizado por OSI. Las interfaces de servicios son
realizadas típicamente como llamadas al sistema operativo. La sintaxis y la
semántica de las interfaces de protocolos están rígidamente estandarizadas;
estas definen las reglas usadas entre las comunicaciones de n entidades.
Varios
tipos de datos conceptuales se han involucrado en la realización de servicios
OSI. El principio básico de movimiento de datos en OSI es que n entidades se
comuniquen con cualquier otra usando una (n-1)
conexión entre (n-1) entidades. Las n entidades intercambian n
información de control de protocolo para manejar sus operaciones cooperativas,
e intercambian n datos de usuarios.
La combinación de información de control de protocolo y datos de usuario es una
unidad de datos de protocolo (PDU);
la semántica y la sintaxis de la PDU están totalmente especificadas en los
estándares de protocolo OSI. Las PDU pueden clasificarse por el nombre de capas
(ejemplo: Unidad de Datos de Protocolos
de Red o NPDU).
Cuando
una entidad n envía n datos
de interfaces a una entidad (n-1),
estos datos forman una (n-1) Unidad de
Datos de Servicios (SDU). Las SDU se clasifican usualmente por el servicio
que esta siendo usada, tal como Unidad
de Datos de Servicios de Transporte (TSDU) para el servicio de transporte.
Cuando
se usa una entidad (n-1) para enviar
n SDUs a través de la red, una
entidad (n-1) construye normalmente
una PDU en respuesta de servicio requerido colocando sus propios cabezales y pistas de protocolos alrededor de una representación de la SDU n. La entidad (n-1) envía entonces las SDU n
encapsuladas como una SDU (n-2) a la
capa (n-2) debajo de la entidad (n-1). La recepción es a la inversa:
cada capa saca su propia información de control de protocolo desde las unidades
de datos, y coloca el contenido de los campos de datos de la PDU n en la entidad (n+1).
No
se necesita una correspondencia uno a uno entre n SDUs y la (n-1) PDUs
usadas para transferirlas, o entre n conexiones y las (n-1) conexiones sobre las cuales fluyen las PDUs. Una conexión (n-1) puede soportar mas de una
conexión n.
La
capa de aplicación OSI no incluye aplicaciones en el sentido
convencional tales como planilla de pago, inventario, etc. Mas bien, la capa de
aplicación es una interfaces para distribuir funciones del sistema operativo,
tales como la capacidad para abrir un fichero o llamar aun procedimiento
remoto. Esta inteface esta descripta abstractamente, la interface especifica
entre un sistema operativo real y una implementación real de la capa de aplicación
no esta sujeta a la estandarización OSI, ya que estas interfaces están
estandarizadas por diversos grupos tales como X/OPEN, the Open Software
Foundation, UNIX international, y otros.
La
capa de aplicación tienen componente que proveen servicios a los elementos de servicios de aplicación especifica (SASE) de
software que no es de OSI, y otros servicios, los cuales proveen servicios
dentro de la capa de aplicación (por ejemplo, a SASE). Los SASEs más comunes
son Sistemas de Manejos de Mensajes (MHS) y Transferencia; Acceso y
Manejo de Ficheros (FTAM). Otros SASEs incluyen Protocolo de Terminal Virtual (VTP), Servicios de Mensajes
Confeccionados (MMS), Servicios de
Directorios (DS), y Proceso de Transacción (TP). El Manejo
de Red es un SASE especial.
MHS
provee mecanismo para la transferencia de correo electrónico entre computadoras
y entre redes de trabajo; éste no establece la interface humana para los sistemas de correos.
El
departamento de Defensa de los EE.UU.
Ha desarrollado un juego de protocolos ampliamente aceptado, parte del
cual es el protocolo de control de transmisión (TCP) y el protocolo de Internet (IP), o simplemente TCP/IP.
Otros
protocolos en este juego incluyen el protocolo de transferencia de correo
simple (SMTP) y protocolo de transferencia de ficheros (FTP). En el juego de
protocolo DoD, los protocolos de “aplicación” tales como SMTP y FTP incluyen la
funcionalidad de las capas cinco a siete de OSI. Los servicios SMTP son
considerados un subconjunto de FTAM. TCP provee servicios generalmente
comparables al transporte de OSI. Un desarrollo considerable ha sido realizado
con el ampliamente distribuido en torno de desarrollo ISO (isode), el cual
provee capas superiores de OSI al principio de TCP/IP; ISODE está migrando a
los sistemas Berkeley`s UNIX.
El
modelo arquitectónico para los protocolos DoD está informalmente descripto por Padlipsky, y está dado por cuatro capas:
aplicación/proceso, host-host, red de trabajo y procesador de sub-red de
comunicaciones (CSNP) para CSNP. La capa de aplicación/proceso combina la
funcionalidad de las tres capas superiores de OSI. Los protocolos host-host
corresponden aproximadamente a la capa de transporte OSI, los protocolos de red
de trabajo corresponden a la capa de red OSI, y los protocolos CSNP-CSNP son
específicos para tipos individuales de
redes de transmisión.
TCP/IP
es importante para estudiante de sistema operativo por que es ampliamente
usado. Su éxito está mayormente
limitado a los EE.UU.; No ha sido aceptado como un estándar en el ámbito
mundial. La migración de redes basadas en OSI es un hecho durante los noventas.
Muchos recursos separados son provistos
para permitir a procesos concurrentes comunicarse con otros. Los conductores son caminos
unidireccionales sobre los cuales los procesos pueden enviar corrientes de
datos a otros procesos. Los Conductores
Etiquetados (del UNIX System V) son caminos permanentes. Los Mensajes (también de UNIX System V)
transfieren elementos de datos pequeños.
SunOs incluye el mecanismo de socket a partir de BSD 4.2. Los sokets son puntos finales de
caminos de comunicación de dos
vías. Ellos son especialmente usados
para implementar protocolos de red. Un proceso cliente en una maquina en la
red comienza la comunicación desde u
socket; un proceso servidor en otra máquina escucha al socket para recibir la
comunicación.
SunOs
provee capacidad de memoria compartida
del Sistema V. Los procesos comparten una porción de memoria; cuando un proceso
completa la escritura a esta área de memoria, otro proceso puede leer los
datos. SunOs provee también semáforos
del UNIX System V para controlar el acceso a recursos compartidos. Un
semáforo se usa para bloquear una prioridad de recurso
compartido para su uso; el proceso usa el recurso y luego usa una
operación de semáforo para liberar el
recurso.
Un conducto
es un camino de comunicación, consiste en una cola FIFO de bytes, entre dos
procesos; permite que la salida de un proceso sea la entrada de otro proceso.
La información escrita en un extremo del conducto puede ser leída desde el conducto en el otro extremo. La
sincronización, planificación y el
buffer son manejados automáticamente por el sistema. Un usuario puede crear una línea de conductos conectando diversos
procesos a través de conductos de modo lineal. El usuario especifica una línea
de conductos al shell mediante una serie de nombres de ficheros separados por
barras verticales. La salida estándar de un fichero ejecutable nombrado a la
izquierda de una barra es la entrada estándar del fichero ubicado a la derecha
de la barra.
El llamado al conductor retorna un descriptor para el extremo de escritura del conducto y otro
descriptor para el extremo de lectura.
El llamado al sistema de escritura
especifica al descriptor, el área de datos contiene los bytes que serán
escritos, y el número de bytes correspondiente. Si ocurre un error, retorna el
valor -1.
La
escritura termina con la llamada al sistema de cierre. La llamada al sistema de
lectura retorna un valor 0 cuando el conductor está vacío y no hay escritores.
Debido a que
los procesos asincrónicos pueden leer y escribir en el conducto, el sistema operativo se realiza las operaciones
concurrentes en el conducto. Una escritura a un conducto lleno bloquea al
escritor hasta que haya espacio disponible. Una lectura desde un conductor
vacío bloquea al lector hasta que los datos estén en el conducto.
Los
conductos son entidades locales; un proceso que desea leer o escribir en un conducto, debe poseer el descriptor de conductos. Un proceso que crea
un conducto puede utilizarlo, y un proceso hijo de éste también puede
utilizarlo. Los procesos no relacionados necesitan, de cualquier modo,
comunicarse. Para resolver estos problemas, UNIX System III introduce conductos etiquetados, UNIX System V
introducen colas de mensaje, y Berkeley`s BSD System introduce socket.
Un
filtro es un programa que procesa
una corriente simple de entrada para generar una corriente simple de salida.
Los filtros y conductos pueden usarse para generar múltiples salidas interesantes.
Algunos ejemplos de filtros UNIX son tr (carácter de traducción), cut (copia solo la porción de una
línea), pg (visualiza una página de
salida a la vez), tail (escribe las
últimas diez líneas de un fichero), dd
(realiza una copia exacta de un disquete).
DARPA es la agencia de Proyectos de
Investigación Avanzados de Defensa del Departamento de Defensa de los EE.UU.
v El dominio NS para comunicaciones que
usan los protocolos de comunicación estándar XEROX.
El mecanismo
AT&T`s Streams provee un número de características para transmisiones de
alta velocidad. Streams facilita la
implementación de protocolos de red en capas tales como OSI, SNA, TCP/IP y XNS.
Un Streams es un camino bidireccional
entre un proceso en el espacio de usuario y un manejador de dispositivo en el
espacio kernel. Los módulos de procesos pueden ser configurados
dinámicamente en un stream de manera
tal que los programas pueden agregar servicios a los naturalmente previstos por
los dispositivos.
Con
manejadores de dispositivos, las llamadas al sistema son conmutadas a los
manejadores; con streams, las llamadas al sistema crean mensajes para
comunicarse con los manejadores. Un stream asocia un par de colas (una para
lectura y otra para escritura) con el usuario y otro par con el dispositivo.
Las colas son enlazadas para formar un stream entre el manejador de dispositivo
y el usuario. Para cada cola hay
cuatros rutinas:
v Open es llamada cuando el dispositivo
es abierto.
v Close es llamada cuando el dispositivo
está cerrado.
v Put coloca datos en la cola.
v Service sirve la cola y los datos de
salida en un dispositivo o en la siguiente cola.
NFS le da a los sistemas de archivos
remotos la apariencia de estar montados
localmente, haciendo la operación de la red transparente a la ubicación
de los archivos.
La
computadora de una red es referida como nodos, cada uno con un nombre único. Un
nodo puede ser un servidor, un cliente,
o ambos.
Un
servidor provee servicios a los procesos o usuarios de uno o más clientes. Un
nodo distribuye las llamadas al sistema y/o los comandos para conveniencia de
un servido o un cliente.
NFS
y otros servicios de red de Sun se basan en los estándares Llamado a
procedimiento remoto (RPC) y Representación de Datos Externos (XDR)
desarrollados Sun Microsystem. RPC
permite que los programas que se ejecutan en diferentes sistemas operativos se
llamen entre sí y reciban valores de retorno. El RPC del cliente traduce cada
llamada a un formulario estándar y lo transmite al servidor. El RPC del
servidor acepta el llamado, lo traduce
al formato del servidor, e inicia el procedimiento llamado, transfiriendo los
parámetros apropiados. XDR es un formato estándar de representar datos
transferidos entre diferentes máquinas.
Existen dos medios principales de
comunicación entre los usuarios de un mismo sistema UNIX: estos son los
ordenadores WRITE y MAIL.
La
orden write fue diseñada para un diálogo inmediato entre dos usuarios de UNIX.
La orden mail sirve para comunicaciones en las cuales en contenido de las
mismas será almacenado en un archivo.
UNIX
ofrece también un servicio de agenda de uso transparente mediante la orden
CALENDAR.
Para
establecer esta forma de comunicación el usuario debe asegurarse de que el
receptor esté presente en el sistema.
Esto se logra ejecutando la orden WHO. Esta orden nos mostrará el nombre
del usuario conectado, el terminal al que está conectado, la fecha y la hora
del comienzo de la sesión.
Los
mensajes enviados por write aparecen súbitamente en la pantalla del usuario
receptor. Esto es un inconveniente porque el mensaje puede aparecer en medio de
la creación de un texto importante. Para solucionar esto el usuario puede
denegar el permiso de acceso a la orden write mediante:
$
mesg n: Deniega el permiso de acceso a la orden write.
De
esta manera, cualquier usuario que desee comunicarse con ese usuario recibirá
el mensaje “Permission denied”.
La
orden $ mesg y: otorga nuevamente permiso de acceso a la terminal para orden
write.
Esta orden está almacenada en el directorio
/etc/wall, el cual contiene varias ordenes que son usadas especialmente por el
superusuario. Es conveniente que este directorio esté incluido en la variable PATH
del archivo profile de todos los usuarios que deseen utilizarlas.
UNIX mantiene una oficina de correos para
todos los usuarios del sistema en el directorio /usr/spool/mail.
UNIX
fue diseñado en principio como un S.O. que hace relativamente fácil la
comunicación entre ordenadores, no sólo entre ordenadores con UNIX sino también
entre ordenadores con UNIX y ordenadores con otros S.O.
Aunque
las comunicaciones entre ordenadores separados por grandes distancias a través
de líneas telefónicas no son un concepto nuevo, los que utilizan UNIX poseen la
ventaja de que los programas de utilidad necesarios para establecer las
comunicaciones forman parte del S.O. y son directamente accesibles al usuario
final.
UNIX es un sistema operativo muy versátil
y hoy en día despliega sus potencialidades en
entornos muy disímiles. Entre otros se encuentran los siguientes:
v
Mainframes y microcomputadoras de distintos tamaños.
v
Estaciones de trabajos.
v
Supercomputadors.
v
Sistemas tolerantes a fallas (en este caso el sistema corre un
derivado de UNIX que soporta la operación de este tipo de máquinas).
v
Sistema de control en tiempo real (en este caso, UNIX fue
modificado para dar soporte a operaciones en tiempo real, es decir, ejecutables
en un lapso predecible). Un sistema
comercial UNIX de tiempo real es
el QNX.
v
LINUX es la variante más popular que posee varias
característica que lo hacen único, es la versión de UNIX para PCs. Fue escrito
por el finlandés Linus Thorvald, por ese motivo se distribuye gratuitamente.
v Compumagazine
Nº 99 Octubre 96.
v Operating
Systems, M. Deitel, Segunda Edición, 1990.
v El Sistema
Operativo UNIX (Xenix), José
Canosa, 1998.
v Administración
UNIX, Jean-Luc
Montagnier 1996.
![]()
Número de visitantes actuales disponible desde el 14/07/2002:
Autor: lrmdavid@exa.unne.edu.ar
Ó FACENA - http://exa.unne.edu.ar
Servicios WEB: webmaster@exa.unne.edu.ar