Muchos usuarios de sistemas basados en Unix ignoran la colorida historia que se esconde detrás de su propio sistema operativo. Las distribuciones actuales de Linux, Mac OS y los sistemas operativos de muchos dispositivos móviles se originaron de los deseos de dos programadores de AT&T, que querían jugar al Space Travel (Viaje espacial) sin gastarse 75 dólares por partida. Hoy te contamos cómo Ken Thompson, Dennis Ritchie y Rudd Canaday iniciaron el desarrollo de un sistema operativo que 40 años más tarde goza de muy buena salud.
A pesar de que muchos usuarios han descubierto las bondades de Unix gracias a las más recientes distribuciones de Linux, como Ubuntu, lo cierto es que este sistema operativo tiene casi cuatro décadas de desarrollo. La historia de Unix comienza a finales de los años 1960, cuando el Instituto Tecnológico de Massachusetts (MIT), los Laboratorios Bell de AT&T y la General Electric trabajaban en la creación de un sistema operativo de carácter experimental llamado Multics (por Multiplexed Information and Computing Service). Multics corría en un “mainframe” (una clase de ordenadores muy comunes en la época que constaba de una unidad central que “atendía” a varias terminales “bobas”) de General Electric modelo GE-645.
Estas empresas buscaban desarrollar “un gran sistema operativo interactivo” que incorporase sólidas políticas de seguridad. Hasta ese momento, la seguridad de los datos la proporcionaba la escasa disponibilidad de los ordenadores, de los que había una pequeña cantidad y solo personal autorizado podía tener acceso a ellos. Pero la baja de precios y la popularización de los sistemas informáticos hacían indispensable integrar en el mismo corazón del SO las herramientas destinadas a proteger la información. El proyecto fue relativamente exitoso, e incluso existieron algunas “versiones para producción” de Multics, pero su pobre rendimiento hizo que AT&T decidiera desvincularse del proyecto.
Ken Thompson, uno de los programadores del equipo de los laboratorios Bell de AT&T, siguió escribiendo software para el ordenador GE-635. Entre otros programas, escribió un juego llamado Space Travel (Viaje espacial). Sin embargo, descubrió que el juego era lento en la máquina de General Electric y resultaba realmente caro, algo así como 75 dólares de EE.UU. por cada partida. Así fue como, junto a su amigo Dennis Ritchie, escribió nuevamente el programa, pero esta vez utilizando el lenguaje ensamblador de un ordenador más popular (y barato) llamado DEC PDP-7.
Thompson y Ritchie descubrieron que trabajar juntos era divertido. En 1969, y siempre dentro de los laboratorios Bell, armaron un equipo programadores -entre los que se encontraba Rudd Canaday– con la idea de desarrollar un sistema operativos que cumpliese con las premisas originales del proyecto Multics, pero que corriese en un DEC PDP-7. Comenzaron a trabajar en el sistema de archivos y en el núcleo del sistema operativo, que sería capaz de ejecutar procesos en simultáneo (multitarea).
Además, crearon un pequeño intérprete de órdenes (o de comandos) y un reducido grupo de programas accesorios. El proyecto fue bautizado UNICS (por Uniplexed Information and Computing System) y, en principio, solo podía “atender” a dos usuarios a la vez. El mismo Kernighan fue el que eligió el nombre del nuevo sistema operativo, pero culpa de un juego de palabras UNICS se convertía un sistema Multics castrado (pues “eunuchs”, en inglés, es un homófono de UNICS). Entonces, se decidió cambiarle el nombre a UNIX, denominación que se mantiene hasta la actualidad.
UNIX rápidamente llamó la atención de los niveles gerenciales de los laboratorios Bell, que de pronto tenían entre sus manos un sólido sistema operativo. La empresa no había gastado un solo dólar en el desarrollo de UNIX, pero cuando el Grupo de Investigación en Ciencias de la Computación decidió utilizarlo en una máquina más potente que el PDP-7, Thompson y Ritchie consiguieron el apoyo económico de AT&T. Comenzaron a reescribir el software para que funcionase en un ordenador PDP-11/20 y, por primera vez, en 1970, UNIX corrió en esa plataforma.
Los programadores habían incluido entre las herramientas del paquete un programa capaz de dar formato a textos -llamado runoff– y un primitivo editor de texto. Todo el trabajo se realizó utilizando el lenguaje ensamblador de la PDP-11/20, y los laboratorios Bell utilizaron este primitivo “sistema de procesamiento de texto” para procesar las solicitudes de patentes que recibían. En poco tiempo runoff recibió importantes mejoras y su nombre cambió a troff, considerado el primer programa de edición electrónica capaz de realizar composición tipográfica. El 3 de noviembre de 1971, Thomson y Ritchie publicaron el primer manual de programación de UNIX, el “UNIX Programmer’s Manual”
En 1972, Ken Thompson y Dennis Ritchie crearon el lenguaje de programación C. Si querían que UNIX fuese portado a otras plataformas, necesitaban un lenguaje de alto nivel pero que se mantuviese cerca del ensamblador. Su idea era que el código generado por el compilador de C fuese lo suficientemente rápido como para utilizarlo en la creación de sistemas operativos. Así, en 1972 se tomó la decisión de escribir nuevamente UNIX, pero esta vez en el lenguaje de programación C. Esto permitiría que fuese modificado para funcionar en otros ordenadores y que diferentes versiones pudiesen ser desarrolladas por otros programadores.
AT&T puso UNIX a disposición de las universidades, empresas privadas y del gobierno de los Estados Unidos, a través de licencias. El Departamento de Computación de la Universidad de California, con sede en Berkeley recibió una de estas licencias, y en 1975 desarrolló y publicó su propio “clon” de UNIX, conocido como Berkeley Software Distribution (BSD), que más tarde se convertiría en un fuerte competidor del UNIX de AT&T. Para tener una idea de los alcances de UNIX en esa época, basta con una frase de junio de 1972 atribuida a Dennis Ritchie y Ken Thompson: “…el número de instalaciones Unix ha alcanzado el número de 10, y esperamos que aumente...”
AT&T creó una división comercial, denominada Unix Systems Laboratories, para que se encargase de la explotación comercial del sistema operativo. La aparición de nuevos ordenadores y el impulso recibido de parte de nuevos programadores -que utilizaban C para introducir mejoras- hicieron que fuesen liberadas diferentes versiones de UNIX. En 1975, el SO alcanzó la versión 6, que incluía “pipes” (tuberías). Esto permitió dar una orientación modular al proyecto, consiguiendo aumentar aún más la velocidad de desarrollo. Se estima que en 1978, unos 600 ordenadores alrededor del mundo ya corrían alguna versión de UNIX. La versión 7, última basada en el UNIX original que tuvo una gran distribución, entró en circulación en 1979 y sirvió de base para la creación de Plan 9, un nuevo sistema operativo portable y distribuido, diseñado por los Laboratorios Bell para ser el sucesor de UNIX en tareas de investigación.
La empresa AT&T desarrolló y vendió UNIX System III (basado en la versión 7) a partir de 1981.La proliferación de versiones daba lugar a confusiones, así que la empresa decidió combinar todos los desarrollos propios con los de distintas universidades y empresas en 1983, dando origen al Unix System V Release 1. Esta versión introdujo características como el editor Vi y la biblioteca curses, desarrolladas por Berkeley Software Distribution. La división Unix Systems Laboratories de AT&T fue adquirida por Novell dos años más tarde, y se hizo cargo de la demanda por infracción de los derechos de copyright, revelación de secretos y violación de marca de mercado existente entre Unix Systems Laboratories y BSD. Los accionistas de Novell tuvieron que pasar el mal trago de descubrir grandes porciones del código de BSD habían sido copiadas ilegalmente en UNIX System V, y fueron contra demandados. Como la propiedad intelectual de Novell se reducía a unos pocos ficheros fuente, todo acabó en un acuerdo extrajudicial cuyos términos permanecieron bajo secreto a petición de Novell.
De forma paralela al UNIX “oficial”, desde mediados de los ochenta, Richard Stallman, del Instituto Tecnológico de Massachussets, trabajaba en lo que más tarde se conocería como “software libre”. Stallman creo un sistema similar a UNIX con intenciones de cederlo gratuitamente, con el nombre de GNU (Gnu’s Not Unix. GNU no es Unix). En esos meses, un joven estudiante de ciencias de la computación finlandés llamado Linus Torvalds comenzaba el desarrollo del núcleo de un sistema operativo para ordenadores basados en la arquitectura “Intel x86”, que reproducía muchas de las funciones existentes en UNIX. El embrionario sistema operativo fue lanzado en forma de código abierto en 1991, con el nombre de Linux. El año siguiente ese núcleo Linux fue combinado con los programas desarrollados por el Proyecto GNU, dando como resultado el Sistema Operativo GNU/Linux.
El resto es historia: lo que comenzó casi como un pasatiempo de dos geniales programadores se convirtió en un potente, seguro y flexible sistema operativos, capaz de funcionar en un teléfono móvil, un ordenador personal o un cluster de ordenadores. Incluso el aplaudido sistema operativo Mac OS es UNIX completo y aprobado por The Open Group. Se diferencia en que posee una interfaz gráfica propietaria (Aqua), desarrollada en Objective-C en lugar de C o C++. A pesar de tener casi 40 años sobre sus espaldas, UNIX está más vigente que nunca.