Conecta con nosotros

A Fondo

UNIX cumple 50 años: desde un fracaso a gobernar todos los smartphones

Publicado

el

UNIX cumple 50 años

UNIX es uno de los sistemas operativos más importantes de la historia. Acaba de cumplir sus primeros 50 años de vida y aunque su uso ha descendido en los últimos años en servidores o supercomputadoras, su importancia en sistemas y aplicaciones está fuera de toda duda y es la base que alimenta múltiples derivados, incluyendo todo lo que llega de Linux y los centenares de millones de smartphones con Android e iOS.  Ars Technica le ha dedicado un excelente repaso a sus orígenes y ello nos da pie a homenajear un desarrollo que forma parte de la historia de la computación,  seguramente, el sistema operativo más influyente jamás escrito.

UNIX nació hace 50 años del fracaso de un ambicioso proyecto que involucraba a titanes de la época como Bell Labs, General Electric y MIT. Creado por unos pocos programadores en Bell Labs, su historia comienza con una reunión en el último piso de un anexo de la sede de la compañía en Murray Hill, Nueva Jersey. Era un lunes brillante y frío, el último día de marzo de 1969, y el departamento de ciencias de la computación recibía invitados distinguidos: Bill Baker, vicepresidente de Bell Labs, y Ed David, director de investigación. 

La situación era delicada. Baker estaba a punto de eliminar del mapa a Multics, uno de los primeros sistemas operativos de tiempo compartido. Concebido como un producto comercial por General Electric y en desarrollo desde 1964 tenía grandes objetivos. Hay que recordar que a principios de la década de 1960 los programas se ejecutaban uno cada vez, uno tras otro. Un investigador de Bell Labs escribía un programa, lo convertía a cualquier forma de entrada que aceptara las computadoras de entonces y lo dejaba en el centro de computadoras. Un operador ponía en cola el programa, lo ejecutaba y luego entregaba los resultados impresos y el programa original al investigador.

Si había un error en el código y después de la molestia de imprimir tarjetas perforadas, llevarlas al centro de cómputo y luego esperar los resultados, el resultado era «recompensado» con una impresión que decía algo así como «ERROR DE SINTAXIS». ¡Quéjate tú de las facilidades de la programación actual! A medida que los programas se volvieron más complicados, este método de depuración de código se volvió aún más frustrante de lo que ya era.

Por tanto, hubo un interés generalizado en compartir el tiempo, lo que permitiría a varios investigadores ejecutar programas en el mainframe al mismo tiempo, obteniendo resultados de inmediato en sus terminales remotas. Con el tiempo compartido, los programas no se imprimían en tarjetas perforadas, se escribían y almacenaban en el mainframe. En teoría, los investigadores podrían escribir, editar y ejecutar sus programas sobre la marcha y sin salir de sus oficinas.

UNIX cumple 50 años

Multics fue concebido con ese objetivo en mente, promovido como un proyecto que convertiría la potencia informática en algo tan fácil de acceder como la electricidad o el servicio telefónico, en colaboración de algunos gigantes de la época. MIT, donde ya se había desarrollado un sistema primitivo de tiempo compartido llamado CTSS y estaba en uso, proporcionaría las especificaciones. General Electrics proporcionaría el hardware y junto a Bell Labs se dividirían las tareas de programación.

El resultado es el conocido: No pudieron cumplir los objetivos. El proyecto había comenzando en 1964, su desarrollo estaba atrasado dos años porque debía entregarse en 1967, había sobrepasado con creces el presupuesto inicial y era poco o nada funcional para lo que pretendía. 

De Multics a UNIX

Volviendo a esa reunión del último día de marzo de 1969, Baker pronunció el discurso de despedida para Multics. Tratando de dar el mejor giro posible a lo que claramente era un fracaso absoluto, dijo que había logrado todo lo que intentaban lograr en Multics y que ya no necesitaban trabajar en el proyecto. Como Berk Tague, un miembro del personal presente en la reunión dijo más tarde: «Al igual que Estados Unidos en Vietnam, declaró la victoria y salió de Multics»

Dentro del departamento, este anuncio era esperable. Los programadores eran muy conscientes de los diversos problemas del proyecto y también de la computadora para la que se les había pedido que lo construyeran, un potentísimo, pero complicado mainframe GE 645Dennis Ritchie, uno de los programadores que trabajaron en Multics, dijo más tarde que todos sentían interés en el proyecto, a pesar de que sabían que las posibilidades de éxito eran extremadamente remotas. Aún así, mientras Bell Labs trabajara en Multics, también tendrían una potente máquina para «jugar» en su tiempo libre. El mainframe que Bell Labs utilizó para desarrollar Multics costó casi tanto como un Boeing 737 de la época. 

UNIX cumple 50 años

Mainframe General Electric 645

La cancelación de Multics significó el final del único proyecto en el que los programadores del departamento de informática estaban trabajando oficialmente y también significó la pérdida de la única gran computadora. Después de que el mainframe fue desmontado y retirado, los recursos del departamento de informática se redujeron a poco más que suministros de oficina y algunos terminales.

Ken Thompson, otro de los programadores importantes del proyecto, comentó con ironía la situación del momento para el proyecto de Historia Oral de Unix: «Nuestra forma de vida personal iba a ser mucho más espartana«. Afortunadamente para los entusiastas de la informática, las dificultades y las restricciones técnicas pueden conducir a veces a una inmensa creatividad.

