Développeur cakehonolulu a porté Linux sur la console de jeu Atari Jaguar de 1993. Il a réussi à charger le noyau Linux 7.2.0-rc1+ et un environnement utilisateur minimal basé sur BusyBox, cela ne concerne pas seulement un émulateur, mais également un lancement sur du matériel réel via une cartouche.
La tâche n'était pas triviale en raison de l'architecture Jaguar. La console dispose de seulement 2 Mo de RAM, jusqu'à 6 Mo de ROM sur la cartouche et d'un processeur principal Motorola 68000 sans MMU. Pour ce type de matériel, le schéma de chargement classique de Linux n'est pas adapté, c'est pourquoi le développeur a utilisé le mode NOMMU pour m68k/uClinux et un modèle de mémoire plate.
Pour que le noyau s'insère dans les contraintes de la console, il a été divisé entre la mémoire et la cartouche : les sections immuables comme .text et .rodata s'exécutent directement depuis la ROM selon le schéma XIP, tandis que les sections modifiables .data et .bss sont placées en RAM. Pour la sortie précoce des messages, le chip DSP Jerry a été utilisé, qui possède des lignes série TXD/RXD et des minuteries, et plus tard, le développeur a ajouté un simple pilote de console pour le chip Tom, afin que la sortie fonctionne également sur la console réelle. Ces détails sont décrits dans la section sur ce qui est nécessaire pour que Linux se charge sur le Jaguar.
L'environnement utilisateur a dû être réduit au minimum. En l'absence de MMU, des binaires FLAT sont utilisés au lieu de fichiers ELF ; BusyBox est lancé directement comme shell, sans installation standard d'un ensemble de liens d'applet, car cela entraînait un manque de mémoire. Une configuration de uClibc via Buildroot a également été nécessaire, y compris une stratégie d'allocation de mémoire malloc-simple plus simple ; cela est discuté en détail dans la section Userspace.
L'utilité pratique de ce port est quasi inexistante : l'Atari Jaguar ne devient pas un ordinateur Linux fonctionnel. Cependant, l'expérience montre bien jusqu'où il est possible d'étendre le support de l'ancien matériel sous Linux et à quel point l'architecture m68k reste robuste. Les sources du noyau modifié ont été publiées dans le dépôt cakehonolulu/linux_jag.
Source : linux.org.ru
