Linux ядрото скоро ще има първоначална поддръжка за M1 чипсета на Apple

Ядрото на Linux версия 5.13 ще добави първоначална поддръжка за чипа Apple M1, първият SoC от настолен клас под дизайна на Apple Silicon.

Миналата година Apple разкри първия си настолен клас System-on-a-Chip дизайн, Apple M1, базиран на същата ARM архитектура като повечето смартфони и таблети. Докато Linux работи добре на ARM устройства (като Raspberry Pi) от години, хардуерът на Apple е силно персонализиран и изисква специфична софтуерна поддръжка. За щастие, сега сме една крачка по-близо до работа с Linux на Apple Silicon.

Asahi Linux работи, за да донесе "полирано Linux изживяване" на Apple Silicon Macs и изпраща своя код към проекта Linux за включване в официалното ядро ​​на Linux. Първоначалната работа на групата е обединена в кодовата база на Linux SoC и вероятно ще пристигне като част от предстоящата актуализация на Linux 5.13.

Вълнуващо е да видим първоначалната поддръжка за новия хардуер на Apple да пристига в ядрото на Linux само няколко месеца след началото на доставката на първия хардуер, но ключовата дума там е „първоначален“. Докато Linux

технически зарежда на M1, все още сме много далеч от включването на Live USB устройство и щракването върху бутон за инсталиране. Текущият код включва поддръжка за основна функционалност на ниско ниво, като напр симетрична мултипроцесорност чрез спин-таблици, Обработка на IRQ, серийни връзки и фреймбуфер. Linux може да се зарежда от командния ред, но не и много други неща – все още няма дори пълна графична поддръжка.

Linux на Apple M1 Mac Mini (кредит: Asahi Linux)

Докато официалната поддръжка на ядрото за хардуер M1 напредва със стабилни темпове, някои хора успяха да се доближат до истинско изживяване на работния плот с различни хакове. Corellium, фирма за разработка, специализирана във виртуализация на ARM, успя да създаде a използваем работен плот на Ubuntu на M1 Mac Mini. По-голямата част от работата на Corellium обаче не е прехвърлена нагоре в ядрото на Linux.

Corellium писа за това как архитектурата на M1 се различава от другите дизайни на ARM в публикация в блог. „Бутлоудърът, традиционно наричан iBoot, зарежда изпълним обектен файл във формат, наречен Mach-O, по избор компресиран и опакован в подписан формат на обвивка, базиран на ASN.1, наречен IMG4. За сравнение, нормалният Linux на 64-битов ARM започва като плоско двоично изображение." Групата продължи да казва, "ако това не беше достатъчно, Apple проектираха свой собствен контролер за прекъсване, Apple Interrupt Controller (AIC), несъвместим с нито един от основните ARM GIC стандарти. И не само това: прекъсванията на таймера - обикновено свързани с редовно прекъсване на процесора на ARM - са вместо това се насочва към FIQ, неразбираема архитектурна характеристика, срещана по-често в старата 32-битова ARM дни."

на Apple M1 чипсет в момента се доставя на MacBook Air, MacBook Pro и Mac Mini. Това е 5nm чип с общо осем ядра: четири високопроизводителни ядра и четири енергийно ефективни ядра. Има и Neural Engine за задачи за машинно обучение, както и осемядрен GPU. Apple обеща M1 да осигури по-добра производителност от предишните процесори на Intel, като същевременно използва само около една четвърт от мощността и по-късно тестване в реалния свят подкрепи тези твърдения. За щастие, M1 напълно поддържа зареждане на неподписани/персонализирани ядра, така че работата с Linux не изисква експлойти за сигурност, които могат да бъдат коригирани по-късно.

Собственият macOS на Apple вече е страхотна операционна система, но наличието на десктоп Linux като опция може да бъде силна точка за продажба за някои потенциални купувачи на MacBook и Mac Mini. Apple се сблъскваше с критики през годините за блокиране на някои аспекти на macOS или за изоставяне на междуплатформените стандарти в полза на патентовани алтернативи. Например macOS все още не поддържа междуплатформения Vulkan API за графики, само собствения Metal API на компанията.