Vývojář cakehonolulu portoval Linux na herní konzoli Atari Jaguar v roce 1993. Na konzoli se podařilo spustit jádro Linux 7.2.0-rc1+ a minimální uživatelské prostředí založené na BusyBox, a to nejen na emulátoru, ale i na skutečném hardwaru přes cartridge.
Úkol nebyl triviální kvůli architektuře Jaguar. Konzole má pouze 2 MB RAM, až 6 MB ROM na cartridgi a hlavní procesor Motorola 68000 bez MMU. Pro takový hardware obvyklý způsob bootování Linuxu nevyhovuje, proto vývojář použil NOMMU režim pro m68k/uClinux a plochý model paměti.
Aby se jádro vešlo do omezení konzole, bylo rozděleno mezi pamětí a cartridge: neměnné sekce jako .text a .rodata se provádějí přímo z ROM plánem XIP, zatímco měnitelné .data a .bss jsou umístěny v RAM. Pro časný výstup zpráv byl použit DSP čip Jerry, který má sériové linky TXD/RXD a časovače, a později vývojář přidal jednoduchý konzolový ovladač pro čip Tom, aby výstup fungoval i na skutečné konzoli. Tyto detaily jsou popsány v sekci o tom, co je potřeba pro zavedení Linuxu na Jaguar.
Uživatelské prostředí muselo být maximálně zredukováno. Kvůli absenci MMU se používají nikoli ELF soubory, ale FLAT binárky; BusyBox se spouští přímo jako shell, bez standardní instalace sady odkazů na applet, protože to vedlo k nedostatku paměti. Také byla potřeba konfigurace uClibc přes Buildroot, včetně jednodušší strategie alokace paměti malloc-simple; více je podrobně popsáno v sekci Userspace.
Praktický přínos takového portu je téměř žádný: Atari Jaguar se nestává pohodlným Linux počítačem. Experiment však dobře ukazuje, jak daleko lze posunout podporu starého hardwaru v Linuxu a jak odolná zůstává architektura m68k. Zdroje modifikovaného jádra byly zveřejněny v repozitáři cakehonolulu/linux_jag.
Zdroj: linux.org.ru
