Po portování Linuxu na Sega MegaDrive byla implementována možnost spuštění jádra Linuxu s sadou nástrojů Busybox na herní konzoli Atari Jaguar, vydané v roce 1993. Konzole byla vybavena CPU Motorola 68000, dodávána s 2 MB RAM a jako trvalé úložiště mohla používat cartridge s kapacitou až 6 MB. Zařízení bylo vybaveno dvěma koprocesory: Tom (GPU s 32bitovou architekturou RISC + 64bitový procesor pro zpracování videa + 64bitový procesor pro logické operace) a Jerry (DSP s 32bitovou architekturou RISC pro zpracování zvuku).
Analogicky k portu pro Sega MegaDrive pro spuštění jádra Linuxu na CPU Motorola 68000, které nemá hardwarový modul pro správu paměti (MMU), bylo standardní jádro 7.2.0-rc1 sestaveno v režimu "NOMMU" používaném pro mikrokontroléry, což umožňuje použití plochého modelu paměti s lineárním adresním prostorem (dříve se na vývoji pro práci bez MMU pracovalo ve fork kernu uClinux, ale následně byly přejaty do hlavního jádra ve formě volby "NOMMU"). Problém s nedostatkem operační paměti byl vyřešen jinak, aktivací mechanismu execute-in-place (XIP), který umožňuje přímo vykonávat kód jádra z ROM bez kopírování do operační paměti.
Operační paměť na zařízení je umístěna na adrese 0x000000, zatímco ROM (cartridge) na adrese 0x80000, a proto byly komponenty jádra Linuxu rozděleny do dvou samostatných oblastí paměti: sekce .rodata a .text s konstantami a kódem byly umístěny na cartridge, zatímco sekce .data a .bss s proměnlivými daty v operační paměti. Protože CPU 68000 hledá tabulku vektorů přerušení na adrese 0x0, zatímco jádro je fakticky umístěno na cartridge, jejíž obsah je mapován na adrese 0x80000, byl rovněž použit hack s kopírováním vektorů přerušení do RAM.
Problém s absencí časovače v CPU Motorola 68000 byl vyřešen využitím časovačů používaných v DSP pro syntézu zvuku. Tyto časovače byly použity k generování přerušení pro aktivaci plánovače úloh. Pro zobrazování zpráv jádra během zavádění byl napsán speciální ovladač konzoly, který prováděl výstup simulací paralelního portu přes výstupy TXD a RXD, ovládané přes DSP procesor.
Pro sestavení komponentů uživatelského prostoru byl použit nástroj Buildroot s patchem od projektu LinuxMD. Pro úsporu paměti při inicializaci byla přímo vyvolána příkazová shell „\/bin\/busybox sh“, funkce malloc v knihovně uClibc byla nahrazena zjednodušenou variantou malloc-simple, která neukládá další metadata, a místo plnohodnotného bootloaderu, jako je U-Boot, byla provedena přímá předávka řízení jádru příkazem „jmp $80000“.

Zdroj: opennet.ru
