Linux töötab mÀngukonsoolil Atari Jaguar

PĂ€rast Linuxi portimist Sega MegaDrive'ile vĂ”imaldati Linuxi kerneli kĂ€ivitamist Busybox utiliitide komplektiga mĂ€ngukonsoolil Atari Jaguar, mis ilmus 1993. aastal. Seade oli varustatud CPU Motorola 68000, millel oli 2 MB RAM ja millel vĂ”is pideva salvestusena kasutada kuni 6 MB mĂ€luga kartridĆŸe. Seade oli varustatud kahe kooprotsessoriga: Tom (GPU, millel on 32-bitine RISC arhitektuur + 64-bitine video töötlemise protsessor + 64-bitine loogiliste operatsioonide protsessor) ja Jerry (DSP, millel on 32-bitine RISC arhitektuur, et hallata heli).

Nagu Sega MegaDrive'i sadam Linuxi tuuma kĂ€itamiseks Motorola 68000 protsessoril, millel puudub mĂ€luhalduse (MMU) riistvaramoodul, kompileeriti vaikimisi tuum 7.2.0-rc1 mikrokontrollerite reĆŸiimis "NOMMU", mis vĂ”imaldab kasutada tasapinnalist mĂ€lu mudelit, millel on lineaarne aadressiruum (varem töötati MMU vabade lahenduste kallal uClinuxi tuuma forkis, kuid seejĂ€rel vastu vĂ”etud peatuuma variandina "NOMMU"). Probleem piiratud operatiivmĂ€lu osas lahendati teisiti, kasutades execute-in-place (XIP) mehhanismi, mis vĂ”imaldab tuuma koodi otse PZUs kĂ€itada ilma selle kopeerimiseta operatiivmĂ€lu.

Seadmestiku RAM-i aadress on 0x000000 ja ROM (kassett) aadressil 0x80000. SeetĂ”ttu on Linuxi sĂŒdamiku komponendid jagatud kaheks eraldi mĂ€lupiirkonnaks: .rodata ja .text sektsioonid, mis sisaldavad konstande ja koodi, asuvad kassettis, samas kui .data ja .bss sektsioonid koos muudetava teabega asuvad töömĂ€lu. Kuna CPU 68000 otsib katkestustabelit aadressilt 0x0 ja sĂŒdamik asub tegelikult kassettis, mille sisu peegeldub aadressil 0x80000, rakendati veel ĂŒhte nipi, kopeerides katkestusvektoreid RAM-i.

Probleem, et Motorola 68000 CPU-l puudus ajastustihend, lahendati DSP-s kasutatavate ajastite kaasamisega helisĂŒntesis. Need ajastid kasutati katkestuste genereerimiseks ĂŒlesande planeerija aktiveerimiseks. SĂŒdamiku sĂ”numite edastamiseks laadimise ajal kirjutati eraldi konsooldraiver, mis simuleeris paralleelporti SID-d ja RXD vĂ€ljundite kaudu, mida juhtis DSP-protsessor.

Kasutajaruumi komponentide kogumise jaoks kasutati Buildrooti tööriistu koos LinuxMD projekti plaastritega. MĂ€lusÀÀstlikkuse huvides kutsuti otse ĂŒles kĂ€sklustehasesse "/bin/busybox sh", malloc funktsioon uClibcis asendati lihtsustatud malloc-simple variandiga, mis ei salvestanud lisametainfot, ja asemel, et kasutada tĂ€isversiooni laadurit nagu U-Boot, tehti otse edastus juhtimiseks tuuma kĂ€suga "jmp $80000".



Allikas: opennet.ru
Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster