L'Intel 4004, premier microprocesseur commercial au monde, a été conçu en 1971 pour la calculatrice Busicom 141-PF : 2 300 transistors, 4 bits, 740 kHz, sans interruptions, et même dépourvu d'opérations logiques élémentaires comme AND et OR. Le hacker matériel Dmitry Grinberg — qui avait établi en 2012 le record d'exécution de vrai Linux sur la machine la plus bas de gamme jamais utilisée, un microcontrôleur AVR 8 bits, et s'était depuis fait dépasser — a décidé de pousser le record jusqu'au tout premier microprocesseur.

L'astuce consiste en un émulateur à l'intérieur de la machine impossible : le 4004 exécute un émulateur du MIPS R3000, l'architecture de la station de travail DECstation 2100 sur laquelle Linux a été initialement porté. Des tables de correspondance et d'autres astuces arrachent de la performance au processeur primitif ; la version finale survolt le 4004 à 790 kHz, l'entoure de puces de support Intel MCS-4 d'époque, affiche la sortie de Linux sur un écran VFD et reçoit une entrée série, le tout à environ 6 W. Un Debian Linux allégé démarre jusqu'à une invite de commande en 4,76 jours et peut exécuter des commandes pendant des jours ou des semaines.

La carte de circuit imprimé sur mesure — sans vias, avec uniquement des pistes à angle droit, montable au mur comme une œuvre d'art — n'a aucun usage pratique, mais les schémas complets et le code source sont publiés sur le site de Grinberg, et il a envisagé de proposer des kits à ceux qui veulent vivre Linux à sa vitesse la plus lente.

Ne pas porter Linux vers le bas — émuler vers le haut : faire tourner sur le 4004 un émulateur de MIPS R3000, afin que le processeur émule la machine sur laquelle Linux a été initialement porté.

Le problème est reformulé comme de l'émulation : au lieu de faire tenir Linux dans 2 300 transistors, on donne au 4004 une machine logicielle sur laquelle il peut faire tourner Linux.

La cible émulée est choisie pour sa lignée — le MIPS R3000 de la DECstation 2100, exactement la machine sur laquelle Linux a été initialement porté.

Des tables de correspondance remplacent les opérations logiques que le silicium ne possède physiquement pas, le genre d'astuce dictée par les contraintes qui rend l'exploit possible tout court.

C'est vérifiable dans les moindres détails : les schémas et le code source sont publics, et le démarrage est mesurable — 4,76 jours.

Quand une plateforme ne peut pas exécuter un logiciel, enveloppez l'écart dans une couche d'émulation visant le foyer d'origine du logiciel — une machine lente qui se fait passer pour la machine que le code attend.

Ars Technica a couvert le projet en septembre 2024 comme une démonstration de la souplesse de Linux et des limites de l'émulation ; Grinberg a évoqué la vente de kits ou de cartes assemblées, mais rien n'a été confirmé dans la source. Son précédent record AVR de 2012 avait été surpassé par d'autres, ce qui a lancé ce projet.

VÉRIFIEZ LES SOURCES

Les sources

  1. Linux boots in 4.76 days on the Intel 4004 Ars Technica · arstechnica.com ·