Ayer me puse a apagar servicios en una de mis maquinolas. Le libere unos 500MB de RAM con servicios que, básicamente, no hacen nada. O mejor dicho, nada útil. Es el precio de la “computación para todos”. En los tiempos en los que procesadores de doble núcleo en 64bits con 3GB de RAM son la norma, eso mucho no importa.
Pero hubo otra época, en la que los hombres eran hombres y se programaba en Assembler. Mi primer gran programa fue en Assembler para microcontroladores, luchando por acomodar todo el código en un espacio de 1024 byte compartido entre programa y memoria. Era un tiempo para caballeros.
Antes de la época del pingüino, la manzana y la ventana, el ser humano llego a la Luna. Y para hacerlo necesito de computadoras. Las misiones Apollo llevaron, cada una, 2 computadoras AGC (siglas de Apollo Guidance Computer). Una para el modulo de comando, encargada de guiar la misión desde la separación del cohete Saturno V hasta la reentrada en la atmósfera y una para el LM, encargada de las maniobras de aproximación, alunizaje y despegue.
La AGC es una pieza de equipo muy interesante. Era controlada por un cristal que gira a 2MHz, con una frecuencia de sincronización de solo 512 KHz. Fue el primer sistema de los llamados “embebidos de tiempo real” y cumplió su misión solamente con un set de 11 instrucciones y una memoria RAM de núcleos de ferrite con una capacidad de almacenamiento de 1024 palabras. Fue uno de los primeros sistemas prácticos en utilizar microprocesadores (unas 5600 compuertas lógicas). El diseño es obra del M.I.T.
La interfase de usuario es realmente sencilla. Los comandos se introducían numéricamente y el feedback al usuario era visual por medio de displays de 7 segmentos controlados por reles. Increíble que eso llevo y trajo de vuelta a todas las misiones Apollo.
Dejo un link de cómo construir el Bloque 1 del AGC. Enjoy!