„Corellium“ praneša apie savo Linux prievadą į M1 lustus

„Corellium“ išleido „Linux“ versiją, pritaikytą veikti naujuose „Apple“ kompiuteriuose su „M1“ lustu . Su „Apple M1“ lustu suderinamas „Linux“ branduolio variantas išleistas pagal GPLv2 licenciją, o pataisymai buvo pateikti įtraukti į pagrindinį branduolį.

„Corellium“ turi didelę patirtį migruojant „Linux“ į „Apple“ lustus, naudojamus mobiliuosiuose įrenginiuose, tokiuose kaip „iPhone“. Pradiniame migracijos etape testuotojai buvo skatinami sužinoti, kad daugelis „Apple M1“ komponentų yra pagrįsti technologijomis, kurias „Apple“ jau naudoja kituose SoC.

Tačiau tvarkyklės kūrimo proceso metu paaiškėjo, kad viskas nėra taip paprasta, ir „Apple M1“ lustas apima daug nestandartinių sprendimų. „Linux“ palaikymas 64 bitų ARM SoC remiasi įprastais konstrukciniais blokais ir programinės įrangos sąsajomis, tačiau „Apple M1“ beveik nenaudoja jokių tipinių sprendimų.

Pavyzdžiui, įprastuose ARM SoC procesoriaus branduolio aktyvinimas atliekamas per PSCI (maitinimo būsenos koordinavimo sąsają), kurią teikia programinė įranga, o „Apple M1“ tam reikia manipuliuoti MMIO registru.

Šiame etape „Corellium“ kūrėjai aplenkė Héctoro Martino įkurtą „Asahi Linux“ projektą, skirtą „Linux“ perkėlimui į sistemas su „Apple M1“ lustu, kuris iki šiol apsiribojo atvirkštine inžinerija ir eksperimentais su įkrovos įkrovikliu. Tačiau pagrindinis „Asahi Linux“ tikslas yra ne tik paleisti „Linux“, bet ir užtikrinti visišką energijos valdymo mechanizmų palaikymą bei išnaudoti „Apple M1“ GPU, kuris naudoja specifinį instrukcijų rinkinį, galimybes.

„Corellium“ pataisos apsiriboja paleidimo teikimu ir palaikymu konkrečioms M1 lusto funkcijoms, susijusioms su SMP režimu, laikmačiais, pertraukimais, neveikos būsenos apdorojimu ir inicializavimu.

„Asahi Linux“ atstovai palankiai įvertino „Corellium“ pataisų išleidimą ir išreiškė norą teikti kolegų vertinimo pagalbą, kad būtų paspartintas „Linux“ branduolio diegimas plačiame pasaulyje.

Be to, buvo teigiama, kad Alyssa Rosenzweig (iš „Collabora“, kurianti „Panfrost GPU Mali“ tvarkyklę) paskelbė antrąją ataskaitą apie atvirkštinio inžinerijos ir „Apple M1“ GPU atvirojo kodo tvarkyklių kūrimą.

Dabartiniame etape buvo parengtas pradinis valdiklio prototipas, kuris, naudodamas GPU, gali nubrėžti trikampius. M1 GPU pirmosios viršūnės ir fragmentų šešėliai taip pat koduojami ranka. Branduolio tvarkyklė IOKit naudojama sąveikai su GPU.

„Apple M1“ taip pat naudoja savo „Apple Interrupt Controller“ (AIC), kuris iš esmės nesuderinamas su standartiniais ARM GIC , ir kitokį mechanizmą pertraukimams iš laikmačio susieti. Be to, atskiri registrai, valdantys IPI (tarpprocesorinius pertraukimus), naudojami sąveikai tarp kelių procesorių valdyti.

Norint paleisti „Mac Mini M1“ kompiuterį su „Apple M1“ lustu, paruošiamas naudoti paruoštas „rootfs“ atvaizdas , sukurtas remiantis „Ubuntu“ versija, skirta „Raspberry Pi“.

Norėdami įdiegti, nukopijuokite atvaizdą į USB atmintinę, prijunkite atmintinę prie USB-C prievado ir paleiskite kompiuterį 1TR režimu (atkūrimo OS), paleidimo metu laikydami nuspaustą maitinimo mygtuką. Kai pasirodys komandinė eilutė, paleiskite scenarijų „linuxsetup.sh“, kuris įdiegs branduolį ir sukonfigūruos aplinką.

Šiuo metu pradės veikti „Linux“, o norint grąžinti „macOS“, reikia paleisti komandą „bputil -n“ 1TR režimu.

„Ready build“ palaiko USB, I2C ir DART, siūloma naudoti išorinį USB adapterį tinklui, o grafikos aparatinės įrangos pagreitis ir išplėstiniai periferiniai įrenginiai dar nepalaikomi. „Bluetooth“ palaikymui reikia parašyti naują tvarkyklę, nes naudojamas nestandartinis PCIe protokolas.

Šaltinis: https://corellium.com


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje