Vývojár cakehonolulu portoval Linux na hernú konzolu Atari Jaguar z roku 1993. Na konzole sa podarilo načítať jadro Linux 7.2.0-rc1+ a minimálne užívateľské prostredie založené na BusyBox, pričom ide nielen o emulátor, ale aj o spustenie na reálnom hardvéri cez cartridge.
Úloha bola netriviálna kvôli architektúre Jaguar. Konzola má len 2 MB RAM, do 6 MB ROM na cartridge a hlavným procesorom je Motorola 68000 bez MMU. Pre takýto hardvér zvyčajná schéma načítania Linuxu nevyhovuje, a preto vývojár použil NOMMU režim pre m68k/uClinux a plochý model pamäte.
Aby sa jadro vmestilo do obmedzení konzoly, rozdelili ho medzi pamäť a cartridge: nemenné sekcie ako .text a .rodata sa vykonávajú priamo z ROM podľa schémy XIP, pričom meniteľné .data a .bss sú umiestnené v RAM. Na skoré výstupy správ bol použitý DSP čip Jerry, ktorý má sériové linky TXD/RXD a časovače, a neskôr vývojár pridal jednoduchý konzolový ovládač pre čip Tom, aby výstupy fungovali aj na reálnej konzole. Tieto detaily sú popísané v sekcii o tom, čo je potrebné pre načítanie Linuxu na Jaguar.
Užívateľské prostredie muselo byť maximálne zredukované. Kvôli absencii MMU sa používajú nie ELF súbory, ale FLAT binárky; BusyBox sa spúšťa priamo ako shell bez štandardného nastavenia sady odkazov applet, pretože to viedlo k nedostatku pamäte. Tiež bolo potrebné nastaviť uClibc cez Buildroot, vrátane jednoduchšej stratégie prideľovania pamäte malloc-simple; podrobnejšie je to rozobraté v sekcii Userspace.
Praktická užitočnosť takého portu je takmer nulová: Atari Jaguar sa nestane pohodlným Linux počítačom. Napriek tomu experiment dobre ukazuje, ako ďaleko je možné pretiahnuť podporu starého hardvéru v Linuxe a aká dlhá je životnosť architektúry m68k. Zdroje modifikovaného jadra sú publikované v repozitári cakehonolulu/linux_jag.
Zdroj: linux.org.ru
