02 octubre 2010


HISTORIA:
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.