Sistema Operativo UNIX

Introducción S.O. UNIX

Unix es un sistema operativo multiusuario y multitarea, es decir, varios usuarios puede usar la máquina al mismo tiempo, y que así mismo tiene la capacidad de ejecutar diversas tareas al tiempo.

Además es un sistema operativo muy portable, es decir, es capaz de adaptarse a diversos hardwares, puede ser utilizado desde computadoras personales hasta supercomputadoras. Unix se basa en un núcleo llamado Kernel (el corazón de todo sistema Unix), que reside permanentemente en la memoria, y que atiende a todas las llamadas del sistema, administra el acceso a los archivos y el inicio o la suspensión de las tareas de los usuarios. La comunicación con el sistema UNIX se da mediante un programa de control llamado SHELL. Este es un lenguaje de control, un intérprete, y un lenguaje de programación.

Historia de UNIX

El origen de UNIX se remonta al desarrollo de un proyecto iniciado en 1968, proyecto realizado por GE y AT&T, los que llevaban a cabo el desarrollo de un sistema operativo que ofreciera nuevos conceptos como la multitarea, la gestión de archivos y una mayor interacción con el usuario, como resultado se obtuvo un sistema operativo al que decidieron llamar MULTICS acrónimo de “Multiplexed Information and Computing Service” (Información multiplexada y Servicio de Computación), pero que no tuvo demasiado éxito debido a su gran demanda recursos como memoria y disco duro.

UNIX nace como la retoma de MULTICS por parte de un grupo de ingenieros y desarrolladores, entre los que destacan Ken Thompson y Dennis Ritchie, UNIX en principio fue bautizado como UNICS “Uniplexed Information and Computing System” pero al tener un sonido muy parecido a MULTICS fue rebautizado a UNIX, como lo conocemos. UNIX estaba inicialmente escrito en lenguaje ensamblador llamado lenguaje B, pero en 1973, Dennis Ritchie llevó a cabo un proyecto para reescribir el código de UNIX en lenguaje C.

UNIX se convirtió así en el primer sistema operativo escrito en lenguaje de alto nivel. Fue posible usar al sistema operativo en otras máquinas sin muchos cambios, solamente efectuando una nueva compilación en la máquina de destino, lo que facilitó la popularidad del nuevo S.O.

Al ser desarrollado en laboratorios de AT&T, este fue el dueño de los derechos, y al no comercializar en su momento con productos de informática AT&T puso UNIX a disposición de las universidades, empresas privadas y del gobierno de los Estados Unidos, a través de licencias.

Versiones de UNIX

Rápidamente UNIX fue llevado a nuevas máquinas, pero gracias a su simplicidad y claridad hizo que muchas empresas lo mejoraran a su modo, lo que originó versiones diferentes de la original. En el periodo de 1977 a 1982 los laboratorios Bell suministraron una versión comercial conocida como UNIX system III.

La siguiente versión fue la UNIX system V, y AT&T comenzó a ofrecer soporte técnico en enero de 1983. Sin embargo, en la universidad de California en Berkeley se había desarrollado una variante de UNIX cuya última versión, 4.3 BSD, contenía muchas mejoras (memoria virtual, gestión de redes, utilidades como vi, csh, etc.). Como consecuencia, muchos fabricantes basaron su versión de UNIX en 4.3BSD en lugar de la versión oficial de AT&T, la system V.

La figura 1 resume las versiones del sistema operativo UNIX desde su aparición en enero de 1970.

Figura 1 Versiones de Unix

Estructura del Sistema Operativo UNIX

El sistema está conformado por un conjunto de capas, desde la capa interior a la exterior:

  • Hardware
  • Núcleo o Kernel
  • Shell o intérprete de comandos
  • Programas de Usuario

Figura 2 Estructura del S.O. UNIX

Hardware

El hardware es toda la parte física del sistema, ya sea el terminal o consola, el procesador, los dispositivos periféricos, etc.

