- A sus 82 años, Ken Thompson recuerda los primeros días del nacimiento del sistema operativo Unix y la cultura de experimentación libre en Bell Labs
- Explica cómo, tras el fracaso del proyecto Multics, terminó construyendo casi por accidente la estructura central de Unix aprovechando una computadora que había quedado disponible
- El equipo de desarrollo de Unix consiguió una PDP-11 y fue haciendo evolucionar el sistema operativo de manera no oficial, formando la “Unix Room”, llena de humor interno y camaradería
- El entorno abierto de Bell Labs sentó las bases para el crecimiento del lenguaje C y de Unix, y más tarde para la cultura colaborativa que desembocó en el desarrollo del lenguaje Go
- Thompson subraya que Unix fue un experimento comunitario que practicó una apertura anterior al open source, y considera que ese espíritu sigue vivo en la cultura tecnológica actual
El nacimiento de Unix y la cultura experimental de Bell Labs
- Ken Thompson participó en el proyecto Multics en Bell Labs a mediados de los años 60, pero recuerda que el sistema era “grande, lento, caro y un proyecto condenado al fracaso”
- Tras el fin de Multics, continuó sus experimentos usando una gran computadora que había quedado disponible, e intentó mejorar el dispositivo de almacenamiento de datos CRAM y la memoria de tambor
- Durante esos experimentos para acelerar la lectura de memoria, terminó creando, casi sin proponérselo, un sistema con forma de sistema operativo
- Cuenta que, aunque Bell Labs dio la instrucción de “detener la investigación sobre sistemas operativos”, completó de manera no oficial las bases de Unix
- Así nació una primera versión de Unix con componentes clave como sistema de archivos, controlador de disco y dispositivos de I/O
La primera comunidad de Unix y la llegada de la PDP-11
- Los primeros usuarios de Unix fueron Dennis Ritchie, Doug McIlroy, Robert Morris y Brian Kernighan, entre otros, y el grupo era tan pequeño que los IDs de usuario tenían un solo dígito
- Thompson diseñó el sistema de archivos junto con Rudd Canaday sobre un pizarrón, y lo documentó usando el sistema de grabación telefónica de Bell Labs
- Joe Ossanna consiguió una computadora PDP-11 esquivando la burocracia interna de Bell Labs, lo que marcó un punto de inflexión para el desarrollo de Unix
- La PDP-11, comprada nominalmente “para procesamiento de texto”, terminó siendo en realidad el equipo central para el desarrollo de Unix
- Cuando las secretarias del departamento de patentes empezaron a redactar documentos en el sistema Unix, se formó la primera base de usuarios externos
La “Unix Room” y una comunidad libre
- La PDP-11 fue instalada en un espacio del sexto piso de Bell Labs, que pronto se convirtió en el centro de los desarrolladores conocido como la ‘Unix Room’
- Tras retirar una vieja máquina expendedora y limpiar una bodega, se añadió una segunda PDP-11 y el lugar se transformó en el centro de las discusiones sobre redes y composición tipográfica de documentos
- Incluso funcionó como un hub de investigación no oficial con su propio sistema PBX conectado a líneas telefónicas
- Thompson recuerda “la época de forzar cerraduras y hacer travesuras en la Unix Room”
- Describe un ambiente experimental donde convivían el humor y la rebeldía, incluyendo episodios como robar y esconder una ‘bota’ puesta por una infracción de estacionamiento
- También relata cómo el responsable de seguridad propuso que, “si devolvían la bota, dejaría de molestar a las secretarias”, cerrando el incidente mediante una negociación
- Dennis Ritchie describía Unix como “un sistema alrededor del cual podía formarse una comunidad”, y los ‘Unix Lunch’ regulares se convirtieron en un espacio para intercambiar ideas
La apertura de Bell Labs y el crecimiento de Unix
- Thompson evalúa que un entorno de investigación sin presión y con autonomía fue lo que impulsó el éxito de Unix y del lenguaje C
- Bell Labs tenía “un ambiente donde se podía intentar cualquier cosa”, y colaboraban personas de especialidades muy distintas
- El lingüista Lee McMahon contribuyó al desarrollo de Unix al conseguir un diccionario legible por máquina y una versión electrónica de los Federalist Papers
- Cuando esos textos no cabían en el editor ed, Thompson desarrolló la herramienta de búsqueda por patrones grep
- Unix se expandió dentro de Bell Labs hacia tareas administrativas y sistemas de conmutación telefónica, convirtiéndose en infraestructura clave para toda la organización
La filosofía de apertura antes del open source
- Thompson menciona que Richard Stallman desarrolló la filosofía del open source, pero Unix ya tenía ese espíritu
- En ese tiempo Unix tenía funciones de protección de archivos, pero en la práctica todo el código fuente permanecía abierto para que cualquiera pudiera modificarlo
- Bajo la regla implícita de “si lo tocas, es tuyo”, se formó una cultura de desarrollo donde la creación compartida y la experimentación eran parte de la vida diaria
- El caso de la novela en borrador guardada en el directorio del colega P. J. Plauger, que todos leían y comentaban, aparece como una anécdota simbólica de colaboración y apertura
- Esa cultura terminó creando una forma comunitaria de desarrollo de ‘escribir juntos en el pizarrón’
- Más adelante, algunas ideas surgidas del proyecto Plan 9 de Bell Labs evolucionaron hasta convertirse en el estándar UTF-8, una base de la web moderna
El camino después de Bell Labs y el lenguaje Go
- Thompson comenta que dejó Bell Labs en 2000, tras el desmantelamiento del sistema Bell, y habla del cambio en la cultura organizacional
- Considera que se convirtió en “un ambiente donde había que justificar lo que uno hacía”, y que así se perdió la libertad de investigación
- Después trabajó seis años en la empresa de equipos de red Entrisphere y luego se fue a Google
- Su jefe en Entrisphere se había pasado a Google y lo invitó a sumarse, y Eric Schmidt había sido colega suyo en Bell Labs
- En Google participó en la revisión de seguridad de Android y luego formó el equipo de desarrollo del lenguaje Go junto con Rob Pike
- Se presenta como un caso en el que una relación de colaboración nacida en Bell Labs, 30 años después, terminó dando lugar a la creación de un nuevo lenguaje de programación
Conclusión: un legado tecnológico creado por la curiosidad y la comunidad
- Los recuerdos de Ken Thompson muestran que Unix no fue simplemente una tecnología, sino el producto de una exploración libre y de un espíritu comunitario
- El entorno abierto de Bell Labs funcionó como un modelo temprano de la cultura open source moderna
- Su experiencia sigue siendo un ejemplo que recuerda que la creatividad y la colaboración son motores centrales de la innovación tecnológica
1 comentarios
Opiniones de Hacker News
Impresiona el espíritu de colaboración creativa y alta confianza que compartieron varios proyectos de software exitosos
Esta cultura iba en una dirección totalmente opuesta al pensamiento tipo MBA o al entorno burocrático de las grandes corporaciones
Hace pensar en casos como Unix, GNU, Linux, Python en sus inicios y hasta los primeros Rockstar Games
La burocracia termina devorándolo todo, y los gerentes levantan muros mientras el secretismo va erosionando la confianza
A la gente nueva le cuesta incluso entender el sistema, y las ideas nuevas mueren antes de empezar
Las organizaciones grandes también pueden ganar dinero, pero si quieres generar cambios, la confianza es indispensable
Se sentía parecido a cómo hoy los VC reparten dinero
Es interesante que los primeros usuarios de Unix fueran secretarias de patentes o personal administrativo
Como era un sistema que la gente empezó a usar por gusto y de forma voluntaria, surgió una presión del mundo real, y eso terminó funcionando de manera saludable
Aunque se probaran ideas experimentales, no podían darse el lujo de romper un sistema que usuarios reales usaban todos los días
Igual que Linux empezó “solo como un hobby”, el Unix inicial no nació de una gran visión, sino de un experimento para crear herramientas útiles
Claro, el entorno de Bell Labs le daba una gran ventaja
Fue interesante la historia de las botas de seguridad robadas
Llama la atención que se resolviera no mediante el procedimiento oficial, sino por negociación directa con el guardia de seguridad
Está genial la anécdota de Thompson diseñando el sistema de archivos de Unix con Rudd Canaday en un pizarrón, y usando el servicio telefónico de dictado de Bell Labs
Hoy hasta cualquier persona puede usar fácilmente servicios de reconocimiento de voz, pero en ese entonces eso debía de haber sido realmente innovador
Claro, en esa época probablemente no era IA sino una secretaria quien transcribía, aunque pensando en la capacidad técnica de Bell Labs, tampoco parecería algo totalmente imposible
Cuando escribo, me dan ganas de seguir corrigiendo y eso más bien estorba
Es interesante que las herramientas tempranas, como mesg y talk, estuvieran diseñadas pensando en formar comunidad
Gracias a esa estructura medio abierta, hasta era posible entrar al directorio personal de otra persona y ver archivos
ITS no tenía restricciones de permisos y fomentaba la colaboración, pero la mayoría de los servidores Unix bloqueaban los directorios personales con 0700
En el pie de foto de una imagen donde aparecen Ken y dmr juntos, está la frase: “queríamos construir un sistema donde pudiera formarse una comunidad”
Eso hace recordar la cita de El Señor de los Anillos al inicio del archivo fuente de Perl
El código relacionado puede verse en este enlace de GitHub
Todo lo que Ken aportó al lenguaje Go puede verse en el repositorio Git
Sin spoilers, pero hay código bastante divertido
Me da curiosidad el título de la canción “Radio UNIX USA” del álbum de hardcore punk de 1981 This is Boston not LA
La letra no tiene absolutamente nada que ver con Unix, pero como la banda era de Boston, tal vez haya alguna relación con MIT
También podría ser un título que parodia la regla de los indicativos de llamada de cuatro letras de las estaciones de radio en EE. UU.
Si este texto te pareció interesante, recomiendo 《Hackers》 de Steven Levy
Trata la historia de la cultura hacker, desde el MIT AI Lab hasta el Homebrew Computer Club y los primeros programadores de videojuegos
Yo también lo leí de joven, me enganché con la programación y todavía hoy siento una alegría parecida de colaboración en startups
Enlace de Goodreads
《Unix: A History and a Memoir》 de Brian Kernighan también es una excelente lectura