Pierwsze postępy w tworzeniu portu Linuksa na M1 Apple'a
Właśnie opublikowano update na temat postępów prac w projekcie o nazwie Asahi Linux - czyli próbie stworzenia działającego portu Linuksa na platformie Apple Silicon. Wpis został stworzony przez Hectora Martina, czyli współzałożyciela projektu, i jest on o tyle ciekawy, że ilustruje, jak bardzo komputery z procesorami Apple różnią się od innych technologii tego typu. Mamy tam więc m.in. informacje na temat tego, jak technologia Apple’a działa na fundamentalnym poziomie oraz opis niektórych “dziwactw”. Wiele z tych rzeczy sprawiło, że twórcy projektu Asahi Linux muszą mierzyć się z niestandardowymi wyzwaniami i rozwiązywać szczególnie ciężkie problemy.
Mamy tutaj więc do czynienia ze skrupulatnym opisem sprzętu, na którego temat nie istnieje żadna konkretna dokumentacja. Twórcy musieli samodzielnie dokonać analizy, która, miejmy nadzieję, finalnie pomoże im w stworzeniu działającego portu Linuksa na komputerach Apple’a.
Asahi Linux nie jest jednak jedynym projektem, który próbuje stworzyć port Linuksa na Macach. Mamy jeszcze Corellium, które stara się uruchomić port Ubuntu na Mac Mini, czyli na jednym z najnowszych komputerów Apple’a.
Wracając jednak do tematu, Martin pisze, że jest pięć elementów, które absolutnie muszą działać dobrze, żeby odpalić Linuksa na jakimkolwiek systemie. Są to:
- Procesor
- MMU, czyli Memory Management Unit
- Interrupt Controller
- Czas systemowy
- Konsola - w przypadku Asahi Linux będzie to konsola seryjna
Pierwsze cztery to standard na większości systemów - Linux nie będzie miał zatem żadnych problemów, aby się tam uruchomić. Ale jak już wspominaliśmy, system Apple’a jest wyjątkowy i używa niestandardowych rozwiązań. Przyjrzymy się teraz niektórym z tych rzeczy, które czynią krzemową technologię firmy z Cupertino aż tak wyjątkową.
Wyjątkowość Apple’a
Jedną z tych rzeczy, która czyni komputery Apple’a tak bardzo wyjątkowymi, jest to, że proces bootowania wygląda tam zupełnie inaczej, niż w przypadku standardowych systemów technologii ARM - można nawet śmiało powiedzieć, że jest to mechanizm stworzony specjalnie dla Apple’a, który powoli ewoluował od wczesnych czasów iOSa, według tego, co pisze Martin.
Elementy projektowe zostały zapożyczone ze specyfikacji Open Firmware, czyli niezależnego sprzętowo firmware’u, opracowanego przez Sun Microsystems, co wyraźnie widać w komputerach New World ROM - modelach Macintosha, które nie korzystają z Macintosh Toolbox ROM.
W związku z powyższym twórcy projektu Asahi Linux musieli rozwinąć swój własny bootloader, który nazwali m1n1. Jego celem jest poradzenie sobie z jak największą ilością rzeczy, które istnieją tylko w krzemowych komputerach Apple’a. To jednak nie wszystko. m1n1 pozwala również na uruchamianie zewnętrznego kodu i kontrolę danej maszyny w czasie rzeczywistym z komputera, na którym dzieje się development.
Korzystając z interaktywnej powłoki m1n1 lub pisząc proste proste skrypty Pythona można poznać niskopoziomowe działanie procesorów Apple’a. Pozwoliło to z kolei na zidentyfikowanie jeszcze większej ilości rzeczy, które są tylko w komputerach Mac.
Jeśli chodzi o “dziwactwa” Apple’a, to dużym problemem okazało się również to, iż bezczynność procesorów na Macach może wywołać zamknięcie niektórych jego części w celu zredukowania konsumpcji energii. Może to sprawić, że usunięte zostanie wiele rejestrów, a nawet wskaźniki stosu, czy liczniki programów - spowoduje to w konsekwencji crash Linuksa. Twórcy Asahi Linux byli na szczęście w stanie wyłączyć tę funkcję - udało im się tego dokonać dzięki dostarczeniu konkretnej wartości do rejestru zastrzeżonego sprzętu Apple’a.
To jednak nie wszystkie problemy, z którymi musieli się mierzyć twórcy - sprzęt Apple’a charakteryzuje również niestandardowe podejście do wyjątków oraz czas systemowy.
Sporym zaskoczeniem, jeśli chodzi o Apple Silicon jest również to, że system ten bardzo dużo zapożycza ze starszych produktów, i to nie tylko firmy z Cupertino. Oprócz procesu bootowania, który sięga czasów wczesnego iOSa, mamy jeszcze chip UART, który został stworzony przez Samsunga - ten z kolei dostarczał systemy na chipie dla pierwszych urządzeń iPhone. Co więcej, Magistrala I2C została oparta na chipie PWRficient, którego użyto w AmigaOne X1000.
Jak widać, rzeczy wyjątkowych jest tutaj sporo.
Podsumowanie
Wpis Martina niestety nie został jeszcze zwieńczony linkiem do dystrybucji Linuksa, która działałby na Macu. Niemniej jednak dobrze wiedzieć, że prace posuwają się do przodu i mimo sporych problemów twórcy Asahi Linux jakoś sobie radzą. Krzemowe procesory Apple’a to systemy bardzo wyjątkowe, a więc stworzenie tam portu Linuksa nie należy do zadań najłatwiejszych.