Unix se puede ejecutar, en teoría, en casi cualquier máquina, con cualquier configuración de hardware, desde un simple PC de sobremesa hasta una supercomputadora, pasando por microcomputadores, minicomputadores, mainframes (computadoras centrales), etc., ya que el sistema operativo se presume como el más portable.

Kernel

Es el núcleo del S.O. UNIX, es el encargado de interactuar directamente con el hardware de la computadora, en su mayoría esta escrito en lenguaje C, aunque coexiste con código ensamblador.

El Kernel tiene diferentes tareas asignadas, entre ellas:

  • Planificar, coordinar y gestionar la ejecución de los procesos. Para ello, hace uso de las prioridades asignadas a cada proceso y utiliza algoritmos específicos para repartir el tiempo entre los diversos procesos que compiten por él.
  • Dar servicios del sistema, como entrada/salida y gestión de ficheros.
  • Manejar las operaciones dependientes de hardware, es decir, realiza las funciones de más bajo nivel de manera que se oculten al usuario.

Shell

El Shell es la tercera capa del S.O., desde el punto de vista del usuario, actúa como un intérprete de comandos, que lee los comandos que se le introducen y dispone lo necesario para que éstos se ejecuten. Es un programa que siempre está en ejecución.

El Shell lee las órdenes suministradas, las decodifica y lo comunica al núcleo (Kernel) para realizar la acción especificada.

Prácticamente, todas las órdenes son programas ejecutables que el Shell busca en el sistema de ficheros, siguiendo el orden especificado en la variable global PATH.

También el Shell se puede utilizar como lenguaje de programación para crear programas llamados guiones o scripts.

Unix System V R4 provee de cuatro programas shell: El shell Bourne o shell del sistema (sh), el shell job o shell de trabajos (jsh), el shell C (csh), y el shell Korn (ksh).

Sistemas Unix más modernos proveen de versiones más avanzadas del shell, como el shell Tenex C (tcsh), que agrega a csh características provenientes de TENEX/TOPS-20 como completación de comandos, y el shell Bourne Again (bash) de GNU, que agrega al shell estándar características adicionales provenientes de csh y ksh.

Sistema de Archivos

En UNIX los archivos están organizados en lo que se conoce como directorios.

Un directorio no es más que un archivo especial, el cual contiene información que permite localizar en el dispositivo otros archivos. Los directorios pueden contener a su vez nuevos directorios, los cuales se denominan subdirectorios.

A la estructura resultante de esta organización se la conoce con el nombre de estructura en árbol invertido.

Un ejemplo típico de árbol de directorios UNIX se representa en la siguiente figura:

Figura 3 Sistema de archivos en UNIX

UNIX trabaja en un sistema basado en archivos, en que los directorios, los programas, los datos y hasta los controladores son archivos.

Archivos.

Cada archivo tiene asociado un nombre, un contenido, un lugar de ubicación e información de tipo administrativo, tal como dueño y tamaño. El contenido de un archivo puede ser texto, programas fuente, programas ejecutables, imágenes, sonidos y otros. Estructuralmente un archivo es una secuencia de bytes de datos que reside en forma semipermanente en algún medio estable, como ser una cinta magnética o un disco.

Directorios.

Los archivos se agrupan en directorios. Un directorio es un archivo que contiene una lista de nombres de archivo e información acerca de los mismos. Dentro del sistema de archivos, un directorio es una localización capaz de contener otros directorios o archivos. Dos archivos que se encuentren en distinto directorio pueden tener el mismo nombre sin confundirse.

El comando ls permite listar el contenido de un directorio:

ls /var

Requerimientos de Hardware

Procesador: UNIX soporta sistemas con una CPU Intel 80386, 80486, o Pentium. Esto incluye todas las variantes del tipo de CPU, como el 386SX, 486SX, 486DX, y 486DX2.

