Un hacker renommé a réalisé l’impossible en faisant fonctionner une version allégée de Linux sur une puce Intel 4 bits des années 1970. Bien que le démarrage prenne près de cinq jours, cet exploit insolite témoigne d’une créativité sans limite dans le monde du hacking.
Dmitry Grinberg est bien connu dans la communauté des hackers. Il a conçu le firmware des badges des participants à DefCon 32, qui intégraient un émulateur Game Boy Advance. Il a également réussi à faire tourner Doom sur ces badges alimentés par le RP 2350 de Raspberry Pi. DefCon a, toutefois, évincé Grinberg de l’événement parce qu’il était associé au concepteur du hardware du badge, Entropic Engineering, avec lequel les organisateurs avaient des tensions.
Le dernier projet de ce professionnel du hacking a été le défi de faire fonctionner Linux sur un Intel 4004 de 1971. Ce chip est le premier processeur commercial d’Intel et date de deux décennies avant Linux, rendant cette tâche quasiment impossible sans créativité.
Mon dernier projet : démarrer un Linux complet sur un intel 4004 de 1971 pour le plaisir, l’art, et sans profit : https://t.co/t3gVrscNcb#4004in2024
– Dmitry Grinberg (@dmitrygr) 20 septembre 2024
L’Intel 4004 était un processeur 4 bits fonctionnant à 740 kHz, composé de seulement 2 600 transistors et de 16 registres. Intel l’a conçu spécifiquement pour alimenter la calculatrice Busicom 141-PF, fabriquée au Japon, d’où sa capacité limitée à des opérations d’addition et de soustraction. Il ne possédait pas de fonctions logiques et avait environ quatre kilooctets de RAM, rendant l’exécution de Linux pratiquement impossible. C’est là que le sens créatif et le talent en hacking hardware et software de Grinberg ont joué un rôle crucial.
Il a d’abord créé un émulateur très basique du MIPS R3000 sur le 4004. Nick Evenson, ancien rédacteur pour Netcost-security.fr, note dans son article pour PC Gamer que le processeur MIPS R3000 date de 1988, soit juste au moment où Linus Torvalds écrivait la version originale de Linux.
« Ce chip provient de la même époque que la version originale de Linux, c’était donc un choix naturel pour cette tâche d’émulation, même si ce n’était pas facile à réaliser », déclare Evenson.
« Pas facile » en effet, étant donné qu’il s’agissait d’émuler un processeur 32 bits sur une puce 4 bits. Cependant, cela n’a pas freiné Grinberg.
En utilisant plusieurs composants vintage et davantage d’émulation hardware et de magie logicielle, Grinberg a fabriqué une carte de circuit personnalisée avec un affichage rudimentaire pour montrer qu’une distribution Debian basique pouvait démarrer jusqu’à une invite de commande. Cela dit, il ne risquait pas de battre des records de vitesse.
« Grinberg a conçu une carte de circuit personnalisée sans vias (chemins reliant les deux côtés de la carte) et uniquement avec des traces à angles droits pour un style rétro », remarque Ars Technica. « Elle est destinée à être accrochée au mur comme une œuvre d’art, exécutant lentement des commandes Linux sur plusieurs jours ou semaines. »
Même en étant overclocké à 790 kHz, la machine mettait neuf jours à démarrer. Après plusieurs ajustements, Grinberg a réussi à réduire ce temps à 4,76 jours. Il a considérablement accéléré sa vidéo du processus de démarrage pour rendre ce timing plus regardable (ci-dessus).

