Geeks famososHistoriaUnixProgramaciónBell Labs

Ken Thompson: Unix, B y la raíz de casi todo

· · 10 min de lectura

Ver todo: Geeks famosos

En el verano de 1969, mientras su familia estaba de visita en casa de sus padres, un ingeniero de Bell Labs llamado Kenneth Lane Thompson se quedó solo en la oficina. Aprovechó el tiempo libre para hacer algo sencillo: escribir un sistema operativo completo. Tardó aproximadamente tres semanas. Una semana para el sistema de archivos, una para la gestión de procesos y una para el intérprete de comandos.

Lo que Thompson construyó en ese verano no fue solo Unix — aunque Unix es ya razón suficiente para recordarlo. Fue el primer eslabón de una cadena que conecta esa PDP-7 olvidada con prácticamente todo el software que existe hoy: los servidores que sirven la web, los sistemas Android e iOS, los compiladores de C, el estándar de codificación de texto UTF-8, el lenguaje Go y una clase de reflexión sobre seguridad informática que sigue siendo enseñada en universidades cincuenta años después. Thompson sigue vivo y activo — nació el 4 de febrero de 1943 y a la fecha de este artículo trabaja en Google.

Lo esencial sobre Ken Thompson

  • Nació el 4 de febrero de 1943 en Nueva Orleans, Louisiana. Sigue vivo y activo en Google
  • En 1969 creó Unix sobre una PDP-7 descartada en Bell Labs, junto con Dennis Ritchie — el sistema operativo que define cómo funciona el software hasta hoy
  • Inventó el lenguaje B (1969), predecesor directo del C de Ritchie, que a su vez es la base de C++, Java, C# y decenas de lenguajes modernos
  • Ganó el Premio Turing en 1983 junto con Dennis Ritchie, la distinción más alta en ciencias de la computación
  • Su conferencia Turing “Reflections on Trusting Trust” (1984) demostró que no puedes confiar en código que no creaste tú mismo — un principio fundacional de la seguridad informática moderna
  • Co-diseñó UTF-8 en 1992 con Rob Pike y co-creó el lenguaje Go en 2009 con Pike y Robert Griesemer, ya en Google

Visita Geeks famosos en GeekShop para conocer más perfiles de las personas que construyeron el mundo digital.


Orígenes y camino

Kenneth Lane Thompson creció en Nueva Orleans y estudió ingeniería eléctrica y ciencias de la computación en la Universidad de California, Berkeley, donde obtuvo su licenciatura en 1965 y su maestría en 1966. Al terminar fue contratado directamente por Bell Labs, el laboratorio de investigación de AT&T en Murray Hill, Nueva Jersey, que en ese momento era quizás la institución de investigación tecnológica más productiva del mundo.

Bell Labs en los años 60 era un lugar inusual: tenía recursos casi ilimitados, investigadores brillantes y, sobre todo, la libertad de explorar sin estar atado a productos inmediatos. Thompson llegó ahí justo cuando arrancaba el proyecto Multics — un ambicioso esfuerzo colaborativo entre MIT, General Electric y Bell Labs para crear un sistema operativo de tiempo compartido de propósito general. El proyecto era técnicamente impresionante y también un desastre en cámara lenta: demasiado grande, demasiado lento, demasiado complicado.

BELL LABS, 1969

Un juego de video que cambió la historia

En marzo de 1969, AT&T se retiró del proyecto Multics. Thompson y sus colegas se quedaron de repente sin un ambiente de cómputo decente. Pero Thompson había estado trabajando en algo propio: un videojuego de simulación espacial llamado Space Travel que corría en el sistema GECOS. El problema era que cada sesión de juego costaba dinero de cómputo. Thompson encontró una PDP-7 — una computadora ya obsoleta en el laboratorio — y decidió portarlo ahí.

Para poder correr Space Travel necesitaba un sistema de archivos. Para el sistema de archivos necesitaba un sistema operativo mínimo. La historia que sigue es bien conocida pero vale la pena subrayar la escala: Thompson escribió el sistema de archivos, el gestor de procesos, el cargador y el intérprete de comandos en aproximadamente tres semanas, en una máquina con solo 4K de palabras de 18 bits de memoria. La primera versión solo soportaba un usuario. Un colega, Brian Kernighan, sugirió el nombre que el mundo adoptaría: Unix — un juego de palabras con Multics que insinuaba algo más modesto y monouso, aunque con el tiempo resultó ser cualquier cosa menos modesto.


Sus aportes

La historia de Thompson no se reduce a Unix. Lo que hace singular su trayectoria es la cantidad de cosas fundamentales — no derivadas, no mejoras incrementales, sino inventos de primer orden — que llevan su firma o su participación directa.

LENGUAJES Y SISTEMAS

Del lenguaje B a Go: cincuenta años de influencia directa

El lenguaje B (1969). Cuando Thompson necesitaba un lenguaje con el cual escribir utilidades para Unix, tomó el BCPL — un lenguaje diseñado por Martin Richards — y lo simplificó radicalmente para adaptarlo a las limitaciones de la PDP-7. Ese lenguaje se llamó B. B no fue un éxito comercial, pero fue la base directa sobre la cual Dennis Ritchie desarrolló C a principios de los 70. C se convirtió en el lenguaje del sistema operativo Unix, y desde ahí en el lenguaje base de prácticamente toda la computación del siglo XX y buena parte del XXI.

El editor ed y las expresiones regulares. Thompson no inventó las expresiones regulares — eso fue Stephen Kleene en los años 50 — pero fue quien las implementó en herramientas de software prácticas por primera vez. Su trabajo en el editor de texto QED (en Berkeley, antes de Bell Labs) y luego en ed (el editor canónico de Unix) llevó las regex al flujo de trabajo cotidiano de los programadores. Hoy están en Python, JavaScript, Perl, grep, sed y cualquier editor de texto del planeta.

