Raúl Norberto Confalonieri

Sitio Web Personal

 

Historia de Unix

Autor: Raúl N. Confalonieri - 2 de Febrero de 2015.

Nacimiento de UNIX

En 1965, la Bell Telephone Laboratories integró, conjuntamente con la General Electric Company y el Massachusetts Institute of Technology, un equipo de trabajo con el fin de desarrollar un nuevo sistema operativo llamado MULTICS (MULTiplexed Information and Computing Service).

Las metas del sistema MULTICS eran:

  • Permitir que un gran número de usuarios tuviese acceso simultáneo a un sistema de computación.

  • Proveer a esos usuarios de una importante potencia computacional y almacenamiento masivo de datos (para la época).

  • Permitir que los usuarios pudieran compartir sus datos con facilidad.

El desarrollo de MULTICS sufrió una serie de retrasos en su desarrollo, en gran parte debido a que estaba escrito en un lenguaje de alto nivel (idea revolucionaria para la época), el PL/I, cuyo compilador se encontraba aún en etapa experimental. Cuando finalmente estuvo lista la versión operativa del mencionado compilador, se vio que el mismo estaba lejos de cubrir las expectativas puestas en él.

En 1969, una versión primitiva de MULTICS llegó a funcionar en una computadora GE 645. Sin embargo, quedó en claro que no alcanzaba las metas para las que se había diseñado, ni las alcanzaría jamás. Este hecho, conjuntamente con el anuncio de GE de retirarse del mercado de producción de computadoras en un futuro muy próximo, hizo que Bell se retirase del proyecto. Esto dejo a los integrantes del mismo en libertad de buscar nuevas posibilidades en el campo de la investigación.

Uno de estos investigadores, Ken Thompson, decidió reescribir (esta vez en assembler), una versión reducida de MULTICS en una minicomputadora DEC PDP-7, con el pretexto de desarrollar un sistema de procesamiento de textos para el departamento de patentes de Bell.

A pesar de los modestos recursos del hardware elegido como soporte, el sistema pergeñado por Thompson funcionó perfectamente, lo que hizo que muchos de sus colegas en el departamento lo secundaran en su proyecto. Uno de ellos, Brian Kernighan, lo bautizó con el sarcástico nombre de UNICS (UNiplexed Information and Computing Service). De alguna manera inexplicable, se cambió el nombre por el de UNIX, que es como se lo conoce desde entonces. La anécdota según la cual el nombre se deriva del término EUNUCHS (pronunciado iunux' y traducido como eunuco', debido a que se trata de una versión castrada de MULTICS), es apócrifa.

La Versión 1 quedó concluida en ese mismo año de 1969.

Evolución del Sistema UNIX

El éxito de UNIX hizo que se incrementara el esfuerzo en su desarrollo. En 1971, Thompson y Ritchie lo trasladaron a un equipo DEC PDP-11, dando origen a la Versión 2.

Posteriormente, Thompson decidió reescribirlo nuevamente en un lenguaje de alto nivel. Eligió uno de su creación, el B (una forma simplificada del BCPL, sucesor a su vez del CPL, el cual, como el PL/I, nunca funcionó adecuadamente). El intento no fue del todo satisfactorio, ya que el B presentaba una serie de defectos, tales como la carencia de estructuras. Por lo tanto, Dennis Ritchie desarrolló un sucesor del B, llamado C, y escribió un excelente compilador para él.

En 1973, Thompson y Ritchie reescribieron el UNIX en C, dando orígen a la Versión 3. Luego de diversos agregados y modificaciones, se llega en 1974 a la Versión 6, que estaba escrita en un 95% en lenguaje C, y sólo el 5% restante en assembler para la interfaz con el hardware.

Difusión del Sistema UNIX

Thomson y Ritchie publicaron en 1974 un trabajo describiendo el sistema operativo UNIX (por el cual recibieron el prestigioso ACM Turing Award). Esta publicación estimuló a muchas universidades a solicitar a Bell una copia de UNIX. En aquellos tiempos, AT&T, dueña de Bell, era un monopolio regulado y tenía prohibido ingresar en el negocio de la computación. Por lo tanto, Bell no puso objeción para otorgar licencias de UNIX a las universidades, a un precio muy modesto.

La combinación PDP-11 + UNIX fue durante años el sistema preferido por los departamentos de informática de la mayoría de las universidades. En parte porque las PDP-11 (en sus modelos 20, 44 y 70) dominaron el mercado de las minicomputadoras durante la década del '70 (fue la primera familia de minicomputadoras de costo accesible y con una excelente documentación de su hardware). En parte porque el UNIX se entregaba con el código fuente completo, el cual permitía que profesores, estudiantes e investigadores lo utilizaran para experimentar.

El estándar de facto fue la Versión 6, así llamada porque fue descrita en la sexta edición del UNIX Programmers Manual. A los pocos años, fue reemplazado por la Versión 7. Una generación completa de estudiantes aprendió con estos sistemas, lo que contribuyó a su difusión al graduarse estos e ingresar en la industria.

Steve Johnson, de Bell, diseñó e implementó un compilador portable de C, el cual podía redirigirse para generar código objeto para casi cualquier procesador. Por años, casi todos los compiladores de C estuvieron basados en el compilador de Johnson, el cual ayudó enormemente a la difusión del sistema UNIX.

Para mediados de la década de los '80, UNIX tenía una amplia difusión en el mercado de las minicomputadoras y estaciones de trabajo de una multitud de fabricantes.

AT&T UNIX

Luego de la división de la AT&T en 1984 debida a las leyes antimonopolio, la compañía se encontró en libertad de establecer una subsidiaria en el mercado informático, lo que hizo inmediatamente. Al poco tiempo lanzó su primer producto comercial UNIX, el System III. Este sistema no tuvo un feliz recibimiento, y fue reemplazado un año mas tarde por el System V (es un misterio que paso con el System IV). Desde entonces, han hecho su aparición las Releases 2, 3 y 4 del AT&T UNIX System V, siendo esta última la que se halla en vigencia (conocida como S5V4).

Berkeley UNIX

Una de las universidades que adquirió el UNIX Versión 6 fue la Universidad de California en Berkeley. Debido a que el código fuente se encontraba disponible, Berkeley lo modificó substancialmente, produciendo una versión mejorada para la PDP-11 llamado 1BSD (First Berkeley Software Distribution), al cual siguió rápidamente la 2BSD, también para la misma máquina. Las versiones 3BSD y 4BSD se implementaron en la VAX de DEC, la sucesora de la PDP-11. Entre las mejoras proporcionadas por estas versiones, figuraban memoria virtual, paginación, agilización del sistema de archivos y utilización de nombres de archivos mayores de 14 caracteres.

Asimismo, debido a los trabajos de Berkeley en conjunto con la DARPA (Defense Advanced Research Proyects Agency) del Departamento de la Defensa Norteamericano, nació el TCP/IP, el protocolo de redes de BSD, el que se convirtió en el estándar de facto para la comunicación entre computadoras.

El modelo de interfaz con TCP/IP, el socket, es actualmente el modelo utilizado para implementar la comunicación en redes en la mayoría de los sistemas operativos actuales (incluido MS Windows).

Berkeley añadió también una cantidad substancial de nuevos programas utilitarios, incluyendo un nuevo editor (vi), un nuevo shell (csh), compiladores de Pascal y Lisp, etc.

Estas mejoras provocaron que Sun Microsystems, DEC y otros fabricantes basaran su versión de UNIX en la implementación de Berkeley en lugar del UNIX oficial (Versión V).

Intentos de Estandarización de UNIX

Para fines de los '80, existían dos versiones diferentes y altamente incompatibles de UNIX: 4.3BSD y System V Release 3. Adicionalmente, cada fabricante agregaba sus propias mejoras fuera del estándar.

Esta división en el mundo de UNIX fue el motivo que impidió el suceso comercial de UNIX, ya que era imposible para los diseñadores de software producir programas con la seguridad de que pudieran ejecutarse en cualquier sistema UNIX (que fue lo que hizo al MS-DOS tan exitoso).

El primer intento serio de reencauzar las dos grandes vertientes de UNIX se inició bajo los auspicios del IEEE, una organización de enorme prestigio y, además, neutral. Cientos de individuos provenientes de los ámbitos académico, industrial y gubernamental tomaron parte en el proyecto, el que se denominó POSIX (Portable Operating System / unIX).

Desafortunadamente, sucedió una cosa curiosa con posterioridad al acuerdo de estandarización. Una vez que la lucha entre BSD vs. System V se había solucionado, comenzó una nueva. Un grupo de fabricantes liderados por IBM, DEC, Hewlett-Packard y muchos otros, opinaba que no era conveniente que AT&T tuviera control sobre el resto de UNIX, por lo que formaron un consorcio llamado OSF (Open Software Foundation), para producir un sistema que cumpliera con los estándares de IEEE, pero también con un importante número de características adicionales como un sistema de ventanas (X11), un interfaz gráfico de usuario (MOTIF), computación distribuida (DCE - Distributed Computing Environment), administración distribuida (DME - Distributed Management Environment) y muchas más.

La reacción de AT&T fue crear su propio consorcio UI (Unix International), exactamente con los mismos fines. La versión de UNIX de UI es el System V.

El resultado final es que ahora hay dos poderosos grupos industriales cada uno de los cuales ofrece su propia versión de UNIX. Adicionalmente, cada compañia tiene su propia variante (IBM AIX, Hewlett Packard HP-UX, Sun Solaris, SCO UnixWare, SGI IRIX, DEC Ultrix, etc.). Más aún, todos estos sistemas continúan evolucionando en direcciones distintas. de modo tal que los usuarios no se encuentran más cerca de un estándar que al comienzo.

Copyright 2015 by Raúl norberto Confalonieri