El hacker de hardware Dmitry Grinberg logró recientemente lo que podría parecer imposible: hacer funcionar el sistema operativo Linux en el Intel 4004, el primer microprocesador comercial del mundo.
Con solo 2.300 transistores y una velocidad de reloj original de 740 kilohercios (kHz), el procesador de 1971 es increíblemente primitiva para los estándares modernos. Además, es lento: el núcleo del sistema operativo tarda unos 4,76 días en arrancar, según consignó el portal Ars Technica.
Inicialmente diseñado para una calculadora japonesa llamada Busicom 141-PF, el 4004 de 4 bits encontró un uso limitado en productos comerciales de la década de 1970 antes de ser reemplazado por chips Intel más potentes, como el 8008 y el 8080 que alimentaron las primeras computadoras personales, y luego los 8086 y 8088 que lanzaron la era de las PC IBM.
El 4004 por sí solo, sin embargo, es demasiado limitado para ejecutar Linux directamente.
En cambio, Grinberg creó una solución que es igualmente impresionante: un emulador que se ejecuta en el 4004 y emula un procesador MIPS R3000, la arquitectura utilizada en la estación de trabajo DECstation 2100 a la que se portó Linux originalmente. Este emulador, junto con una emulación mínima de hardware, permite que un Debian Linux simplificado inicie desde un símbolo del sistema.
Para que Linux funcionara en el 4004, Grinberg tuvo que superar numerosos desafíos. El 4004 tiene ROM y RAM extremadamente limitadas, no tiene interrupciones y carece incluso de operaciones lógicas básicas; el emulador del hacker hace un uso inteligente de tablas de búsqueda y otros trucos para exprimir el máximo rendimiento de la CPU primitiva.
El hardware final utiliza el 4004 junto con varios otros chips de soporte de período correcto del chipset MCS-4 de Intel.
Toda la configuración consume alrededor de seis vatios de potencia.
Para unirlo todo, Grinberg diseñó una placa de circuito personalizada sin vías (caminos de un lado de la placa de circuito al otro) y solo trazas en ángulo recto para una estética retro. Está destinado a ser montado en la pared como una obra de arte, ejecutando lentamente comandos de Linux en el transcurso de días o incluso semanas.
Si bien no tiene ningún propósito práctico, el proyecto Linux/4004 demuestra la flexibilidad de Linux y lleva la emulación a sus límites.