ATRAS
SIGUIENTE
INDICE

2. UNIX

Historia del sistema operativo UNIX

Para poder comprender el éxito actual del software libre, lo primero que se debe hacer es repasar la historia. Sin dudas, uno de los hitos clave es el nacimiento del Sistema Operativo Unix.

Creado en 1969 en los laboratorios Bell de AT&T por Ken Thompson, UNIX nació como un experimento de la empresa para ayudar a controlar la nueva generación de redes telefónicas, que estaban convirtiéndose en computadoras especializadas.

Bell ya había participado junto con el M.I.T. y General Electric en el desarrollo del sistema MULTICS3. Thompson y sus colegas admiraban las capacidades de MULTICS, pero consideraban que era demasiado complicado, por lo que se dieron a la tarea de demostrar que era posible construir un sistema operativo que ofreciera un ambiente de trabajo cómodo y que fuera mucho más sencillo.

La primera versión de UNIX, llamada UNICS4 se ejecutaba en una computadora DEC PDP-7. Este primer UNIX estaba escrito en un lenguaje llamado B.

El trabajo de Thompson impresionó a sus colegas de los laboratorios Bell de tal forma que pronto se le unió Dennis Ritchie y más tarde todo el departamento. Lo primero que hicieron fue portar el UNIX de la obsoleta PDP-7 a las modernas PDP-11/20, PDP-11/45 y PDP-11/70.

Ritchie, diseñó un sucesor de B, llamado C y escribió un compilador con el objeto de ofrecer un lenguaje que pudiera usarse para escribir una versión portable del sistema. En 1973 Ritchie y Thompson reescribieron UNIX en C.

En noviembre del '73 Ritchie y Thompson presentaron el primer artículo sobre UNIX, en el simposio sobre los principios de los sistemas operativos en la Universidad de Purdue. Este artículo estimuló a muchas universidades a pedir a los laboratorios Bell una copia de UNIX.

Puesto que la compañía dueña de los laboratorios Bell, AT&T, era entonces un monopolio regulado y no podía entrar al negocio de la computación, no tuvo objeción en otorgar licencias de uso de UNIX a las universidades a un bajo costo. Algo muy importante es que AT&T también distribuyó el código fuente de UNIX, fomentando así el desarrollo adicional y las innovaciones.

Se organizaban reuniones científicas en torno de UNIX, con distinguidos conferencistas que indicaban el descubrimiento de ciertos errores y la forma de arreglarlos. Como resultado de esta actividad, las nuevas ideas y mejoras al sistema se difundieron con rapidez. La versión que se convirtió en el primer estándar del mundo académico fue la Versión 6.

UNIX de Berkley

Uno de los asistentes al simposio de noviembre del '73 fue el profesor Fabry de la Universidad de California, Berkley. El profesor quedó inmediatamente interesado en obtener una copia para experimentar en los laboratorios de Berkley.

En enero del '74 se instaló Unix en una computadora PDP-11/455. Los primeros problemas que surgieron con el sistema fueron corregidos de manera remota por el mismísimo Ken Thompson. Este fue el comienzo de la relación de cooperación entre Berkley y los laboratorios Bell.

