Historia del UNIX

El número de instalaciones de UNIX ha crecido a 10, con tendencia al aumento…” Dennis Rictchie y Ken Thompson, junio de 1972 “…el resultado fue un sistema llamado UNICS (Uniplexed Information and Computing Service)… nadie recuerda de quien fue la idea de cambiar las siglas a UNIX…” Tomado de “A brief look at the eraly History” Después de tres décadas de haber escapado de los laboratorios Bell, el UNIX sigue siendo uno de los SO más potentes, versátiles y flexibles en el mundo de la computación. Su popularidad se debe a muchos factores incluidas su portabilidad y habilidad de correr eficientemente en una inmensa variedad de máquinas computadoras. Descrito frecuentemente como un sistema “simple, potente y elegante” el UNIX es hoy el corazón que late en el seno de millones de aplicaciones de telefonía fija y móvil, de millones de servidores en universidades, centros académicos, grandes, medianas y pequeñas empresas, el SO cuyo desarrollo viene de la mano del de Internet y que alberga a millones de servidores y aplicaciones de la red de redes. Sin UNIX, no cabe duda, el mundo de la informática hubiera sido otro.

Del MULTICS al UNICS El origen del UNIX se remonta a los finales del año 1969, al renacer de las cenizas de un fracasado intento en los Laboratorios Bell de producir un SO multitarea. En esos tiempos remotos los sistemas eran desarrollados para computadoras específicas, por lo que eran necesarios, incluso, intérpretes en una misma compañía para trabajar programas iguales de una computadora a otra. MULTICS fue el resultado del esfuerzo conjunto de un grupo de investigadores de los Laboratorios Bell y la General Electrics, que si bien fue funcional, económicamente era inviable. “A pesar de que MULTICS no podía manejar muchos usuarios simultáneos, al menos nos era de utilidad a nosotros, aunque a costos exorbitantes”, explicaría luego Dennis Ritchie, uno de sus fundadores. La frustración se llenó de esperanza cuando un grupo escindido del proyecto MULTICS no se dio por vencido. En ese mismo año, el grupo formado por Ken Thompson, Dennis Ritchie, Doug McIlroy y J.F Osanna continuó en la búsqueda del santo grial. Los primeros intentos fueron de nuevo un fracaso: propuestas excesivamente complicadas, soluciones muy caras y sin una línea coherente de trabajo, hicieron que los directivos de Bell rechazaran una yotra vez los trabajos presentados por el grupo. Anótese adicionalmente que el costo de una computadora para la época era no menor de 60 000 USD.

Como todo mito que rodea a un producto genial, el UNIX tiene el suyo propio. En la primavera de 1969, Thompson, Ritchie y Rudd Canaday, cofundador de Sun-Microsystems, intercambiaban y filosofaban sobre cómo debiera ser un SO de una computadora. Después de una larga tormenta de ideas, Canaday tomó el teléfono y llamó a la Bell para dictar las notas que había tomado. Acrónimos como “inode”y “eyen” picoteados entre sus notas, fueron la base del UNIX y el primer documento de trabajo, a decir de Thompsom, para desarrollar el sistema. Un Sistema Operativo para una PDP-7 Entre canto y canto, Thompson en su tiempo libre desarrolló un pequeño juego llamado “Viaje Espacial”, el cual simulaba el movimiento de los planetas en el sistema solar y de una nave manejada en ese escenario intergaláctico por comandos de consola. El juego fue escrito para MULTICS y luego pasado por FORTRAN todo ello corriendo sobre una computadora GE 635. “El costo de 75 USD de tiempo de máquina de la 635 y la mala calidad de la consola, hicieron que Thompson buscar portar el juego a una poco usada PDP-7 (Programmed Data Processor) de DEC con un terminal excelente.

El juego, escrito en ensamblador, era portado usando cinta de papel de la GE 635 a la PDP-7. Este mecanismo preparó el escenario para que la PDP-7 sirviera de hospedera al sistema de ficheros cuyas notas habían sido escritas en aquella primavera del 69. En el verano de ese mismo año, Thompson y Ritchie empezaron a implementar el sistema operativo, llamado “sistema de tiza” ya que éste tomaba forma luego de numerosas sesiones de pizarra entre ambos investigadores. “Destiné una semana de trabajo para cada módulo: el sistema operativo, el editor, el shell y el ensamblador”, diría Thompsom. Primero los requerimientos del sistema, en particular los procesos, luego un pequeño grupo de herramientas del sistema para copiar, imprimir, borrar, etc. Trabajado sobre GECOS el sistema de la GE635 y luego transportado a la PDP7 el nuevo SO estaba casi listo. Una vez completado el ensamblador, el sistema podía soportarse a sí mismo. Había nacido el UNIX. Las primeras aplicaciones para UNIX Pronto se hizo evidente que la PDP-7 no ofrecía poder de cómputo suficiente y quedaría obsoleta en breve. El grupo propuso a los Laboratorios adquirir una PDP-11. Con una idea más clara y un embrión por desarrollar, así como el apoyo de Doug McIlroy y Lee MacMahom, jefes de departamentos en Bell. Esta vez los directivos aceptaron. Durante la espera del arribo del nuevo equipo, el trabajo sobre la PDP-7 no se detuvo, demostrando con creces la utilidad del nuevo UNIX.

