Jądro Linuksa wkrótce będzie początkowo obsługiwać chipset Apple M1

Jądro Linux w wersji 5.13 doda wstępną obsługę chipa Apple M1, pierwszego SoC klasy desktopowej w projekcie Apple Silicon.

W zeszłym roku Apple zaprezentowało swój pierwszy projekt typu System-on-a-Chip klasy desktop, Apple M1, oparty na tej samej architekturze ARM, co większość smartfonów i tabletów. Chociaż Linux od lat dobrze sprawdza się na urządzeniach ARM (takich jak Raspberry Pi), sprzęt Apple jest w dużym stopniu dostosowany do indywidualnych potrzeb i wymaga specjalnego wsparcia programowego. Na szczęście jesteśmy teraz o krok bliżej do uruchomienia Linuksa na Apple Silicon.

Asahi Linux pracuje nad wprowadzeniem „dopracowanego systemu Linux” na komputery Apple Silicon Mac i przesyła swój kod do projektu Linux w celu włączenia go do oficjalnego jądra Linuksa. Początkowe prace grupy zostały włączone do bazy kodu Linux SoC i prawdopodobnie pojawią się w ramach nadchodzącej aktualizacji Linuksa 5.13.

To ekscytujące widzieć, że początkowe wsparcie dla nowego sprzętu Apple pojawia się w jądrze Linuksa zaledwie kilka miesięcy po rozpoczęciu dostaw pierwszego sprzętu, ale słowo kluczowe to „początkowe”. Podczas gdy Linux

technicznie bootuje na M1, wciąż jesteśmy daleko od podłączenia dysku Live USB i kliknięcia przycisku instalacji. Obecny kod obejmuje obsługę podstawowych funkcjonalności niskiego poziomu, takich jak symetryczne przetwarzanie wieloprocesowe poprzez stoły obrotowe, Obsługa przerwań, połączenia szeregowe i bufor ramki. Linux może uruchomić się z wiersza poleceń, ale niewiele więcej — nie ma jeszcze pełnej obsługi grafiki.

Linux na Apple M1 Mac Mini (Źródło: Asahi Linux)

Chociaż oficjalna obsługa jądra dla sprzętu M1 postępuje w stałym tempie, niektórym osobom udało się zbliżyć do prawdziwego doświadczenia na komputerze stacjonarnym dzięki różnym hackom. Corellium, firmie programistycznej specjalizującej się w wirtualizacji ARM, udało się stworzyć użyteczny pulpit Ubuntu na M1 Mac Mini. Jednak większość pracy Corellium nie jest przesyłana do jądra Linuksa.

Corellium napisał o tym, czym architektura M1 różni się od innych konstrukcji ARM w poście na blogu. „Program ładujący, tradycyjnie nazywany iBoot, ładuje wykonywalny plik obiektowy w formacie zwanym Mach-O, opcjonalnie skompresowany i zapakowany w podpisany format opakowania oparty na ASN.1 o nazwie IMG4. Dla porównania normalny Linux na 64-bitowym ARM zaczyna się od płaskiego obrazu binarnego.” Grupa dodała: „Gdyby tego było mało, Apple zaprojektował własny kontroler przerwań, Apple Interrupt Controller (AIC), niekompatybilny z żadnym z głównych ARM GIC standardy. I nie tylko to: przerwania czasowe – zwykle połączone ze zwykłym przerwaniem na procesor na ARM – są zamiast tego kierowane do FIQ, zawiłej cechy architektonicznej, częściej spotykanej w starym 32-bitowym ARM dni."

Jabłka chipsetu M1 jest obecnie dostępny na MacBookach Air, MacBookach Pro i Mac Mini. To chip wykonany w procesie technologicznym 5 nm, składający się w sumie z ośmiu rdzeni: czterech o wysokiej wydajności i czterech energooszczędnych. Dostępny jest także silnik neuronowy do zadań uczenia maszynowego, a także ośmiordzeniowy procesor graficzny. Apple obiecał, że M1 zapewni lepszą wydajność niż wcześniej używane procesory Intel, zużywając jedynie około jednej czwartej mocy, a później testy w świecie rzeczywistym podtrzymał te twierdzenia. Na szczęście M1 w pełni obsługuje uruchamianie niepodpisanych/niestandardowych jąder, więc działanie Linuksa nie wymaga żadnych exploitów bezpieczeństwa, które można by później załatać.

MacOS firmy Apple jest już świetnym systemem operacyjnym, ale opcjonalna wersja systemu Linux dla komputerów stacjonarnych może być mocnym punktem sprzedaży dla niektórych potencjalnych nabywców MacBooka i Maca Mini. Apple przez lata spotykał się z krytyką za blokowanie niektórych aspektów systemu macOS lub porzucanie standardów wieloplatformowych na rzecz zastrzeżonych alternatyw. Na przykład macOS nadal nie obsługuje wieloplatformowego interfejsu API Vulkan dla grafiki, tylko własne Metal API firmy.