Linux uvedený na trh na hernej konzole Atari Jaguar

Po prenose Linux Sega MegaDrive teraz dokáže spustiť jadro Linux s balíkom nástrojov Busybox na hernej konzole Atari Jaguar, ktorá bola vydaná v roku 1993. Konzola mala procesor Motorola 68000, 2 MB RAM a na trvalé ukladanie mohla používať kazety s kapacitou až 6 MB. Zariadenie bolo vybavené dvoma koprocesormi: Tom (32-bitový RISC GPU, 64-bitový videoprocesor a 64-bitový logický procesor) a Jerry (32-bitový RISC DSP pre zvuk).

Podobné portu Sega MegaDrive pre spúšťanie jadra Linux Na procesore Motorola 68000, ktorému chýba hardvérová jednotka správy pamäte (MMU), bolo základné jadro 7.2.0-rc1 skompilované v režime „NOMMU“ používanom pre mikrokontroléry, ktorý umožňuje model plochej pamäte s lineárnym adresným priestorom. (Skôr boli vývojové riešenia pre prácu bez MMU vyvinuté vo forku jadra uClinux, ale neskôr boli prijaté do hlavného jadra ako možnosť „NOMMU“.) Problém s nedostatočnou RAM bol riešený inak, použitím mechanizmu execute-in-place (XIP), ktorý umožňuje priame vykonávanie kódu jadra z ROM bez jeho kopírovania do RAM.

Pamäť RAM v zariadení sa nachádza na adrese 0x000000 a pamäť ROM (kazeta) sa nachádza na adrese 0x80000, respektíve komponenty jadra. Linux Tabuľky vektorov prerušenia boli rozdelené do dvoch samostatných pamäťových oblastí: sekcie .rodata a .text, obsahujúce konštanty a kód, sa nachádzali na kazete, zatiaľ čo sekcie .data a .bss, obsahujúce premenné dáta, sa nachádzali v pamäti RAM. Keďže procesor 68000 hľadá tabuľku vektorov prerušenia na adrese 0x0 a jadro sa v skutočnosti nachádza na kazete, ktorej obsah sa odráža na adrese 0x80000, na kopírovanie vektorov prerušenia do pamäte RAM sa použil ďalší hack.

Chýbajúci časovač v procesore Motorola 68000 bol vyriešený využitím časovačov používaných v DSP na syntézu zvuku. Tieto časovače sa používali na generovanie prerušení na aktiváciu plánovača úloh. Na zobrazovanie správ jadra počas bootovania bol napísaný samostatný ovládač konzoly, ktorý simuloval paralelný port cez piny TXD a RXD, riadený procesorom DSP.

Na zostavenie komponentov používateľského priestoru sa použila sada nástrojov Buildroot s opravami z projektu. LinuxMD. Pre úsporu pamäte počas inicializácie bol priamo volaný príkazový shell „/bin/busybox sh“, funkcia malloc v knižnici uClibc bola nahradená zjednodušenou verziou malloc-simple, ktorá neukladá ďalšie metadáta, a namiesto plnohodnotného bootloaderu ako U-Boot bola kontrola prenesená priamo na jadro pomocou príkazu „jmp $80000“.



Zdroj: opennet.ru
Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster