Udvikler: cakehonolulu porteret Linux på Atari Jaguar-spillekonsollen 1993. Konsollen formåede at indlæse kernen. Linux 7.2.0-rc1+ og et minimalt brugermiljø baseret på BusyBox, og vi taler ikke kun om emulatoren, men også om at køre den på rigtig hardware via en kassette.
Opgaven var udfordrende på grund af Jaguarens arkitektur. Konsollen har kun 2 MB RAM, op til 6 MB ROM på kassetten og en Motorola 68000-hovedprocessor uden en MMU. For sådan hardware er opstartssekvensen typisk. Linux passer ikke, så udvikleren brugte NOMMU-tilstand for m68k/uClinux og flad hukommelsesmodel.
For at tilpasse kernen til konsollens begrænsninger blev den opdelt mellem hukommelse og kassette: uforanderlige sektioner som .text og .rodata udføres direkte fra ROM ved hjælp af XIP-skemaet, mens foranderlige sektioner som .data og .bss gemmes i RAM. Tidlig beskedoutput blev opnået ved hjælp af Jerry DSP-chippen, som har serielle TXD/RXD-linjer og timere. Senere tilføjede udvikleren en simpel konsoldriver til Tom-chippen for at sikre, at outputtet også ville fungere på en rigtig konsol. Disse detaljer er beskrevet i afsnittet om hvad der kræves Linux til download til Jaguar.
Brugermiljøet måtte strippes ned så meget som muligt. På grund af manglen på en MMU bruges FLAT-binære filer i stedet for ELF-filer; BusyBox kører direkte som en shell uden standardinstallationen af applet-links, da dette ville føre til hukommelsesudmattelse. Konfiguration af uClibc via Buildroot var også nødvendig, inklusive den enklere malloc-simple hukommelsesallokeringsstrategi; dette diskuteres mere detaljeret i afsnittet. Brugerspace.
Der er næsten ingen praktisk anvendelse til en sådan port: Atari Jaguar bliver ikke til en praktisk Linux-computer. Men eksperimentet viser tydeligt, hvor langt understøttelsen af gammel hardware kan udvides i Linux Og hvor robust er m68k-arkitekturen? Kildekoden til den modificerede kerne er publiceret i repository'et. cakehonolulu/linux_jag.
Kilde: linux.org.ru
