El hacker Dmitry Grinberg logró recientemente lo que podría parecer imposible: arrancar Linux en el Intel 4004el primer microprocesador comercial del mundo. Con sólo 2300 transistores y una velocidad de reloj estándar de 740 kHz, el procesador de 1971 es increíblemente primitivo para los estándares modernos. Y es lento: el kernel de Linux tarda unos 4,76 días en arrancar.
Diseñado originalmente para una calculadora japonesa llamada Busicom 141-PF, la 4004 de 4 bits. encontró un uso limitado en productos comerciales en la década de 1970 antes de ser reemplazados por chips Intel más potentes, como el 8008 y el 8080 que alimentaron las primeras computadoras personales y más tarde 8086 y el 8088 que lanzó la era de las PC IBM.
Si es escéptico sobre poder lograr esta hazaña con un 4004 sin formato, tiene razón: el 4004 en sí es demasiado limitado para ejecutar Linux directamente. En cambio, Grinberg creó una solución igualmente impresionante: un emulador que se ejecuta en el 4004 y emula un procesador MIPS R3000, la arquitectura utilizada en el Estación DIC 2100 estación de trabajo a la que se portó Linux originalmente. Este emulador, combinado con una emulación de hardware mínima, permite que un Debian Linux simplificado arranque desde un símbolo del sistema.
Grinberg es no un extraño Logró hazañas ejecutando Linux en lugares inverosímiles. Como explica en su sitio web: “En 2012, ejecuté Linux real en un microcontrolador de 8 bits (AVR), estableciendo un nuevo récord mundial para la máquina más barata que jamás haya ejecutado Linux. » Después de que otros hubieran superado ese récord en los últimos años, decidió superarse a sí mismo y a los demás apuntando al primer microprocesador.
El comienzo largo y lento
Para que Linux se ejecutara en el 4004, Grinberg tuvo que superar muchos desafíos. El 4004 tiene ROM y RAM extremadamente limitadas, no tiene interrupciones e incluso carece de operaciones lógicas básicas como AND y OR. El emulador de Grinberg utiliza hábilmente tablas de búsqueda y otros trucos para exprimir el máximo rendimiento del procesador primitivo.
El hardware final utiliza el 4004 (overclockeado a 790 kHz) junto con varios otros chips compatibles con la época del chipset MCS-4 de Intel. Incluye una pantalla VFD para mostrar la salida de Linux y puede aceptar entradas a través de una conexión en serie. Toda la configuración consume alrededor de 6W.
Para ponerlo todo junto, Grinberg diseñó una PCB personalizada sin vías (caminos de un lado de la PCB al otro) y solo trazas en ángulo recto para una estética retro. Está diseñado para colgarse en la pared como una obra de arte, ejecutando lentamente comandos de Linux durante días o semanas.
Aunque no tiene ningún uso práctico, el proyecto Linux/4004 demuestra la flexibilidad de Linux y lleva la emulación al límite. Grinberg está considerando la posibilidad de ofrecer kits o placas completamente ensambladas para quienes quieran experimentar Linux en su versión más lenta, aunque esto aún no es definitivo.
Los detalles completos del proyecto, incluidos los esquemas y el código fuente, están disponibles en Sitio web de GrinbergPara aquellos interesados en la informática antigua o las implementaciones extremas de Linux, es una mirada fascinante a lo que es posible con la tecnología de los años 70 y mucha ingeniería inteligente.