Nucleul Linux va avea în curând suport inițial pentru chipset-ul M1 de la Apple

Versiunea Linux Kernel 5.13 va adăuga suport inițial pentru cipul Apple M1, primul SoC de clasă desktop sub designul Apple Silicon.

Apple a dezvăluit anul trecut primul său design System-on-a-Chip de clasa desktop, Apple M1, bazat pe aceeași arhitectură ARM ca majoritatea smartphone-urilor și tabletelor. În timp ce Linux a funcționat bine pe dispozitivele ARM (cum ar fi Raspberry Pi) de ani de zile, hardware-ul Apple este puternic personalizat și necesită suport software specific. Din fericire, acum suntem cu un pas mai aproape de a rula Linux pe Apple Silicon.

Asahi Linux a lucrat pentru a aduce „o experiență Linux sofisticată” pentru Apple Silicon Mac și și-a trimis codul către proiectul Linux pentru a fi inclus în kernel-ul oficial Linux. Lucrarea inițială a grupului a fost fuzionată în baza de cod Linux SoC și va ajunge probabil ca parte a viitoarei actualizări Linux 5.13.

Este interesant să vedem că suportul inițial pentru noul hardware Apple ajunge în nucleul Linux la doar câteva luni după ce primul hardware a început să fie livrat, dar cuvântul cheie de acolo este „inițial”. În timp ce Linux

tehnic pornește pe M1, suntem încă departe de a conecta o unitate USB Live și de a face clic pe un buton de instalare. Codul actual include suport pentru funcționalitatea de bază de nivel scăzut, cum ar fi multiprocesare simetrică prin mese de rotire, Tratarea IRQ, conexiuni seriale și un framebuffer. Linux poate porni la un prompt de comandă, dar nu prea multe altele - nu există încă suport complet pentru grafică.

Linux pe Apple M1 Mac Mini (Credit: Asahi Linux)

În timp ce suportul oficial de kernel pentru hardware-ul M1 progresează într-un ritm constant, unii oameni au reușit să se apropie de o adevărată experiență desktop cu diverse hack-uri. Corellium, o firmă de dezvoltare specializată în virtualizarea ARM, a reușit să creeze un desktop Ubuntu utilizabil pe M1 Mac Mini. Cu toate acestea, cea mai mare parte a muncii lui Corellium nu este transferată în nucleul Linux.

Corellium a scris despre modul în care arhitectura lui M1 diferă de alte modele ARM într-o postare pe blog. „Bootloader-ul, denumit în mod tradițional iBoot, încarcă un fișier obiect executabil într-un format numit Mach-O, opțional comprimat și împachetat într-un format de wrapper bazat pe ASN.1 semnat, numit IMG4. Pentru comparație, Linux normal pe 64 de biți ARM începe ca o imagine binară plată.” Grupul a continuat spunând: „Dacă asta nu ar fi suficient, Apple și-au proiectat propriul controler de întrerupere, Apple Interrupt Controller (AIC), care nu este compatibil cu niciunul dintre principalele GIC ARM standardele. Și nu numai: întreruperile temporizatorului - conectate în mod normal la o întrerupere obișnuită per CPU pe ARM - sunt direcționat în schimb către FIQ, o caracteristică arhitecturală abstrusă, văzută mai frecvent în vechiul ARM pe 32 de biți zile.”

de la Apple Chipset M1 se livrează în prezent pe MacBook Air, MacBook Pro și Mac Mini. Este un cip de 5 nm cu opt nuclee în total: patru nuclee de înaltă performanță și patru nuclee eficiente din punct de vedere energetic. Există, de asemenea, un Neural Engine pentru sarcini de învățare automată, precum și un GPU cu opt nuclee. Apple a promis că M1 va oferi performanțe mai bune decât procesoarele Intel utilizate anterior, folosind doar aproximativ un sfert din putere, iar mai târziu testare în lumea reală a susținut aceste afirmații. Din fericire, M1 acceptă pe deplin pornirea nucleelor ​​nesemnate/personalizate, astfel încât rularea Linux nu necesită nicio exploatare de securitate care ar putea fi corectată ulterior.

MacOS propriu al Apple este deja un sistem de operare grozav, dar având ca opțiune Linux desktop ar putea fi un punct de vânzare puternic pentru unii potențiali cumpărători de MacBook și Mac Mini. De-a lungul anilor, Apple s-a confruntat cu critici pentru blocarea unor aspecte ale macOS sau abandonarea standardelor multiplatforme în favoarea alternativelor proprietare. De exemplu, macOS încă nu acceptă API-ul Vulkan multiplatform pentru grafică, numai propriul API Metal al companiei.