Memoria RAM: 4 MB de memoria mínimo, se recomienda 16 MB.

Disco Duro: Se soporta controladores IDE, Diskets, CD ROM, la instalación de UNIX se puede realizar en 20 MB, aunque se recomienda disponer de 200MB a 1GB de espacio en disco.

Monitor y Adaptador de Vídeo: Soporta todas las tarjetas de vídeo estándar Hercules, CGA, EGA, VGA, IBM monocromo, y Super VGA así como monitores para el interfaz por defecto basado en texto.

En general, si la combinación que tiene de monitor y tarjeta de vídeo funcionan bajo otro sistema operativo como MS-DOS

Comandos Maquina Virtual

A continuación se puede ver captura de pantalla de una máquina virtual en la que se ejecuta la versión 7 de UNIX, emulador desarrollado por Rober Nordier.

Figura 4 Captura de pantalla máquina virtual UNIX Versión 7

ls: Lista el contenido de un directorio -a Lista todos los ficheros (incluso los ocultos).

-t Ordena por fecha de creación.

-p Marca los directorios.

-r Invierte el orden.

-s Indica el tamaño.

-l Formato largo. Indica protecciones, propietario, grupo, tamaño y fecha de creación de cada fichero.

-F Distingue entre ficheros ordinarios, directorios y ejecutables.

cd: Cambio de directorio

mkdir: Crea un directorio

rmdir: Borra un directorio (debe estar vacío).

passwd: Para cambiar la palabra clave o password.

pwd: Mostrar el directorio actual

date: Muestra la fecha del sistema

cal: Facilita un calendario. Sintaxis: cal mes año

mv: Traslado o cambio de nombre de un fichero.

rm: Borra ficheros. Algunas de las opciones más importantes:

-i Pregunta antes de borrar.

-r Borra un directorio de forma recursiva, borrando primero los ficheros que están en él.

Lista de referencias

Palazzesi, Ariel. La historia de Unix. http://www.neoteo.com/la-historia-de-unix/

MANUAL DE UNIX. Comandos y Administración del Sistema. http://www.clasespersonales.com/manual_de_unix.pdf

Enríquez Palma, Pedro Alberto. UNIX. Obtenido de Curso de Modelado Molecular I: http://www.unirioja.es/cu/enriquez/docencia/Quimica/unix.pdf

Universidad Autonoma de Barcelona. TEMA 5. Obtenido de Introducción al Sistema Operativo UNIX: http://klingon.uab.cat/prat/Linux/so2_t5.pdf

González Barbone, Víctor Alberto. Curso Básico de UNIX. Obtenido de Introducción a UNIX: http://iie.fing.edu.uy/~vagonbar/unixbas/introd.htm

Universidad Tecnológica Nacional Facultad Regional San Nicolás. Apuntes Sistemas Operativos: http://www.frsn.utn.edu.ar/informatica01/Apuntes/sist_ope2.htm

González Miranda, Luis Alejandro. Introducción a Unix: http://www.lgm.cl/trabajos/unix/index.html

Villegas, Paco. Estructura general del sistema operativo UNIX: http://www.picasa.org/moodle/pluginfile.php/325/mod_resource/content/0/entrega1/e1_html/node9.html

González Barbone, Víctor Alberto. Curso Básico de UNIX. Sistema de Archivos: http://iie.fing.edu.uy/~vagonbar/unixbas/sisarch1.htm

Zamarreño, Jesús M.. El Sistema Operativo UNIX: http://www.isa.cie.uva.es/~jesusm/material/UNIX-apuntes.pdf

Barreto Véliz, Bernard Pavel. Sistema Operativo UNIX http://www.monografias.com/trabajos75/sistema-operativo-unix/sistema-operativo-unix2.shtml

Nodier, Robert. Emulador UNIX Versión 7 para equipos x86 http://www.nordier.com/articles/v7x86_vbox.html

0 comments :

Publicar un comentario