Corellium ir prezentējis pielāgotu Linux versiju darboties ar jaunākiem Apple datoriem, kas aprīkoti ar mikroshēmu M1, Linux kodola variants, kas ir saderīgs ar Apple M1 mikroshēmu, tiek izlaists ar GPLv2 licenci, un ielāpumi ir nosūtīti iekļaušanai galvenajā kodolā.
Corellium ir liela pieredze migrācijā no Linux uz Apple mikroshēmām izmanto mobilajās ierīcēs, piemēram, iPhone. Agrīnā migrācijas posmā testētāji tika mudināti, ka daudzi no Apple M1 komponentiem ir balstīti uz tehnoloģijām, kuras Apple jau izmanto citās SoC.
Bet draiveru rakstīšanas procesā kļuva skaidrs, ka ne viss ir tik vienkārši un Apple M1 mikroshēma ietver daudzus nestandarta risinājumus. Linux atbalsts ARM 64 bitu SoC ir balstīts uz kopīgiem blokiem un programmaparatūras saskarnes, taču Apple M1 gandrīz neizmanto tipiskus risinājumus.
Piemēram, parastajos ARM SoC procesoros procesoru kodolu aktivizēšana tiek veikta caur PSCI (Power State Coordination Interface), ko nodrošina programmaparatūra un Apple M1 tas prasa manipulācijas ar MMIO reģistru.
Šajā posmā Corellium izstrādātāji apsteidza Asahi Linux projektu, kuru nodibināja Hektors Martins, lai Linux pārnestu uz sistēmām ar Apple M1 mikroshēmu, kas līdz šim ir aprobežojusies ar reverso inženieriju un eksperimentiem ar sāknēšanas ielādētāju. Tomēr Asahi Linux galvenais mērķis ir ne tikai Linux sāknēšana, bet arī pilnīgs atbalsts enerģijas pārvaldības mehānismiem un Apple M1 GPU iespēju izmantošana, kurā tiek izmantots īpašs instrukciju kopums.
Corellium ielāpus aprobežojas ar sāknēšanas un atbalsta nodrošināšanu īpašām funkcijām no M1 mikroshēmām, kas saistītas ar SMP režīmu, taimeri, pārtraukumi, dīkstāves stāvokļa apstrāde un inicializēšana.
L Asahi Linux pārstāvji atzinīgi novērtēja Corellium ielāpu izlaišanu un pauda vēlmi sniegt salīdzinošās pārskatīšanas palīdzību, lai paātrinātu Linux kodola ieviešanu.
Turklāt Alyssa Rosenzweig (no Collabora, kas izstrādā Panfrost GPU Mali draiveri) ir arī publicējusi otro ziņojumu par Apple M1 GPU reverso inženieriju un atvērtā koda draiveru izstrādi.
Pašreizējā posmā ir sagatavots kontroliera sākotnējais prototips, kas var uzzīmēt trīsstūrus, izmantojot GPU. M1 GPU pirmie virsotnes un fragmentu ēnotāji tiek kodēti arī ar roku. Kodola draiveris IOKit tiek izmantots, lai mijiedarbotos ar GPU.
Apple M1 izmanto arī savu AIC pārtraukuma kontrolieri (Apple Interrupt Controller), kas lielākoties tas nav saderīgs ar standarta ARM GIC un atšķirīgs pārtraukumu sasaistīšanas mehānisms no taimera. Turklāt, lai organizētu mijiedarbību starp vairākiem procesoriem, tiek izmantoti atsevišķi reģistri, kas kontrolē IPI (starpprocesoru pārtraukumus).
Lai sāktu datorā Mac Mini M1 ar Apple M1 mikroshēmu, tiek sagatavots lietošanai gatavs rootfs attēls, uzbūvēta, pamatojoties uz Ubuntu Raspberry Pi būvējumu.
Lai instalētu, attēls ir jākopē diskā USB, pievienojiet šo ierīci USB-C pieslēgvietai un palaidiet datoru režīmā 1TR (Atkopšanas OS), sāknēšanas laikā nospiežot un turot ieslēgšanas / izslēgšanas pogu. Pēc komandrindas parādīšanās jums jāpalaiž skripts linuxsetup.sh, kas instalēs kodolu un konfigurēs vidi.
Tas ir tad, kad Linux sāks darboties, tā kā, lai atgrieztos macOS, 1TR režīmā ir jāpalaiž komanda "bputil -n".
Gatavs veidojums atbalsta USB, I2C un DART, tīklam ir ieteicams izmantot ārējo USB adapteri, savukārt grafikas aparatūras paātrinājums un paplašinātās perifērijas ierīces vēl netiek atbalstītas. Bluetooth atbalsta nodrošināšanai ir nepieciešams uzrakstīt jaunu draiveri, jo tiek izmantots nestandarta PCIe protokols.
Fuente: https://corellium.com