jueves, octubre 24, 2019

De CTSS MAIL del MIT y el primer e-mail de la historia a MyPublicInbox, pasando por Bill Gates (Parte 1 de 2) #MyPublicInbox #email

Chema Alonso ha escrito una serie de artículos donde describe con gran detalle la evolución del e-mail hasta nuestros días, y nosotros, como nos gusta mucho esto de la historia de la informática :) vamos a complementarlos con algunas anécdotas y hechos - además de reflexiones, en concreto de una leyenda de la historia de la tecnología, como es el gran Bill Gates - relacionados con la invención de este fantástico servicio tan popular hoy día, que aún sufre mutaciones como la de MyPublicInbox.

Figura 1: De CTSS MAIL del MIT y el primer e-mail de la historia
a MyPublicInbox, pasando por Bill Gates (Parte 1 de 2)

En nuestro libro de MicroHistorias: Anécdotas y curiosidades de la historia de la informática (y los hackers) también contamos el nacimiento del correo electrónico además del SPAM, dos términos que por cierto, nacieron casi al mismo tiempo. Vamos a empezar diciendo que no es sencillo definir quién o cuando se inventó el email tal y como lo entendemos hoy día. De hecho, el correo electrónico es mucho más viejo que Internet o incluso ARPANET, la red de todas las redes.

Figura 2: Libro de Microhistorias

De todas formas, parece que los primeros conceptos de mensajería empiezan a aparecer a finales de los años 50 y comienzo de los 60, justo en el nacimiento de un nuevo concepto en computación realmente revolucionario llamado Time-Sharing (o Tiempo Compartido). Esta nueva técnica permitía que varios usuarios pudieran trabajar en un mismo ordenador (mainframe) a la vez, utilizando para ello un usuario específico para cada uno.

Figura 3: Ken Thompson (sentado) y Dennis Ritchie (de pie), creadores del sistema operativo Unix,
trabajando en un sistema Time-Sharing con un ordenador PDP-11 donde se ven dos terminales de trabajo.

Para conseguir hacer factible el Time-Sharing, sería necesario añadir otros conceptos revolucionarios como multiprogramación y multitarea, términos muy familiares hoy día pero extremadamente complicados de implementar por aquella época, y más aún en aquellos ordenadores (recordemos que aún el concepto de microprocesador no existía, de hecho aún no se había inventado). Gracias a Time-Sharing, los caros y potentes ordenadores se podían compartir para que usuarios de diferentes perfiles (informáticos, científicos, alumnos, etcétera) pudieran ejecutar cualquier tipo de tarea específica relacionada con su trabajo o investigación.

La persona detrás de esta revolución era nada más y nada menos que John McCarthy, uno de los padres de la Inteligencia Artificial creador del lenguaje ALGOL y Lisp entre otros muchos logros. En 1959 utilizó un IBM 704 (posiblemente el primer ordenador fabricado en masa) y luego un IBM 709 (las únicas máquinas de la época capaces de realizar multitarea y multiprogramación) para implementar un sistema real de Time-Sharing. Finalmente, en 1961 se presenta con el nombre de CTSS (Compatible Time-Sharing System). Como hemos comentado antes, estos sistemas requerían de una cuenta de usuario y un espacio reservado en la memoria.

Figura 4: Aspecto de uno de los paneles de programación de un IBM 709.

Pronto apareció la necesidad de comunicación entre los diferentes usuarios que compartían el sistema. Estos siempre tenían la posibilidad de hablar en tiempo real utilizando un comando tipo “talk”, pero claro, el destinatario debía de estar online y trabajando en una terminal. Había que buscar una solución que permitiera comunicarse incluso cuando el usuarios destinatario no estuviera conectado.

En el MIT crearon un simple programa llamado MAIL, basado en unas notas tomadas allá por el año 1964, conocida como la Programming Staff Note 39, el cual permitía el envío de mensajes electrónicos entre los usuarios del sistema. Este comando se conocía como el CTSS MAIL, cuyo código fuente se encuentra en este enlace. Pero claro, falta un componente esencial para considerar un correo electrónico como tal: la red.

Figura 5: Parte del código fuente de CTSS MAIL

En paralelo al todo el desarrollo de los primeros pilares de lo que posteriormente se convertiría en el e-mail, el 21 de noviembre de 1969 se crea el primer enlace de la red ARPANET, espina dorsal de la actual Internet. En 1971 ya existían 24 ordenadores conectados, pertenecientes sobre todo a universidades y centros de investigación, de costa a costa de los Estados Unidos. Ray Tomlinson era un programador que trabajaba para la empresa BBN (Bolt, Beranek and Newman) la cual obtuvo un contrato de trabajo con ARPANET, para crear precisamente un programa de comunicaciones entre los diferentes usuarios de los ordenadores que componían dicha red.