En los comienzos de 1977, Bill Joy organizó la `Berkley Software Distribution'(BSD). Esta primera distribución incluía el sistema Pascal y un editor de textos llamado 'ED'. Para mediados del '78 salió la segunda versión(2BSD). La misma incluía grandes mejoras al Pascal, fruto de la colaboración de la comunidad usuaria del mismo. También contaba con un nuevo editor de textos, el ahora famoso 'vi'.

La última versión de UNIX, de los laboratorios Bell fue 32/V6. De ahí en más el desarrollo de UNIX pasó a USL7. Este grupo lanzó primero el System III y luego el System V, pero los objetivos perseguidos eran netamente comerciales. Al comercializarse UNIX, el personal de los laboratorios Bell no pudo continuar encargándose de manejar las investigaciones que estaban llevando a cabo en las distintas universidades.

De esta manera y dado que la comunidad investigadora seguía modificando el sistema UNIX, se hacía notoria la necesidad de producir nuevas versiones a partir de lo investigado. Fue así que Berkley tomó el rol antes ostentado por los laboratorios Bell, dado que fue uno de los primeros participantes en la evolución del UNIX y por su vasta experiencia en la creación de herramientas basadas en UNIX.

Mientras tanto en la DARPA8, se estaba buscando una manera de homogeneizar las comunicaciones entre las computadoras que formaban la red de centros de investigaciones. Decidieron que la mejor solución sería unificar a nivel de sistema operativo. Luego de varias discusiones, UNIX fue seleccionado por su probada portabilidad.

A fines de 1979, Berkley ofreció a la DARPA la creación de una versión mejorada de la 3BSD para la comunidad DARPA. Gracias a la buena reputación obtenida por la distribución 3BSD, Berkley obtuvo en abril del '80 un contrato con DARPA por 18 meses. Dada la magnitud del proyecto se creó una organización, la CSRG9. Con el Apoyo de la DARPA, la CSRG comenzó a crecer y las versiones de BSD comenzaron a sumar adeptos.

La distribución 4BSD vió la luz en octubre de 1980. Para junio del '81 se lanzó la 4.1BSD. La agencia DARPA estaba satisfecha con los resultados, por lo que renovó el contrato con Berkley por dos años más.

En agosto de 1983 se lanzó la 4.3BSD que tuvo mayor popularidad que el System V de AT&T(y la USL). La principal razón era que el System V no poseía las herramientas para redes, ni el nuevo sistema de archivos diseñado por Berkley (FFS10). Cuando éstos cambios se incorporaron al System V (gracias a la disponibilidad del código fuente de Berkley), el System V recuperó el terreno perdido. En esa época BSD se encontraba a la vanguardia de los sistemas tipo UNIX.

Hasta la versión 4.3BSD, todos los usuarios debían obtener primero una licencia para el código fuente de AT&T. Esto se debía a que los sistemas BSD nunca fueron lanzados por Berkley en su forma binaria/ejecutable. Las distribuciones siempre contenían el código fuente completo de cada parte del sistema. La historia de los sistemas UNIX y del sistema BSD en particular mostró el poder de que los usuarios dispongan del código fuente. En vez de utilizar el sistema de forma pasiva, los usuarios trabajan activamente corrigiendo errores, mejorando el desempeño, la funcionalidad y eventualmente incorporando nuevas características.

Los incrementos constante en los costos de las licencias para el código fuente de AT&T se transformaron en prohibitivos. Los interesados en crear aplicaciones para trabajo en redes basándose en el protocolo TCP creado por Berkley, reclamaron a la universidad que los lanzara por separado del sistema operativo completo y que se empleara una licencia que no requiriera pagar los derechos de AT&T.

El código originado por Berkley para redes y las aplicaciones de soporte fueron lanzadas en junio de 1989 bajo el nombre de `Networking Release 1`. Este fue el primer código libremente distribuido lanzado por Berkley.

Los términos de la licencia eran liberales11. Cualquiera podía distribuir el código (modificado o no) ya sea de forma binaria o fuente sin pagar regalías a Berkley. Los únicos requerimientos eran que los avisos de copyright del código fuente debían dejarse intactos. Además si algún producto incorporaba el código fuente de Berkley el mismo debía indicar en la documentación que el producto contiene código de la Universidad de Berkley y sus contribuyentes.

En junio de 1991, el grupo lanzó el 'Networking Release 2'. Esta versión incluía casi por completo una versión operativa de UNIX. La tarea de desarrollo del Networking Release 2 se llevó a cabo en 18 meses y participaron más de 400 personas. Keith Bostic fue quien se encargó de coordinar a la gente para producir código fuente nuevo que pudiera reemplazar los fragmentos pertenecientes a AT&T. Bostic le entregaba a los voluntarios la descripción publicada de la aplicación o la parte de la documentación de la biblioteca y les pedía que lo implementaran nuevamente sin utilizar el código de AT&T. Esta fue la forma dentro del marco de la ley con la que se dió vida a este proyecto.

Como fue expresado anteriormente, Networking Release 2 era casi una versión completa de UNIX. Lo que faltaba para transformarlo en un sistema completamente funcional eran seis archivos. Networking Release 2 fue lanzado sin estos seis archivos pero seis meses más tarde (enero del '92) ya estaban listos.

Este hueco fue tapado por Bill Jolitz, quien lanzó un sistema booteable para la arquitectura 386 al cual bautizó '386BSD'. La distribución de este sistema fue a través de Internet. Unos meses después del lanzamiento, Jolitz no pudo continuar encargándose del proyecto. Entonces algunos usuarios crearon el grupo NetBSD para agrupar los esfuerzos colectivos, mantener y mejorar el sistema. El grupo NetBSD eligió enfocar sus objetivos al soporte de la mayor cantidad de plataformas posibles. Otro objetivo de importancia dentro del proyecto es enfatizar el diseño correcto y la generación de código fuente bien escrito. Un ejemplo es la implementación de una infraestructura de bus independiente de la arquitectura de la máquina. Esto posibilita que un único controlador de dispositivo, se pueda compartir en diferentes tipos de bus (PCI, ISA, etc) y también en diferentes plataformas. Esto contrasta con el enfoque tradicional de escribir y mantener diferentes versiones del controlador. NetBSD provee lanzamientos formales para 21 plataformas distintas.

El grupo FreeBSD se formó unos meses después que el grupo NetBSD. Su objetivo era soportar principalmente la arquitectura de la PC. Además apuntaban a atrapar un grupo de usuarios con menor o nulos conocimientos técnicos. Crearon sistemas de instalación elaborados y comenzaron a vender el sistema en CD-Roms de bajo costo. FreeBSD posee el mayor número de usuarios de todos los sistemas derivados del Networking Release 2.

La otra bifurcación dentro de las distribuciones se produjo en 1995 cuando Theo de Raadt (uno de los 8 socios fundadores de NetBSD) fue echado12 del grupo. Las metas de esta distribución son enfatizar la corrección, seguridad, estandarización y portabilidad. En definitiva, quieren convertirse en el sistema operativo más seguro del mercado.

El Juicio

Además de los grupos organizados para distribuir libremente sistemas creados a partir del Networking Release 2, se creó la compañía BSDI (Inc) para desarrollar y distribuir una versión del código fuente mantenida comercialmente. De la misma manera que los otros grupos, lo primero que hicieron fue desarrollar los 6 archivos faltantes a la distribución 386BSD. BSDI comenzó a vender su producto (que incluía codigo fuente y binarios), en enero de 1992.

Esto provocó una reacción por parte de USL, lo que derivó en una demanda judicial contra BSDI y la Universidad de California, alegando que sus productos contenían código fuente propiedad de la USL.

La justicia decretó que mientras perduraban las acciones judiciales ninguna distribución basada en Networking Release 2 podía ser comercializada.

La causa se prolongó en el tiempo y recién llegó a su fin en enero de 1994. El resultado fue que 3 archivos debían quitarse de la distribución Networking Release 2 (que contenía aproximadamente 18000 archivos), y algunos cambios menores debían efectuarse a otros archivos. La universidad accedió a agregar copyrights de la USL a 70 archivos, aunque los mismos continuaron distribuyéndose libremente.

Con la finalización del juicio, se lanzó la 4.4BSD Lite en junio de 1994. Los arreglos del juicio estipularon que USL no demandaría a ninguna organización que use 4.4 BSD Lite como base para su sistema. De esta manera, todos los grupos que realizaban distribuciones basadas en el código BSD (NetBSD, FreeBSD, BSDI), tuvieron que empezar nuevamente a partir del código base del 4.4 BSD Lite y luego migrar todos los cambios y mejoras propios a este nuevo código base.

Línea de Tiempo

1991

1992

1993

1994

1995

...

2002

Networking Release /2

386BSD

FreeBSD







NetBSD








4.4 BSD Lite

FreeBSD







NetBSD







OpenBSD






3MULTICS: (Multiplexed Information & Computing Service). Servicio de información y cómputo con Multiplexión. Fue un sistema de tiempo compartido, grande y de alta capacidad, que incluía varias ideas novedosas en el campo del diseño de sistemas operativos. El proyecto fracasó en parte por ser demasiado ambicioso para su época.

4UNICS: Sistema de Información y cómputo con Uniplexión. El nombre implica un juego de palabras con eunucos, para indicar que era un MULTICS castrado. Más adelante se lo cambió por UNIX.

5DEC PDP: Digital Equipment Corporation. Los modelos 11/45 y 11/70 dominaron el mundo de las minicomputadoras durante gran parte de la década del '70.

632/V: Versión de UNIX para la arquitectura VAX.

7USL: Laboratorios del Sistema UNIX. Subsidiaria de AT&T.

8DARPA:: Agencia de proyectos avanzado de investigación de defensa.

9CSRG: Grupo de investigación en sistemas de computación de Berkley.

10FFS: Sistema de archivos rápido de Berkley.

11En este momento nace la Licencia BSD. La misma será analizada en la sección 4.

12Lo que realmente sucedió fue que le quitaron los permisos para escribir en el árbol de código de los desarrolladores.


ATRAS
SIGUIENTE
INDICE