Así las primeras aplicaciones, un embrollo de los Laboratorios Bell con el Departamento de Patentes no se hizo esperar. Después de largas y trabajosas sesiones, el resultado fue milagroso: no sólo el Departamento de Patentes adoptó el UNIX, sino que la credibilidad del grupo creció y se hizo notable el apoyo e interés del Laboratorio en traer la PDP-11. Luego de estar esta primera versión escrita en ensamblador, la siguiente tarea de Thompson fue escribirla en un lenguaje de alto nivel. En 1971 intenta trabajar con FORTRAN en la vieja PDP-7, pero se rindió el mismo primer día. Después escribió un lenguaje muy sencillo que llamó B, que aunque funcional tendría que enfrentar algunos problemas de concepción. Ritchie transformó el B para la PDP-11, al introducirle algunas mejoras, lo denominó NB e hizo un compilador para él. Así surgió el lenguaje C, que si bien es cierto pertenece a otra historia, constituyó el lenguaje de alto nivel en el que se reescribió el UNIX por primera vez en el año 1972.

Concatenando procesos. El otro paso importante, y que más que una solución puntual constituyó toda una filosofía en el diseño del software, fue llevar al nuevo SO el concepto de la concatenación de procesos, el llamado pipes concept. La habilidad de encadenar en una misma línea de comandos varios procesos fue una innovación que tiene su origen en una idea de McIlroy, cuyas conferencias sobre el uso de macros y flujos de datos para producir un determinado resultado ya eran conocidas. Mientras Thompson y Ritchie pasaban horas de su tiempo frente a una pizarra diseñando el sistema de ficheros, McIlroy llevaba otro tanto tratando de interconectar entre sí los procesos y construir una sintaxis en el lenguaje para ello. “…es muy fácil decir who into cat into grep, pero está todo el asunto este de los parámetros laterales que estos comandos tienen…” acota McIlroy. Aunque sin concretarla, la idea estuvo presente a lo largo del período del 70 al 72. Una noche, luego de presentarle propuesta tras propuesta a Thompson éste se llevó un prototipo a casa y al día siguiente estaba listo. “Ken puso la concatenación de comandos en el UNIX, las notaciones en el shell del usuario, todo ello en una sola noche”, diría luego McIlroy maravillado. Saltando los muros de Bell Labs. No fue hasta tiempo después que el UNIX saltaría los muros de la Bell para insertarse en el mundo. Durante un semestre sabático para Ken Thompson entre 1976 y 1977, éste funge como profesor invitado en el Departamento de Ciencias de la Computación de la Universidad californiana de Berkeley. Lo que por supuesto impartió fue precisamente el sistema UNIX, cuya versión 6 desarrolló durante ese tiempo. Enseguida, el mismo fue recibido con mucho éxito por estudiantes y estudiados y se fue regando por toda la comunidad académica. Una vez de vuelta a los Laboratorios la versión 6 ya había sido enriquecida en la propia universidad, lo que dio origen a lo que luego se conoció como Berkeley Software Distribution (BSD) versión 4.2, comprada por muchas otras universidades. La universidad de Berkeley jugó un papel importante en el desarrollo y extensión del UNIX, cuyas licencias a importantes instituciones académicas, de negocios y militares como el DARPA propiciaron un acelerado trabajo en protocolos como el TCP/IP y el nacimiento de Internet.

La entrada al mundo comercial no fue más que una evolución lógica, luego del paso de los primeros egresados del mundo universitario criados bajo el manto del UNIX, al sector empresarial. Lo que hizo del SO un programa popular fue su habilidad de multitarea, señoreando por aquel entonces el mundo de los mini y los mainframes, su portabilidad por medio de los distintos fabricantes de computadoras y su capacidad de correo electrónico. Una vez llegado a este punto todo estaba listo para la aparición de las innumerables versiones del sistema, las batallas legales para las licencias, la producción de estaciones de trabajo para UNIX por parte de IBM, Sun, NCR y HP y con ellas nuevas versiones comerciales, y así sucesivamente en espiral ascendente. Mucho del progreso de la computación en el último cuarto del siglo pasado está íntimamente ligado a la influencia que el UNIX tuvo en la industria de la computación. El mismo estaba embebido de ideas visionarias, todo un llamado a la abertura y generalidad entre sistemas, toda una fuerza, que aún mueve el desarrollo de la informática moderna. Como diría uno de sus creadores,”…a 30 años de su nacimiento, el UNIX sigue siendo un gran fenómeno”.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *