Le code source est désormais disponible sur GitHub
WTF ?! Nintendo a positionné la Famicom pour qu’elle ressemble davantage à un ordinateur qu’à son homologue occidental – la NES – d’où le nom Family Computer. Le stockage et la mémoire supplémentaires du module complémentaire Disk System ont poussé son potentiel plus loin, ce qu’un moddeur a démontré en portant un système d’exploitation de type Unix sur la console.
Une vidéo récente du moddeur « decrazyo » montre comment il a converti un système d’exploitation ressemblant à Linux pour qu’il fonctionne sur une NES non modifiée. Le code source est disponible sur GitHub pour toute personne souhaitant l’essayer ou l’améliorer.
Le système répond aux exigences de base d’un système d’exploitation PC qui peut théoriquement exécuter diverses applications et fonctionne entièrement sur le matériel lancé par Nintendo dans les années 1980. Bien que la NES qui définissait le marché des consoles à l’époque ne dispose pas des spécifications nécessaires pour ce projet, son équivalent amélioré uniquement au Japon – le Famicom Disk System (FDS) – dispose de suffisamment de mémoire et de stockage supplémentaires pour accomplir la tâche avec quelques ajustements importants. Le clavier officiel de la console facilite également la saisie.
Au lieu d’essayer de porter Linux, decrazyo a construit un système d’exploitation qui répondait à des critères de type Unix tels que la séparation du noyau entre l’utilisateur et le matériel, un système de fichiers hiérarchique, un multitâche préemptif et un shell reconnaissable de type Unix. La base choisie était Little Unix (LUnix), un système conçu pour le Commodore 64, qui ressemble largement aux spécifications matérielles du FDS.
Le processus de conversion impliquait la définition de la carte mémoire, l’écriture d’un nouveau code d’initialisation du système, la réorganisation de la façon dont LUnix gère la mémoire pour correspondre à la RAM de la Famicom et l’écriture de nouveaux pilotes pour le clavier et l’unité de traitement d’image. Les nouveaux pilotes ont été possibles grâce à une documentation approfondie fournie par d’autres moddeurs et développeurs au fil des décennies.
L’écriture d’un nouveau pilote de disque a été la partie la plus difficile car, contrairement à la plupart des lecteurs de disque, le FDS lit les secteurs de manière séquentielle et non arbitraire. Pourtant, Decrazyo a réussi à créer un pilote qui traite le disque en lecture seule, lui permettant enfin de démarrer un shell.
Bien que le produit fini présente de sérieux défauts, tels que des problèmes visuels et des performances lentes dues au lecteur de disque, cela prouve que la NES peut exécuter un système d’exploitation de style Unix. Il a été testé sur un émulateur NES fonctionnant à une vitesse de 1 000 % pour compenser les performances, mais decrazyo le montre fonctionnant sur une vraie NES américaine via une cartouche ROM Everdrive.
L’utilisation d’une cartouche améliorée pour déplacer le code vers le chipset de la console reste probablement conforme aux règles de l’expérience, car de nombreuses cartouches NES officielles utilisaient du matériel supplémentaire pour étendre les capacités de la console. Pourtant, voir quelqu’un essayer l’OS sur un vrai FDS serait intéressant.
Un autre moddeur a construit un système d’exploitation uniquement graphique sur la NES en 2022. Bien que l’absence de clavier rende la saisie difficile, il prend en charge de nombreuses applications.