Para ello utilizó como base un programa llamado SDNMAIL, el cual estaba diseñado en principio sólo para enviar y recibir mensajes entre usuarios de un mismo sistema operativo basado en Time-Sharing llamado TENEX. Ray y su equipo lo modificaron para que también funcionara sobre la red de comunicaciones de ARPANET, la cual por cierto, estaba compuesta por nodos implementados en ordenadores PDP-10. Además, también implementaron una macro que llamarían READMAIL justo para realizar precisamente ese trabajo, leer los correos electrónicos.

Figura 6: Ray Tomlinson

Ray había trabajado un protocolo de transferencia de ficheros llamado CPYNE (precursor del futuro FTP del cual hablaremos más adelante) el cual permitía la lectura y escritura de ficheros en sistemas remotos. Mientras Ray trabajaba en SNDMAIL, se le ocurrió la idea de integrar la funcionalidad CPYNET con la de SNDMAIL para poder enviar mensajes entre distintos ordenadores ubicados en diferentes puntos de la red. Había creado sin saberlo aún, el primer (con muchos matices) MTA o Message Transfer Agent, que no es más que el software que se encarga de transferir los correos electrónicos entre ordenadores (siendo este la semilla del futuro SMTP).

Para poder identificar a los diferentes usuarios locales de cada servidor remoto, a Ray se le ocurrió un formato que primero constaba del nombre del usuario, seguido del nombre del host y ambos separados por el famoso símbolo “@” (arroba) ¿verdad que os suena?. La elección de este símbolo era importante ya que tenía que ser uno que nunca pudiera ser parte del nombre de usuario o del host. Además, Ray utilizaba para trabajar un teletipo Model 33 el cual tenía este símbolo que no se utilizaba específicamente para ninguna función concreta. Además, significa “at” (puede ser “en” o “a) lo que le añade sentido a la elección. Por lo tanto, el primer buzón de correo de la historia fue:
tomlinson@bbn-tenexa
El contenido del primer e-mail de la historia no tiene ninguna frase pensada ni de especial importancia. De hecho, el texto de este primer corre electrónico tenía la siguiente cadena de caracteres:

“QWERTYUIOP”. 

Sí, como habéis podido adivinar eran los caracteres seguidos desde la Q hasta la P, simplemente eso. Pronto este sistema de comunicaciones entre los diferentes usuarios de ARPANET se volvió realmente popular, algo que ha durado hasta hoy día. Como curiosidad, el e-mail fue enviado a dos ordenadores que estaban literalmente pegados en la misma habitación pero conectados a Internet. Podéis verlos en todo su esplendor en la Figura 7..

Figura 7: Los dos ordenadores PDP-10 (al fondo izquierda y frente derecha)
desde los cuales se envió y recibió el primer el e-mail de la historia.

Debido a esta gran popularidad, pronto se fueron introduciendo mejoras a este programa de comunicaciones. La versión inicial de SNDMSG era muy primitiva y no podía por ejemplo enviar a varios destinatarios a la vez y no gestionaba correctamente los errores de entrega (simplemente se perdían si el host destinatario no estaba encendido). Ya en 1975 John Vittal desarrolló un programa específico para organizar los correos electrónicos recibidos y Larry Roberts inventó la organización de los correos por carpetas. En dos años, el 75% del tráfico de ARPANET era el correo electrónico.

Una de las modificaciones más importantes fue cambiar el protocolo CPYNET por otro más estándar, el FTP. Luego se propuso también que los emails deberían de ser simplemente caracteres ASCII sin binarios pero no fue hasta 1972 cuando todas las partes interesadas, desde el MIT hasta el mismo Ray Tomlinson, hicieron una completa revisión a todo el sistema de correo electrónico con nuevos comandos FTP para gestionarlo. Muchos cambios tuvieron lugar durante este periodo (en este fantástico artículo esta todo al detalle) hasta 1980, cuando los protocolos IP empezaron a establecerse sustituyendo a todos los de ARPANET. Es en este momento cuando aparece MTP (Mail Transfer Protocol) el cual evolucionó hasta el actual SMTP (Simple Mail Transfer Protocol).

Continúa en la segunda parte de este artículo: De CTTS Mail del MIT a MyPublicInbox pasando por Bill Gates (Parte 2 de 2)

Autores:

Fran Ramírez, (@cyberhadesblog) es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps", también de "Machine Learning aplicado a la Ciberseguridad” además del blog CyberHades. Puedes contactar con Fran Ramirez en MyPublicInbox.

Rafael Troncoso (@tuxotron) es Senior Software Engineer en SAP Concur, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" además del blog CyberHades. Puedes contactar con Rafael Troncoso en MyPublicInbox.

No hay comentarios:

Entrada destacada

MyPublicInbox: Perfiles destacados por categorías #MyPublicInbox @mypublicinbox1

Cuando se conceptualizó la plataforma de MyPublicInbox se pensó en un entorno que permitiera que los perfiles públicos recibieran comunica...

Entradas populares