martes, 13 de marzo de 2012

10 curiosidades para celebrar 40 años de UNIX


UNIX es el padre. Sí, por lo menos lo es de los sistemas operativos dominantes en la nube (GNU/Linux, Solaris, FreeBSD…) y en los móviles (iOS, Android…). Y en estas fechas celebra 40 años de la publicación del primer manual para usuarios y programadores: el hito que marcó su paso a la inmortalidad. Desde entonces no una sino varias culturas se han desarrollado inspiradas por esa pieza de software de Ken Thompson (ken) y el recién fallecido Dennis Ritchie (dmr), a pesar de múltiples obstáculos burocráticos.
Para celebrar un poco esas cuatro décadas, me permití recabar 10 curiosidades sobre la historia inicial de Unix que quizá encuentres interesante. Por cierto, a los interesados en profundizar en el tema les recomiendo ampliamente leer The UNIX-HATERS Handbook (PDF, 3.5MB), un delicioso compendio de buenas anécdotas y humor de la comunidad Unix.

1. Multics: el muerto

Con eso quiero decir que los jefes de ken y dmr decidieron retirar su apoyo de Multics (Multiplexed Information and Computing Service), el proyecto de sistema operativo más avanzado de la época (1969). Bell Labs no quería saber nada más de un software en el que habían invertido millones de dólares y de elaboración más compleja de lo usual. Bell Labs tenía miedo; ken y dmr, no.

2. Space Travel: el hacking

ken decidió portar su versión de Space Travel de una GE-645 a la más sencilla PDP-7 de DEC. Una cosa de nada para un hacker. El oficio ganado en ese ejercicio de programación inspiró a ken para reescribir buena parte del código de Multics para la PDP-7.

3. Unics: la broma

Multics pretendía ser un sistema operativo de tiempo compartido, donde múltiples usuarios pudieran usarlo. Pero como la versión simple de Multics para la PDP-7 sólo era usada por un usuario, ken, éste decidió nombrarla: Un-multiplexed Information and Computing Service, o Unics, en alusión al proyecto muerto. Eventualmente Unics se convertiría en Unix.

4. PDP-11: engañar a los jefes

La PDP-7 era una máquina limitada que había alcanzado la obsolescencia, así que era insuficiente para construir completamente un sistema operativo. ¿Qué hicieron ken y dmr? Solicitar una PDP-11. ¿Cómo lo justificaron? “Hey, jefes, queremos hacer un procesador de textos…” Lo que no percibieron los jefes es que para conseguirlo ken y dmr colocaron “a escondidas” un nuevo sistema operativo.

5. Mecanógrafos de patentes: los primeros usuarios

La primera prueba real para ken y dmr se dio gracias a los mecanógrafos de patentes, personas dedicadas específicamente a documentar las muchas solicitudes de patente de Bell Labs. Para 1970 usaron la PDP-11 con mucho éxito porque el procesador de textos roff era realmente bueno para la época. Obvio: ken y dmr pidieron más PDP-11.

6. Nacen los directorios

Para noviembre de 1971 nació el primer manual de usuario y programadores de Unix. ¿Qué tenía esa versión del sistema operativo para los usuarios? Directorios. En otras palabras, un esquema de jerarquías que facilitó enormemente la gestión de ficheros, cuyo tamaño, por cierto, no debía exceder los 64KB ni su nombre tener más de 6 caracteres.

7. ed: el omnipresente editor de textos

El software ed nació en 1971 para editar archivos en Unix. Cuatro décadas después, si abres cualquier sistema operativo derivado o inspirado en Unix, aún lo podrás encontrar.

8. C

Dennis Ritchie programó C mientras usaba Unix. Y luego usó C para reescribir Unix. Así eran los hackers de los viejos tiempos.

9. Eficacia

La primera versión completa de Unix fue escrita en 4200 líneas de código y sólo ocupaba 16 KB en memoria.

10. El boom

Para 1973 ken y dmr consideraron que Unix era lo suficientemente maduro para ser presentado en sociedad. Y así lo hicieron. Publicaron en 1974 el paper llamado The UNIX Time-Sharing System en un prestigioso simposio de sistemas operativo de la ACM. Allí se lee lo siguiente (en corchetes cuadrados van mis acotaciones):
Unix es una sistema operativo interactivo, de propósito general, multi-usuario, para las computadoras PDF-11 de DEC e Interdata 8/32. Ofrece una cantidad de características raras incluso en grandes sistemas operativos, como
  1. Un sistema de archivos jerárquico [directorios]
  2. Operaciones de E/S compatibles entre ficheros, dispositivos y procesos [todo es un fichero, incluso los dispositivos]
  3. La habilidad de iniciar procesos de forma asíncrona [multiusuario]
  4. Un lenguaje de comandos para el sistema elegible por el usuario [shell intercambiable]
  5. Más de 100 subsistemas [software de usuario] incluyendo docenas de lenguajes
  6. Alto grado de portabilidad
Esas características siguen definiendo a los sistemas operativos modernos. Unix era un adelantado a su época…
Y así, si pensárselo mucho, desafiando la autoridad a fuerza del puro gusto de programar y creer en algo, ken, dmr y colegas que les acompañaron en el camino cambiaron el mundo de la tecnología como lo conocemos.

No hay comentarios:

Publicar un comentario