Linux Kernel versie 5.13 voegt initiële ondersteuning toe voor de Apple M1-chip, de eerste SoC van desktopklasse onder het Apple Silicon-ontwerp.
Apple onthulde vorig jaar zijn eerste System-on-a-Chip-ontwerp van desktopklasse, de Apple M1, gebaseerd op dezelfde ARM-architectuur als de meeste smartphones en tablets. Terwijl Linux jarenlang goed heeft gewerkt op ARM-apparaten (zoals de Raspberry Pi), is de hardware van Apple sterk aangepast en vereist specifieke software-ondersteuning. Gelukkig zijn we nu een stap dichter bij het draaien van Linux op Apple Silicon.
Asahi Linux heeft eraan gewerkt om "een gepolijste Linux-ervaring" naar Apple Silicon Macs te brengen en heeft zijn code ingediend bij het Linux-project voor opname in de officiële Linux-kernel. Het eerste werk van de groep is samengevoegd met de Linux SoC-codebase en zal waarschijnlijk verschijnen als onderdeel van de komende Linux 5.13-update.
Het is opwindend om de eerste ondersteuning voor de nieuwe hardware van Apple in de Linux-kernel te zien, slechts een paar maanden nadat de eerste hardware op de markt kwam, maar het sleutelwoord daar is 'initieel'. Terwijl Linux
technisch gezien opstart op M1, zijn we nog ver verwijderd van het aansluiten van een Live USB-station en het klikken op een installatieknop. De huidige code bevat ondersteuning voor basisfunctionaliteit op laag niveau, zoals symmetrische multiverwerking via draaitafels, IRQ-afhandeling, seriële verbindingen en een framebuffer. Linux kan opstarten vanaf een opdrachtprompt, maar niet veel anders: er is nog niet eens volledige grafische ondersteuning.Terwijl de officiële kernelondersteuning voor M1-hardware gestaag vordert, zijn sommige mensen erin geslaagd om met verschillende hacks dichter bij een echte desktopervaring te komen. Corellium, een ontwikkelingsbedrijf dat gespecialiseerd is in ARM-virtualisatie, was in staat een bruikbaar Ubuntu-bureaublad op de M1 Mac Mini. Het meeste werk van Corellium wordt echter niet in de Linux-kernel opgenomen.
Corellium schreef over hoe de architectuur van de M1 verschilt van andere ARM-ontwerpen in een blogpost. "De bootloader, traditioneel iBoot genoemd, laadt een uitvoerbaar objectbestand in een formaat genaamd Mach-O, optioneel gecomprimeerd en verpakt in een ondertekend ASN.1-gebaseerd wrapperformaat genaamd IMG4. Ter vergelijking: normale Linux op 64-bits ARM begint als een plat binair beeld.' De groep zei verder: 'Als dat nog niet genoeg was, zou Apple ontwierpen hun eigen interruptcontroller, de Apple Interrupt Controller (AIC), die niet compatibel is met een van de belangrijkste ARM GIC normen. En dat niet alleen: de timer-interrupts - normaal gesproken verbonden met een reguliere per-CPU-interrupt op ARM - zijn dat ook in plaats daarvan doorgestuurd naar de FIQ, een diepzinnig architectonisch kenmerk dat vaker voorkomt in de oude 32-bits ARM dagen."
Appels M1-chipset wordt momenteel geleverd op de MacBook Air, MacBook Pro en Mac Mini. Het is een 5nm-chip met in totaal acht cores: vier krachtige cores en vier energiezuinige cores. Er is ook een Neural Engine voor machine learning-taken, evenals een acht-core GPU. Apple beloofde dat de M1 betere prestaties zou leveren dan de eerder gebruikte Intel CPU's, terwijl hij slechts ongeveer een vierde van de stroom zou gebruiken, en later testen in de echte wereld ondersteunde deze beweringen. Gelukkig ondersteunt de M1 het opstarten van niet-ondertekende/aangepaste kernels volledig, dus het draaien van Linux vereist geen beveiligingslekken die later kunnen worden gepatcht.
Apple's eigen macOS is al een geweldig besturingssysteem, maar het hebben van desktop Linux als optie zou een sterk verkoopargument kunnen zijn voor sommige potentiële MacBook- en Mac Mini-kopers. Apple heeft in de loop der jaren kritiek gekregen omdat het bepaalde aspecten van macOS heeft geblokkeerd of platformonafhankelijke standaarden heeft opgegeven ten gunste van propriëtaire alternatieven. MacOS ondersteunt bijvoorbeeld nog steeds niet de platformonafhankelijke Vulkan API voor grafische afbeeldingen, alleen de eigen Metal API van het bedrijf.