Nace UNIX

Thompson, Ritchie y otros como Canaday y McIlroy formaron parte del equipo de programadores y supervisores de Multics. Eran conscientes de los defectos en las especificaciones que llegaron del MIT, en este momento de varios miles de páginas, y sabían que algunos de sus desafíos podrían atribuirse a la difícil arquitectura de la GE 645. Con el tiempo, los cuatro, especialmente Thompson, se convencieron de que si se les daba una «pizarra limpia», podrían desarrollar sistema operativo mejor que Multics.

Así, el sistema operativo más influyente jamás escrito no fue financiado por capitalistas de riesgo y las personas que lo escribieron no se convirtieron en multimillonarios debido a eso. UNIX surgió porque los Laboratorios Bell -subsidiaria de AT&T- contrataron personas inteligentes y les dieron la libertad de divertirse, confiando en que sus proyectos serían útiles. Antes del sistema, los investigadores de esta compañía mítica ya habían inventado el transistor y el láser, así como innovaciones en gráficos por computadora, síntesis de voz, reconocimiento de voz y otros importantes campos de la computación actual.

Lo que sigue es más conocido. Aprovechando algunos de los principios de Multics y los primeros pasos dados junto a Canaday y Ritchie en la cafetería de Bell donde «parieron» aspectos importantes como el sistema de gestión de archivos, Ken Thompson aprovechó la ausencia por vacaciones de su mujer y su hijo para escribir la primera versión de Unix en agosto de 1969.

Poco más que un editor de archivos y un núcleo para administrar el procesador PDP-7, fue el inicio de un sistema operativo portable, multitarea y multiusuario escrito en ensamblador y para la minicomputadora PDP-7 de Digital Equipment Corp. Unas semanas después, en septiembre, el departamento de informática de Bell Labs tenía un sistema operativo que se ejecutaba en un PDP-7, y no era Multics, sino un desarrollo que bautizaron como Unics (Uniplexed en lugar de Multiplexed como broma al anterior proyecto) y que no se sabe porqué acabó llamándose Unix.

UNIX cumple 50 años

Ken Thompson y Dennis Ritchie frente a un PDP-11

En 1971 Unix pasó a formar parte de la minicomputadora PDP-11, y en noviembre se publicó la primera edición del legendario «Manual de programador de Unix», en la cual colaboraron Ken Thompson y su colega Dennis Ritchie. Este último desarrollaría en 1972 el lenguaje de programación C, que sería a la postre el pilar del desarrollo en el recién creado sistema operativo.

UNIX: BSD, Linux, iOS, Android y mucho más

EN 1973 apareció por primera vez la «tubería» para comunicar dos programas, mientras que en 1974 la Universidad de California en Berkeley recibió una copia de Unix, El desarrollo del sistema operativo se dispararía a partir de ahí con la aparición de distintas versiones comerciales como el Unix System V, que sería la base del AIX de IBM y el HP-UX de Hewlett Packard.

En 1982, Bill Joy, recién graduado en Berkeley y a la postre co-fundador de Sun Microsystems, creó su propia versión basada en el Unix V6 de Bell Labs con algunos complementos adicionales. La llamó BSD (Berkeley Software Distribution), acabó convirtiéndose en rival del Unix de AT&T, y desde ahí se derivaron sistemas como FreeBSD, NetBSD, OpenBSD, DEC Ultrix, SunOS, NeXTstep/OpenStep e incluso Mac OS X.

Hay que mencionar que la distribución gratuita de Unix se detuvo en 1984 cuando el gobierno disolvió AT&T y un acuerdo de liquidación anterior que prohibía a la compañía beneficiarse de muchos inventos de Bell Labs expiró. Sin embargo, la comunidad de Unix se había acostumbrado al software libre,  por lo que al enterarse de que AT&T pronto cobraría por todas las copias de Unix y prohibiría alteraciones en el código fuente, Richard Stallman y otros decidieron recrear Unix utilizando un software que sería distribuido a cualquier persona de forma gratuita, sin restricción a las modificaciones.

Así, en 1983, Richard Stallman anunció su intención de desarrollar un sistema operativo similar a Unix constituido por software libre. Llamaron a su proyecto «GNU», abreviatura de «GNU’s Not Unix». Unos años después, en 1987, Andrew Tanenbaum creó Minix, un clónico limitado de Unix para entornos académicos que sería la semilla involuntaria de otro momento importante que llegaría poco después.

En 1991, el joven estudiante finlandés Linus Torvalds comenzó el desarrollo del núcleo Linux bajo la base de Unix. Con la combinación de otros proyectos principalmente el GNU encabezado por Richard Stallman y la Free Software Foundation, nació el sistema operativo libre, multiplataforma, multiusuario y multitarea que conocemos informalmente como Linux y más correctamente como GNU/Linux.

La presencia actual de Unix ha caído muchísimo precisamente debido a Linux, como vimos en el último Top-500 de supercomputadoras donde los 500 usaban Linux como sistema operativo. En todo caso, Unix fue el germen y sus derivadas se extienden por todos los segmentos del mercado incluyendo los móviles inteligentes con iOS o Android. Historia viva de la computación y seguramente el sistema más influyente de la historia que acaba de cumplir sus primeros 50 años de vida. ¡Felicidades!

Lo más leído