Download El Sistema Operativo UNIX: Caractersticas y Tipos

Document related concepts
Transcript
El Sistema Operativo UNIX: Caractersticas y
Tipos
Grupo de Sistemas y Comunicaciones
Noviembre de 1995
1.
Evoluci’on Hist’orica del sistema operativo
Unix
Los origenes del sistema operativo Unix hay que buscarlos 26 años atr’as,
en 1969, cuando se escribi’o la primera versi’on de este sistema operativo, desarrollado por Ken Thompson, Rudd Canaday, Doug McIlroy, Joe Ossana y
Deninis Ritchie . La primera m’aquina que recibi’o este sitema de tiempo compartido y uso general fu’e un vieja DEC PDP-7 que ya no empleaban los citados
laboratorios.
Al poco tiempo y dado el entusiamo que despert’o, se migr’o el sistema a una
m’aquina mayor una PDP-11-20. Entre las personas que comenzaron a emplear
el sistema y que ayudaron en 1970, a portarlo a esta nueva m’aquina se encontraba Dennis Ritchie, desarrollador del famoso lenguaje C. La contribuci’on de
este ’ultimo fu’e decisiva en el diseño (reescritura del n’ucleo) y desarrollo del
Sistema Operativo en C (1973), marcando un hito en la historia del desarrollo
de los sitemas operativos, ya que hasta el momento todo el software de sistemas
estaba escrito en ensamblador.
****** Referencia a MultiCS, sacarla del Tanaenbaum ************ Existen
muchas similaridades entre Unix y el SO Multics. Este ’ultimo fu’e el resultado
de un proyecto conjunto entre la General Electric y el MIT, en concreto el grupo
del proyecto MAC. Esta similaridades incluyen principalmente:
Organizaci’on del sistema de ficheros.
Shell como un proceso de usuario.
Interface del sistema de ficheros (SF).
******************************************************
A finales de los años 70, en 1974 en concreto, Unix comenz’o a ganar “con
finles educativos”, terreno en las universidades. Adem’as, dadas la bondades del
entorno del desarrollo de software, y del buen servicio de operaciones de transacciones en redes de comunicaci’on, comenz’o a ser empleado por las compañ’ias
telef’onicas. A la primera implementaci’on de sobre el DEC PDP-7, siguieron
otras sobre un un PDP-11, y posteriormente en 1977, a un Interdata 8/32.
Entre 1977 y 1982, los laboratorios Bell combinaron las variantes del Unix de
AT&T dentro de un ’unico sistema. Este sistema se conoci’o como Unix System
1
III. Paulatinamente se fueron añadiendo mejoras, que tuvieron su aparici’on
oficial en lo que se denomin’o Unix System V.
Entre las razones que marcaron el ’exito de Unix hasta este instante cabe
hacer referencia fundamentalmente a dos; por un lado el hecho de estar escrito
C, lo que favorec’ia claramente su portabilidad entre m’aquinas de este tipo. La
segunda y quiz’as m’as importante raz’on resid’ia en la posibilidad de disponer
del c’odigo fuente, lo que permit’ia adaptarlo a las exigencias particulares de
cada organizaci’on, y lo que era m’as importante era sencillo de hacer porque
estaba escrito en un lenguaje de alto nivel.
A prtir de aqu’i hay dos hechos determinantes en la evoluci’on de Unix:
El primero lo constituy’o el trabajo desarrollado por la Universidad de
California (Berkeley), integrando los protocolos de comunicaci’on en redes con el sistema operativo. Los protocolos TCP/IP, implementados por
DARPA -Defense Advanced Research Projects Agency-, perteneciente al
departamento de defensa de los Estados Unidos (DoD), se ligaron con
much’isimo ’exito al Unix de Berkeley originando BSD-Unix, sin duda el
m’as popular de los Unix, empleado de forma ’unica en pr’acticamente
la totalidad del mundo acad’emico en su momento. La gran ventaja que
aportaba la implementaci’on de estos protocolos realizada por Berkeley,
resid’ia en que era capaz de soportar la comunicaci’on entre redes diferentes, como Ethernet, Token-Ring, etc.
El otro hecho decisivo se produjo en enero de 1983, AT&T comenz’o a
dar soporte de manera oficial al sistema operativo, momento en el que
pas’o a ser comercial, marcando un punto de inflexi’on en su desarrollo.
En este momento los sistemas tipo Unix m’as importantes que hab’ian
eran el System V, y BSD (Berkeley Software Distribution).
A mediados de los años 80 Unix se encontraba instalado en much’isimos
sistemas diferentes, desde pequeños ordenadores, hasta grandes m’aquinas, un
hito que ning’un otro sitema operativo hab’ia conseguido hasta la fecha. Entre
los factores del ’exito habr’ia que centrarse en lo que ofrec’ia el sistema que no
hab’ia hasta el momento:
Es un sistema multiusuario y multiproceso. Cada usuario puede
ejecutar varios procesos de forma concurrente, controlando los procesos
que ’el crea, su instante de comienzo y su terminaci’on.
Arquitectura de m’aquina transparente al usuario. Facilita la escritura de los programas, permitiendo que puedan ejecutarse en diferentes
m’aquinas, sobre distinto hardware (Transportabilidad ). El int’erprete de
comandos que se encuentra un usuario es constante, con independencia del
“origen” de Unix (comercial o de distribuci’on p’ublica), y de la m’auina
sobre la que est’e instalado.
Soporta un sistema de ficheros jer’arquico.
Posee un formato consistente para sus ficheros, lo que le permite
proporcionar un Interface Consistente con los dispositivos perif’ericos,
facilitando la labor der escritura de aplicaciones.
2
Aunque puede parecer que este sistema operativo es la panac’ea dista bastante de ella, y posee bastante puntos negros:
Interface de usuario consistente pero sumamente cr’iptico, la existencia de
comandos como grep, awk, man, etc, hace que sea un sistema dif’icil de
aprender.
Los temas relacionados con la administraci’on del sistema son complejos en
la mayor’ia de los casos, y posee variaciones significaivas entre los distintos
“tipos” de Unix. Adem’as se ve agrabado por las tareas de administraci’on
relacionadas con la comunicaci’on TCP/IP.
Al ser un sistema multiusuario, es dif’icil evitar ingerencias externas no
deseadas - Problemas de Seguridad.
A pesar de todo ello. hoy es el sistema operativo m’as difundido en el mundo
si se consideran todas sus variantes, por lo que reultad fundamental conocer un
poco m’as a fondo su constituci’on interna.
2.
Caractersticas mas relevantes del Sistema Operativo Unix
En general, un sistema operativo pude decirse que es el programa - o software
de sistemas-, encargado de controlar todas las partes de un ordenador tanto
hardware como software, permiti’endonos emplear todas las facilidades que este
proporciona.
Este programa constituye el alma de la mquina hasta el punto de que todos
los ordenadores precisan de un sistema operativo para funcionar.
En el caso de Unix, tres son las partes fundamentales que lo constituyen:
El n’ucleo o kernel
El int’erprete de comandos o shell
El sistema de ficheros
2.1.
El n’ucleo
Como indica su nombre, el n’ucleo es una pieza fundamental dentro de este
sistema operativo, hasta el punto que es preciso arrancarlo cada vez que se
produce la inicializaci’on del sistema.
Su misi’on es gestionar todos y cada uno de los recursos del sistema tanto
hardware como software, presentando una interface consistente a cada uno
de sus usuarios. Entre las funciones m’as relevantes que se encarga de realizar
el n’ucleo se encuentran:
La Planificaci’on del trabajo de la CPU.
La Gesti’on de memoria y su asignaci’on a los procesos.
3
La Transferencia de datos entre las diferentes partes de la m’aquina.
La Aceptaci’on y Ejecucci’on de las instrucciones del int’erprete de comandos.
El Control de los permisos del Sistema de Ficheros.
Este fichero tan “misterioso” se encuentra almacenado en el directorio raiz
/, que contiene tanto el fichero de inicializaci’on (boot), como el propio fichero
del n’ucleo para el sistema.
El nombre que erecibe este fichero varia de unos sistemas a otros, pero es
muy usual que al menos lleve incluida la cadena “nix”.
2.2.
El Int’erprete de comandos
Siempre que nos conectamos a una sistema Unix, e iniciamos una sesi’on, lo
hacemos dentro de un int’erprete de comandos o shell, visible por un s’imbolo
o prompt que nos indica que estamos dentro de ’el.
Su funcionamiento es muy simple, y se reduce a recibir los comandos que
nosotros le enviamos. Se los pasa al n’ucleo, y muestra los resultados generados
por este en la pantalla. Entre muchas cosas el int’erprete de comandos tiene
como misi’on fundamental proporcionar alguna de las siguientes caracter’istias:
Crear un entorno que se adecue a nuestras necesidades de trabajo.
Permitir la Escritura de ficheros de comandos Scripts de Shell.
Definir alias para los comandos.
Manipular un hist’orico de comandos, incrementando las prestaciones.
Editar y Completar la linea de comandos, facilitando la localizaci’on de
los comandos y ficheros.
Etc.
Dependiendo del tipo de int’erprete que estemos ejecutando tendremos todas, o parte de las caracter’isticas que acabamos de exponer.
Los tipos m’as comunes de int’erpretes son los siguientes:
sh (Bourne Shell)
csh (C Shell)
tcsh (TC Shell)
ksh (Korn Shell)
bash (Bourne Again Shell)
Las diferencias entre ellas son substanciales, aunque las m’as apreciables
son aquellas relacionadas con las facilidades interectivas de los int’erpretes m’as
modernos. A continuaci’on mostramos una tabla comparativa que resume las
caracter’isticas principales de cada una de ellas.
*******************
4
Bourne
______________________________________
Hist’orico de
Comandos
No
command alias
No
shell scripts
filename completion
No
command line editing No
job control
2.3.
Si
Yes
C
Yes
Yes
No
No
TC
Si
Yes
Yes
Si
Si
Yes
Korn
Si Si
Yes
Yes
Yes
Si
Si
Yes
Yes
Yes
Si
SiSi
El sistema de ficheros Unix
Un sistema de ficheros constituye una forma l’ogica de organizar y almacenar grandes cantidades de informaci’on de manera que se factible y sencillo
su manejo. La unidad m’inima de informaci’on que se maneja en este sitema
operativo es el fichero, y el sistema de ficheros es el encargado de su manejo.
Sus caracter’isticas son las siguientes:
Aunque el usuario no lo percibe, posee diferentes tipos de ficheros:
• Ordinarios - se encargan de almacenar informaci’on grfica, o de tipo
textual. Ser’an los de uso com’un por parte de los usuarios, pudi’endoles asignar permisos que restringan el acceso a los mismos.
Normalmente se organizan en directorios.
• Directorios - un directorio es un fichero que almacena informaci’on
sobre otros ficheros, b’asicamente almacena dos tipos de informaciones por fichero, su n’ummero de inodo, que en realidad es
un puntero al fichero, y el propio fichero, su contenido. As
los nombres del fichero act’uan s’olo como enlaces (links) al
ficheros y su inodo, porque para el sistema un fichero s’olo
es un inodo.
• Especiales - son ficheros empleados para representar dispositivos f ’isicos reales como una impresora, una unidad de
cinta o un terminal. Los ficheros especiales que representan dispositivos en los sistemas Unix, est’an normalmente
almacenados en el directorio /dev.
• Pipes - puede verse como un fichero temporal que permite
enlazar la ejecuci’on de comandos en Unix. Su misi’on consiste en almacenar los datos proporcionados por la ejecuci’on
de un comando hasta que son recogidos como entrada a otro.
El sistema de ficheros se encuentra organizado como una jerarqu’ia de
directorios que comienza en un directorio raiz o /. Inmediatamente debajo de este, se encuentran varios directorios del sitema con informaci’on
espec’ifica que este precisa.
• / (root)
• /bin - contiene los comandos y utilidades empleados cotidianamente. Almeca ficheros binarios ejecutables, de ah’i su
5
BASH
Yes
nombre. Entre estos ficheros se encuantran los comandos
Unix.
• /dev - contiene losficheros especiales empleados en la representaci’on de dispositivos f ’isicos com impresoras y teerminales.
• /etc - contiene varios ficheros y comandos empleados fundamentalmente en tareas de administraci’on del sistema.
• /lib - almacena las bibliotecas empleadas por otros programas y lenguajes.
• /tmp - se emplea como ’area vac’ia de almacenamiento sobre
la que guardar temporalmente informaci’on.
• /usr - est’a formado por otros muchos subdirectorios, entre
ellos cabe destacar uno para cada uno de los usuarios que
tienen acceso al sistema, conocidos como home directory.
Adem’as almacena tambi’en el texto fuente de las p’aginas
de manual.
Puesto que un sistem Unix puede tener simult’aneamente m’as de un
usuario trabajando sobre ’el (multiusuario), ha de poseer una forma de
“forzar” a que trabajen en ’areas separadas y de una forma m’as o menos
organizada. Para ello, cada usuario que posee acceso al sistema posee un
directorio home al que accede de forma autom’atica cuando se conecta.
Normalmente est’an agrupados bajo el directorio /usr.
Cuando variamos de directorio, ya no estamos en el home, en ese instante
el directorio en el que nos encontramos se conoce como directorio actual.
Cada fichero y directorio del sistema poseen un medio de quedar identificados de forma un’ivoca dentro del mismo, esta no es otra que el nombre
completo del fichero o directorio. Este nombre puede ser absoluto, si es
dado desde el directorio raiz, o relativo si es dado desde el directorio actual. Adem’as existen formas abreviadas de referirse
a ciertos directorios en particular .. representa el directorio inmediatamenta superior al actual, . representa el directorio actual
y
representa el home directory para cada uno de los usuarios que
empleen el s’imbolo.
El sistema de Ficheros tambin proporciona un forma de permitir
o restringir el acceso a aquellos ficheros y directorios de los que
somos propietarios, para lo cual hemos de modificar los permisos
de los mismos.
3.
Sistemas Operativos “Tipo” Unix
A continuaci’on comentaremos algunos de los distintos “tipos” de sistemas
Unix que existen en la actualidad.
6
3.1.
SunOS de Sun Microsystems
El sistema operativo SunOS de Sun, fu’e desarrollado por Bill Joy. SunOS
emple’o la versi’on 4.2 de BSD como la base sobre la que añadir’ia nuevas caracter’isticas al sistema operativo, especialmente en el ’area de la comunicaci’on
empleando redes (networking) - NFS (Network File System), NIS (Network
Information Service), RPC (Remote Procedure Call), y XDR (External Data
Representation). Las sucesivas generaciones del sistema operativo de Sun, se
conoce como Solaris. As’i, por ejemplo, la versi’on 5.O de SunOS que se basa
como System V Release 4 (SVR4), se conoce como Solaris 2.0. Sun ha portado
el sistema operativo Solaris a la arquitectura Intel 80X86.
3.2.
ULTRIX de Digital
El sistema operativo ULTRIX de Digital est’a basado en BSD4.2 con algunos
añadidos de BSD4.3. Este SO es compatible a nivel de c’odigo fuente con la
definici’on de interface de AT&T System V. Digital fu’e la primera empresa
delmundo de la inform’atica en lanzar al mercado una versi’on Unix basada en
el sistema operativo OSF/1 de la Open Software Foundation(OSF). Los nuevos
procesadores Alph de Digital soportan OSF/1, VMS, y Windows NT.
3.3.
AIX de IBM
El SO AIX de IBM se deriva del Unix SVR1 de AT&T, incluyendo algunas
extensiones de SVR2, y SVR3. AIX proporciona soporte para protocolos como
TCP/IP, NFS, NCS, SNA y el est’andar X Window.
EL AIX/ESA (Enterprise Systems Architecture) Versi’on 2 release 2 se basa
en el OSF/1, y ha sido pensado xomo sistema operativo paraa los mainframes
tipo 390. AIX/ESA soporta:
Tamaño de Sistema de Ficheros superior a 500GB.
Sistema X Window, X11R5,6.
POSIX 1003.1(especificaci’on de 1990).
E/S As’incrona (solapamiento de este tipo de operaciones).
En el futuro, AIX/ESA soportar’a:
Entorno de gesti’on distribuido de OSF, conocido como DME.
Entorno de computaci’on ditribuido conocido como DCE, tambi’en de
OSF.
Fortran Paralelo
3.4.
IRIX de Silicon Graphics (SGI)
El SO de Silicon Graphics se conoce con el nombre de IRIX. Est’a basado en
el System V Release 3, con algunas incorporaciones de 4.3BSD y de la propia
compañ’ia.
7
3.5.
BSD 4.x
Si dejamos a un lado los laboratorios Bell y AT&T, la instituci’o que m’as
influencia ha tenido en la difusi’on y desarrollo del Sistema Opertaivo Unix ha
sido sin duda la Universidad de California - Berkeley. En 1976, Bill Joy lider’o
un equipo de esta universidad para afrontar el desarrollo de la primera de las
versiones de Unix BSD. En 1978, se introdujo una nueva version de 32-bits del
mismo sistema operativo, y a partir de este momento, todo el desarrollo se llev’o
a cabo sobre un VAX 11/780 que hab’ia sido introducido por Digital ese mismo
año.
La primera de las versiones de BSD puestas “en circulaci’on” se conoci’o como la release 3BSD. Esta versi’on soportaba memoria virtual, paginaci’on por
demanda, y sustituci’on de p’aginas. En 1979, DARPA apoy’o el desarrollo de
una versi’on de 3BSD que incluyese soporte para TCP/IP. El apoyo se prolongar’ia despu’es para introducir algunas caracter’isticas especiales en 4.1BSD:
Sistema de Ficheros muy r’apido.
Cuotas de disco.
Interface de socket TCP/IP.
El n’umero de versiones que han aparecido desde 3BSD, han sido muchas:
4.0BSD, 4.1BSD, 4.2BSD, 4.3BSD, 4.3BSDTahoe, 4.4BSD, NetBsd0.9, NetBsd1.0, etc.
La release 4.3BSD proporcion’o soporte para m’ultiples familias de protocolos de red, como TCP/IP, o XEROX Network System (XNS). Tambi’en proporcion’o para TCP/IP en subredes y encaminamiento.
3.6.
XENIX y Unix SCO
En el año de 1980, Microsoft introdujo el SO XENIX para los microcomputadores. Este sistema operativo se basa en s’eptima edici’on de 4.1BSD y
alguna otram utilidad adicional. La release 3.0 de XENIX incluy’o nuevas caractr’isticas del AT&T System III, hasta que en 1985, tom’o como base definitiva
Unix System V.
En 1987, Xenix fu’e portado a la familia de sistema Intel 80386 por Santa
Cruz (SCO). En paralelo, AT&T y Microsoft aunaron sus esfuerzos, y mezclaron
Unix System V con XENIX, obteniendo como resultado Unix System V release
3.2
Aunque en la actualidad SCO sigue dando soporte a XENIX, tambi’en ofrece
otros dos SO‘s: SCO UNIX SVR3.2 versi’on 4 y SCO Open DeskTop Release 2.0.
SCO UNIX SVR3.2 versi’on 4 soporta configuaraci’on autom’atica del kernel y
nivel de seguridad C2. La versi’on OpenDeskTop incluye soporte para el sistema
X Window, OSF/MOTIF, y la capacidad de ejecutar aplicaciones DOS.
3.7.
SVR4
El Unix SVR4 unific’o las versiones m’as importantes de este sistema opertaivo: SytemV Release 3, XENIX, BSD, y SunOS. System V Release 4 (SVR4)
8
fu’e desarrollado por USL (Unix System Laboratories), supeditado a Unix International (UI). UI es una organizaci’on sin ’animo de lucro que tiene como
objetivo unificar el mercado de los sistemas Unix.
Las versiones m’as recientes de SVR4 incluyen SVR4 MP y SVR4.1. La
primera de ellas, SVR4 MP posee un kernel para procesadores m’ultiples con
multithreads, permitiendo el funcionamiento concurrente hasta de 16 procesadores. La versi’on SVR4.1 posee ciertos aditamentos relacionados con el campo
de la seguridad, posee un nivel B2 de seguridad.
Adem’as de todo esto, SVR4 proporciona soporte para el p‘rocesamiento en
tiempo real. Para ello el sistema trabaja con dos tipos de procesos; los de tiempo
compartido y los de tiempo real. Se han incorporado un nuevo conjunto de
llamadas al sistema incluyendo y adaptando varias de ellas de BSD. Al igual que
BSD, SVR4 ofrece resoluci’on en microsegundos para los requisitos de tiempo
y as’i permitir la correcta planificaci’on de aquellas aplicaciones que tratec con
interavalos de tiempo muy ajustados.
Sin embargo, donde m’as trabajo nuevo se fha realizado ha sido en el ’area
de la comunicaci’on. Soporta los prtocolos TCP/IP, incluye comando para la
transferencia de ficheros, sesiones remotas, y ejecuci’on remota de aplicaciones.
Tambi’en se proporciona soporte para NFS, RPC, y protocolos XDR.
3.8.
OSF
Los miembros principales que componen la Open Software Fundation son
IBM, Digital y HP. El sistema operativo disponible para la OSF se denomina
OSF/x, donde x representar’a siempre el n’umero de la versi’on, siendo la release
actual al dos (OSF/2). OSF/2 incorpora un microkernel aue posee s’olamente
60.000 lineas de c’odigo, por lo que se ha liberado una gran cantidad de memoria
que se ha podido aprovechar en otras aplicaciones. Ha sido certificado con un
nivel B-3 de seguridad.
Los elementos del sistema operativo, como los que controlan los procesos y
proporcionan acceso a la CPU se encuentran en el kernel mientras otras partes
del sistema operativo son ejecutadas como si fueran aplicaciones normales. El
Kernel de OSF/1 se bas’o en el de Mach 2.5 y 3.0 desarrollado por la Universidad de Carnegie-Mellon, que inclu’ia la versi’on BSD4.3 que satisface los
requisitos POSIX. La caracter’sitica fundamental de Mach reside en que soporta
el empleo de threads concurrentes, facilitando la multiprogramaci’on sim’etrica.
Los Threads son secuencias separables de instrucciones relacionadas. OSF/1 incluye tambi’en porciones de AIX de IBM, y parte de la implementaci’on de
mutiproceso sim’etrico de Encore Computers.
La tecnolog’ia que en la actualidad est’a ofreciendo OSF incluye DCE, DME
y Motif. El OSF/DCE (Distruted Computing Environent) ha sido especificado
de forma completa. El c’odigo DCE est’a disponible tanto para los miembros
como los no miembros de OSF; y recientemente USL ha anunciado su intenci’on
de dar soporte a las especificaciones DCE. Los elementos de DCE incluyen la
funcionalidad de las capas de red desde el nivel 4 al 7. Las tecnolog’ias adoptadas de otros incluyen: las RPC‘s de HP Apollo (con extensiones de IBM y
Digital), el DNS de Digital, el servicio X.500 de Siemens-Nixdorf, el servicio de
autenticaci’on del MIT, Kerberos, y el sistema de ficheros Andrew (AFS) de
Transarc Corporation, con aluguna extensi’on del NFS de Sun.
9
3.9.
HP-UX
Est’a basado en UNIX System V Release 3.0. Hewlettt-Packard es miembro
fundador de OSF, as’i que es probeble que el futuro, el kernel del nuevo HP-UX
est’e basado en el kernel de OSF/1.
3.10.
NeXTStep
La release 3.0 de NeXTStep es un sistema operativo orientado a objetos,
que se ejecuta sobre un sistema Motorola 68040. El sistema opertaivo de NeXT
est’a basado en la versi’on del SO Mach 2.5 de Carnegie-Mellon. La version
NeXTStepo 3.0 incluye:
Cliente Netware - de esta forma la m’aquina NeXT puede obtener recurso de los servidores de ficheros Novell, empleando para ello el protocolo
IPX/SPX. Esto permite montar volumenes NetWare e imprimir por impresoras Netware.
Clientes AppleShare - permiten montar discos flexibles de 1,44 MB de
ordenadores Macintosh, discos SCSI, y unidades CD-ROM. Tambi’en es
posible que un host NeXT imprima por un im‘resora AppleShare. El sistema operativo NeXT soprta los protocolos AppleTalk tanto de Phase 1
como Phase 2.
3.11.
Coherent
Este sistema operativo es un sistema de apariencia UNIX proporcionada por
Mark Williams Company. El Choerent 4.0 soporta la arquitectura Intel 80386
de 32-bits, e incluye m’as de 200 comandos de apariencia Unix, un compilar de
C, make, lex, yacc, nroff/troff, las shells Korn and Bourne, e implementraciones
de EMACS y Kermit. EN el futuro tiene previsto incorporarse soporte para los
protocolos TCP/IP, X Window, ANSI C, y streams o sockets.
10