Ядро Linux незабаром матиме початкову підтримку для чіпсета Apple M1

click fraud protection

Ядро Linux версії 5.13 додасть початкову підтримку для чіпа Apple M1, першого настільного класу SoC під дизайном Apple Silicon.

Минулого року Apple показала свою першу систему на чіпі для настільних комп’ютерів, Apple M1, засновану на тій же архітектурі ARM, що й більшість смартфонів і планшетів. Хоча Linux добре працював на пристроях ARM (наприклад, Raspberry Pi) протягом багатьох років, апаратне забезпечення Apple сильно налаштовано і вимагає спеціальної програмної підтримки. На щастя, тепер ми на крок ближче до запуску Linux на Apple Silicon.

Asahi Linux працював над тим, щоб привнести «відшліфований досвід Linux» в Apple Silicon Mac і надсилав свій код у проект Linux для включення в офіційне ядро ​​Linux. Початкова робота групи була об’єднана в кодову базу Linux SoC і, ймовірно, з’явиться як частина майбутнього оновлення Linux 5.13.

Приємно спостерігати, як початкова підтримка нового апаратного забезпечення Apple з’являється в ядрі Linux лише через кілька місяців після того, як перше обладнання почало постачатися, але ключове слово тут — «початкове». Поки Linux

технічно завантажується на M1, ми ще дуже далекі від того, щоб підключити живий 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 Чіпсет М1 зараз поставляється на MacBook Air, MacBook Pro та Mac Mini. Це 5-нм чіп із вісьмома ядрами: чотирма високопродуктивними і чотирма енергоефективними. Також є Neural Engine для завдань машинного навчання, а також восьмиядерний графічний процесор. Apple пообіцяла, що M1 забезпечить кращу продуктивність, ніж процесори Intel, що використовувалися раніше, при цьому споживаючи лише одну чверть потужності, а пізніше тестування в реальному світі підтвердили ці заяви. На щастя, M1 повністю підтримує завантаження непідписаних/настроюваних ядер, тому для роботи з Linux не потрібні експлойти безпеки, які можна було б виправити пізніше.

Власна macOS від Apple вже є чудовою операційною системою, але наявність настільного Linux як опції може стати сильною перевагою для деяких потенційних покупців MacBook і Mac Mini. Протягом багатьох років Apple стикалася з критикою за блокування деяких аспектів macOS або відмову від кросплатформних стандартів на користь пропрієтарних альтернатив. Наприклад, macOS досі не підтримує кросплатформний API Vulkan для графіки, лише власний Metal API компанії.