UTF-8 (1992). Cuando el mundo necesitaba un estándar de codificación de texto que pudiera representar todos los caracteres del mundo sin romper el software existente, Thompson y Rob Pike diseñaron UTF-8 en una tarde — literalmente, en una servilleta de un restaurante según la leyenda, aunque la anécdota exacta varía según la fuente. Lo que es verificable es que el esquema fue propuesto en septiembre de 1992 y adoptado rápidamente. Hoy UTF-8 es la codificación dominante en la web: más del 97% de las páginas web la usan.

Go (2007-2009). A los 64 años, después de retirarse de Bell Labs en 2000, Thompson se unió a Google en 2006. Ahí, junto con Rob Pike y Robert Griesemer, diseñó el lenguaje Go — un lenguaje compilado, con tipado estático, concurrencia nativa y sintaxis limpia. Go fue anunciado públicamente en noviembre de 2009 y desde entonces se convirtió en el lenguaje base de herramientas críticas de infraestructura: Docker, Kubernetes, Terraform y muchos otros.


Cronología: de New Orleans a Google

Año Evento
1943 Nace el 4 de febrero en Nueva Orleans, Louisiana
1965 Licenciatura en ingeniería eléctrica y computación, UC Berkeley
1966 Maestría en UC Berkeley; se une a Bell Labs
1969 Escribe Unix en una PDP-7 descartada; crea el lenguaje B
1970 Unix recibe su nombre, sugerido por Brian Kernighan
1973 Unix es reescrito en C junto con Dennis Ritchie — portabilidad clave
1980 Su programa de ajedrez Belle gana el Campeonato Mundial de Ajedrez Computacional en Linz
1983 Premio Turing junto con Dennis Ritchie por Unix
1984 Conferencia Turing “Reflections on Trusting Trust” en CACM
1990 Medalla Richard W. Hamming del IEEE
1992 Co-diseña UTF-8 con Rob Pike
1998 Medalla Nacional de Tecnología otorgada por el presidente Bill Clinton
2000 Se retira de Bell Labs
2006 Se une a Google como Distinguished Engineer
2009 Co-crea el lenguaje Go; lanzamiento público en noviembre
2011 Premio Japan Prize en Información y Comunicaciones
La moraleja es obvia: no puedes confiar en código que no creaste tú mismo. — Ken Thompson, “Reflections on Trusting Trust”, CACM 1984

Mitos y realidad

La historia de Ken Thompson tiene suficiente sustancia real como para no necesitar exageraciones — y sin embargo la mitología se acumula alrededor de cualquier figura fundadora de la computación. Vale la pena separar lo verificado de lo inflado.

Los laboratorios de Bell Labs en Murray Hill, Nueva Jersey, fueron durante décadas el lugar donde más invenciones por metro cuadrado se produjeron en la historia de la tecnología.

Si quieres conocer a los compañeros de generación y de legado de Thompson, explora los perfiles de Dennis Ritchie, su socio más cercano en Bell Labs y creador del lenguaje C, y de Linus Torvalds, quien construyó sobre los hombros de Unix para crear el kernel más usado del mundo.


FAQ

¿Ken Thompson sigue vivo en 2026?

Sí. Thompson nació el 4 de febrero de 1943 y sigue activo. Después de retirarse de Bell Labs en 2000 y trabajar en Google desde 2006, actualmente figura como asesor en Google (Google Advisor). Tiene 83 años al momento de publicar este artículo.

¿Qué relación tiene Ken Thompson con Dennis Ritchie?

Fueron el dúo central de Unix. Thompson y Ritchie trabajaron juntos en Bell Labs durante décadas. Thompson diseñó el primer Unix en la PDP-7; Ritchie creó el lenguaje C y reescribió Unix en C, lo que lo hizo portable. En 1983 compartieron el Premio Turing. Ritchie falleció en octubre de 2011.

¿Por qué la conferencia “Reflections on Trusting Trust” es tan famosa?

Porque demostró — con código real — que un atacante puede comprometer un compilador para que el malware se inserte solo en cualquier programa compilado, sin que aparezca en el código fuente. La implicación es filosófica y práctica a la vez: la cadena de confianza en el software es tan fuerte como su eslabón más débil, y ese eslabón puede ser invisible. La conferencia fue publicada en Communications of the ACM en agosto de 1984 y sigue siendo lectura obligatoria en seguridad informática.

¿Ken Thompson creó el lenguaje C?

No. Thompson creó el lenguaje B, que fue el predecesor directo de C. Fue Dennis Ritchie quien desarrolló C a partir de B en los años 1971-1973. Thompson y Ritchie son con frecuencia mencionados juntos en relación con C porque ambos trabajaron en el entorno Unix que hizo posible el lenguaje, pero la autoría de C es de Ritchie.

¿Qué es Go y cuál fue el rol de Thompson en él?

Go es un lenguaje de programación de código abierto diseñado en Google a partir de 2007 y lanzado públicamente en noviembre de 2009. Fue creado por Robert Griesemer, Rob Pike y Ken Thompson. Thompson fue quien construyó el primer compilador funcional de Go — inicialmente en C, como prototipo — antes del lanzamiento oficial. Go se convirtió en el lenguaje base de herramientas de infraestructura esenciales como Docker y Kubernetes.

Fuentes

Los datos biográficos de esta guía se apoyan en fuentes autoritativas:

¿Te late lo que viene?

Regístrate y entérate cuando abramos.

Avísenme cuando abran