Linux-kernen vil snart have indledende understøttelse af Apples M1-chipsæt

Linux Kernel version 5.13 vil tilføje indledende understøttelse af Apple M1-chippen, den første desktop-klasse SoC under Apple Silicon-designet.

Apple afslørede sit første desktop-klasse System-on-a-Chip-design sidste år, Apple M1, baseret på den samme ARM-arkitektur som de fleste smartphones og tablets. Mens Linux har fungeret godt på ARM-enheder (som Raspberry Pi) i årevis, er Apples hardware stærkt tilpasset og kræver specifik softwaresupport. Heldigvis er vi nu et skridt tættere på at køre Linux på Apple Silicon.

Asahi Linux har arbejdet på at bringe "en poleret Linux-oplevelse" til Apple Silicon Macs og har indsendt sin kode til Linux-projektet til inklusion i den officielle Linux-kerne. Gruppens indledende arbejde er blevet flettet ind i Linux SoC-kodebasen og vil sandsynligvis ankomme som en del af den kommende Linux 5.13-opdatering.

Det er spændende at se den første support til Apples nye hardware ankomme til Linux-kernen kun et par måneder efter, at den første hardware startede med at sende, men nøgleordet der er 'initial'. Mens Linux

teknisk set starter på M1, er vi stadig langt væk fra at tilslutte et Live USB-drev og klikke på en installationsknap. Den nuværende kode inkluderer understøttelse af grundlæggende lav-niveau funktionalitet, som f.eks symmetrisk multiprocessing via spin-borde, IRQ håndtering, serielle forbindelser og en framebuffer. Linux kan starte til en kommandoprompt, men ikke meget andet - der er ikke engang fuld grafikunderstøttelse endnu.

Linux på Apple M1 Mac Mini (Kredit: Asahi Linux)

Mens officiel kerneunderstøttelse af M1-hardware skrider frem i et jævnt tempo, har nogle mennesker formået at komme tættere på en ægte desktop-oplevelse med forskellige hacks. Corellium, et udviklingsfirma, der specialiserer sig i ARM-virtualisering, var i stand til at skabe en brugbart Ubuntu-skrivebord på M1 Mac Mini. Det meste af Corelliums arbejde bliver dog ikke upstreamet til Linux-kernen.

Corellium skrev om, hvordan M1's arkitektur adskiller sig fra andre ARM-designs i et blogindlæg. "Opstartsindlæseren, traditionelt kaldet iBoot, indlæser en eksekverbar objektfil i et format kaldet Mach-O, eventuelt komprimeret og pakket ind i et signeret ASN.1-baseret indpakningsformat kaldet IMG4. Til sammenligning starter normal Linux på 64-bit ARM som et fladt binært billede." Gruppen fortsatte med at sige, "hvis det ikke var nok, Apple designet deres egen interrupt controller, Apple Interrupt Controller (AIC), som ikke er kompatibel med nogen af ​​de store ARM GIC standarder. Og ikke nok med det: timer-afbrydelserne - normalt forbundet med en almindelig per-CPU-afbrydelse på ARM - er i stedet dirigeret til FIQ, en abstru arkitektonisk funktion, der ses oftere i den gamle 32-bit ARM dage."

Apples M1 chipset leveres i øjeblikket på MacBook Air, MacBook Pro og Mac Mini. Det er en 5nm chip med i alt otte kerner: fire højtydende kerner og fire strømbesparende kerner. Der er også en Neural Engine til maskinlæringsopgaver samt en otte-core GPU. Apple lovede, at M1 ville levere bedre ydeevne end de tidligere brugte Intel CPU'er, mens den kun bruger omkring en fjerdedel af strømmen, og senere test i den virkelige verden bakket op om disse påstande. Heldigvis understøtter M1 fuldt ud opstart af usignerede/brugerdefinerede kerner, så at køre Linux kræver ikke nogen sikkerhedsudnyttelse, der kunne lappes senere.

Apples eget macOS er allerede et fantastisk operativsystem, men at have desktop Linux som en mulighed kunne være et stærkt salgsargument for nogle potentielle MacBook- og Mac Mini-købere. Apple har gennem årene været udsat for kritik for at have låst nogle aspekter af macOS eller forladt standarder på tværs af platforme til fordel for proprietære alternativer. For eksempel understøtter macOS stadig ikke Vulkan API på tværs af platforme til grafik, kun virksomhedens egen Metal API.