Inicio wiki
Aula Virtual
 Administración de Sistemas Operativos
Inicio ASO Aula Virtual

Vistas
  •   2. UNIX y LINUX
De ASO

Contenido

Historia del Unix

A lo largo de su existencia, son numerosos los acontecimientos que han rodeado al sistema operativo Unix. Destaquemos a continuación de una forma no exhaustiva y cronológicamente algunos de estos acontecimientos.

A finales de los años 60, los laboratorios Bell (ATT) y el MIT estaban desarrollando el S.O. MULTICS para un GE645. En el 1969, Ken Thompson empieza a escribir Unix en lenguaje ensamblador para una PDP-7, como sistema operativo para desarrollo de programas en el entorno de investigación dentro de Bell-Labs. En 1971, se rescribe para un PDP-11/20 pero es en el año 1973 cuando Dennis Ritchie, junto con Thompson, reescriben el sistema UNIX en el lenguaje de programación C, lo que lo convierte en un S.O. fácil de transportar a otros sistemas.

En 1975 se crea el grupo de usuarios USENIX. Además, en este mismo año, Western Electric da las primeras licencias de uso de Unix a varias instituciones académicas con objetivos educacionales. Se estandariza su uso en las universidades americanas.

En 1980, Microsoft desarrolla Xenix, la versión comercial de Unix para microcomputadoras de 16 bits; pero hay que esperar hasta el año 1983, para que ATT anunciase la primera versión estándar comercial: el Unix System V. A partir de esos momentos han ido apareciendo diversas variantes entre las que cabe destacar el Unix de Berkeley 4.2 BSD, el cuál a su vez está basado en el Unix 32V de Bell-Labs.

Si quieres concer mejor la historia de GNU/Linux te recominedo que veas el siguiente documental.


Código Linux

Quizás es el documental más famoso que se ha realizado sobre GNU/Linux. En él comentan su desarrolladores todo el proceso de creación del sistema GNU/Linux y las implicaciones que tiene actualmente en nuestra sociedad

Ver película


Estructura del Unix

Figura 1. Estructura del Unix

La estructura básica del S.O. Unix podemos verla en la figura 1. El kernel, capa más interna en la figura, es el núcleo del sistema operativo Unix. Se encarga de secuenciar los procesos, reservar espacio de memoria y de disco, supervisar la transmisión de datos entre memoria principal y periféricos, y satisfacer las peticiones de servicios de los procesos existentes.

El kernel nunca trabaja directamente para los usuarios. Todos los servicios los proporciona el shell o los programas de utilidades (ambos actúan de interfaz entre los usuarios y el Kernel).

Para requerir un servicio del sistema operativo se utiliza lo que se denomina llamadas al sistema (system calls). Las llamadas al sistema lo que hacen es conmutar la máquina de modo usuario al modo kernel (también llamado modo núcleo o supervisor) y transfieren el control al sistema operativo. Se puede ver la existencia de estos modos como un esquema de protección ya que en modo núcleo se pueden ejecutar todas las instrucciones, mientras que en modo usuario las instrucciones de E/S, por ejemplo, y otras no están permitidas. Sólo se permiten algunas instrucciones como las relacionadas con las operaciones aritméticas, de acceso a memoria principal, etc. Por ello, los programas de usuario se ejecutan en modo usuario y el sistema operativo se ejecuta en modo núcleo.

El shell es el intérprete de órdenes y se encuentra por encima del kernel. Se encarga de interpretar las órdenes y convertirlas en peticiones al kernel. Normalmente se incluye con cualquier sistema operativo Unix distintos tipos de shell, lo que permite poder elegir el que más se adapte a nuestras necesidades.

La capa más externa está formada por utilidades para la manipulación de ficheros, lenguajes de programación, utilidades de depuración de código, aplicaciones de usuarios, etc.

Características principales

Son muchas las características que podemos encontrar en el sistema operativo UNIX, pero entre ellas destacamos las siguientes:

  • Interactivo. Se escribe órdenes y el sistema operativo obedece presentando las respuestas apropiadas. Además incluye la posibilidad de ejecutar órdenes o programas que se ejecuten de forma no interactiva.
  • Multitarea. Puede realizar varias tareas (llamados procesos) al mismo tiempo.
  • Multiusuario. Más de una persona puede usar el sistema al mismo tiempo e incluso con el mismo nombre de usuario.
  • Independencia respecto de los dispositivos. El acceso a la información es el mismo sin importar donde se encuentre el fichero o dispositivo. Esto permite dar un tratamiento uniforme a todos los dispositivos.
  • Portabilidad. Al estar escrito en C permite transportarlo a otros sistemas.
  • Facilidad de trabajo en red. Al disponer de un sistema de ficheros flexible permite trabajar con sistemas de ficheros en red como NFS y RFS.


Historia de Linux

Linux fue concebido por el finlandés Linus Torvalds, estudiante de la Universidad de Helsinki, quién comenzó trabajando sobre el código fuente de Minix (un pequeño UNIX desarrollado por Andy Tanembaum) para lograr un Unix mínimo, capaz de ejecutar al menos un shell y un compilador. Primero fue la versión 0.02 ya que la 0.01 nunca llego a ser compilada con éxito. Luego Linus anunció en Internet su proyecto de la siguiente manera:

"Si suspiras al recordar aquellos días cuando lo hombres eran hombres y escribían sus propios manejadores (drivers). Si te sientes sin ningún proyecto interesante y te gustaría tener un verdadero sistema operativo que pudieras modificar a placer. Si te resulta frustrante tener sólo Minix. Entonces este artículo es para ti"

De esa forma Linux fue liberado en Internet y la respuesta de los programadores y usuarios de UNIX fue contundente. Pronto todos querían aportar sus conocimientos para que Linux se convirtiera en un sistema operativo estable, robusto y potente. Finalmente llego la primera versión estable del Kernel la versión 1.0. De allí en adelante Linux fue evolucionando a un ritmo vertiginoso hasta convertirse en un fuerte rival de los actuales sistemas operativos.

Como hemos dicho antes, Linux se desarrollo a partir de los sistemas UNIX. Por tal motivo Linux posee las características principales así como la arquitectura de los sistemas UNIX.

A partir de ese momento los sistemas GNU/Linux han evolucionado contínuamente a través de las aportaciones de empresas y de los usuarios de Internet. Al ser código abierto, se han creado muchas distribuciones para personalizarlas a sus necesidades.

Las distribuciones más importantes son fedora, debian, ubuntu (no necesariamente en ese orden). A continuación puedes ver una línea temporal de las diferentes distribuciones GNU/Linux que han ido apareciendo.

Linux embebidos

Una de las ventajas principales de los sistemas GNU/Linux es que aprovecha perefectamente los recursos hardware de cualquier sistema. A continuación, a modo de ejmplo, se pueden ver algunos dipositivos que utilizan GNU/Linux y que sin duda estan revolucionando el mercado:

  • GPS www.tomtom.com


Libro Recomendado

ADMINISTRACIÓN DE SISTEMAS OPERATIVOS. CFGS
Ver fichaVer ficha
Comprar libroComprar