Как стать автором
Обновить
192
Рейтинг
Дата-центр «Миран»
Решения для аренды и размещения ИТ-инфраструктуры

В ядро Linux добавили начальную поддержку процессоров Apple M1

Дата-центр «Миран»Open sourceРазработка под LinuxКомпьютерное железоПроцессоры


В ветку for-next (для 5.13) включили патч arm/apple-m1 (79 коммитов), в котором реализована начальная поддержка ARM-процессоров Apple M1.

Мобильные процессоры M1 настолько превосходят конкурентов по производительности и энергоэффективности, что представляются лучшим вариантом для разработчика. В ноябре 2020 года Линус Торвальдс сказал: «Я бы очень хотел такой компьютер. Я уже давно жду ARM-ноутбук, который может работать под управлением Linux. Новый Air почти идеален, за исключением операционной системы. И у меня нет ни времени возиться с этим, ни желания бороться с компаниями, которые не хотят помогать». Даже с ограничением на количество оперативной памяти 16 ГБ он готов мириться, но только не с проприетарной системой. Поэтому нужна нативная поддержка Linux.

Энтузиасты из проекта Asahi Linux реализовали первоначальную поддержку M1 на уровне операционной системы. Более подробно о сделанных изменениях основатель проекта Гектор "marcan" Мартин рассказывал в феврале, когда подготовил патч для включения в ядро. С тех пор список функций не изменился: с февраля по апрель продолжалась чистка кода и исправление багов, говорит один из авторов.


Поддержка M1 в ядре — отличная новость. Возможно, в будущем Apple наладит выпуск CPU для других сборщиков компьютерной техники. Тогда можно будет купить ноутбук с Linux на процессоре M1, но без яблока на корпусе.

Сейчас на рынке довольно много ноутбуков и планшетов с процессорами ARM, которые поддерживают Linux, но ни один из них не может сравниться по характеристикам с M1 (4+4 ядра), а тем более с 12-ядерным M1X или 16-ядерным M2 (12+4) — будущими процессорами Apple, производство которых запланировано на фабриках TSMC в 2021?2022 годах.

Например, вот некоторые ориентировочные характеристики M2:

  • техпроцесс 4 нм
  • 16 ядер;
  • 12 высокопроизводительных ядер;
  • 4 энергоэффективных ядра;
  • рост производительности до 4 раз по сравнению с М1;
  • массовое производство в конце 2022 года.

Начальная поддержка


Хотя Linux уже технически загружается на M1, но мы ещё очень далеки от того, чтобы вставить загрузочную USB-флэшку и нажать кнопку установки. Текущий код включает в себя поддержку только самых базовых низкоуровневых функций, таких как симметричная многопроцессорность с помощью спин-таблиц, обработка IRQ, последовательные порты и фреймбуфер. Linux может загрузиться только в командную строку, пока нет поддержки GUI.


Linux на Mac Mini с процессором Apple M1 (скриншот: Asahi Linux)

В то время как Asahi Linux улучшает официальную поддержку для процессоров M1, другие разработчики пытаются решить задачу другими способами. Например, компания-разработчик средств виртуализации Corellium представила сборку 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. И не только это: прерывания таймера, которые обычно соответствуют нормальному прерыванию в CPU, вместо этого направляются в FIQ, заумную архитектурную функцию, которая чаще встречалась в старые 32-битные времена ARM».


Linux на M1 Mac Mini (сборка Corellium)

Ранее на компьютерах M1 запустили Windows 10 и Fedora Linux, но только через эмулятор QEMU.


Fedora Linux на M1 (через QEMU)

Чипсет Apple M1 в настоящее время используется в MacBook Air, MacBook Pro и Mac Mini. Это пятинанометровый чип с восемью ядрами: четыре высокопроизводительных ядра и четыре энергоэффективных. Встроен нейронный движок для задач машинного обучения и восьмиядерный GPU.

К счастью, M1 полностью поддерживает загрузку неподписанных/пользовательских ядер, поэтому запуск Linux не требует использования каких-то недокументированных функций, которые Apple могла бы исправить в будущем.

На протяжении многих лет Apple подвергается критике за отказ от некоторых открытых стандартов в пользу проприетарных альтернатив. Например, macOS по-прежнему не поддерживает кросс-платформенный Vulkan API для графики, только собственный Metal API.

Поддержка Apple SoC в свободной операционной системе — непростая задача. Apple не предлагает никакой документации и ничем не помогает в решении этой задачи, поэтому процесс идёт через реверс-инжиниринг железа и написание драйверов с нуля. И это особенно сложно, учитывая наличие GPU, а без первоклассной графической поддержки Asahi не может предложить первоклассный опыт работы с Linux на оборудовании M1.

Внесение в ветку for-next на самом деле не гарантирует, что работа Asahi попадёт в ядро Linux 5.13. Всегда есть вероятность, что Линусу Торвальдсу что-то не понравится и он отфутболит код в Linux 5.14 в ожидании необходимых изменений. С другой стороны, патч уже получил одобрение более 20 разработчиков ядра, так что бан со стороны Линуса маловероятен, считает Ars Technica.

Невозможно угадать, сколько потребуется разработчикам, чтобы провести реверс-инжиниринг M1 GPU и написать качественный опенсорсный драйвер. Предстоит очень большая работа, и вряд ли Apple здесь поможет сообществу. Возможно, это вообще непосильная задача, и пока Мартин с единомышленниками будут её решать, выйдет М2, и придётся начинать с начала.
Теги:Мирандата-центр МиранMiran.ruLinuxApple M1CPUAsahi LinuxноутбукиЛинус ТорвальдсARMMac Miniсимметричная многопроцессорностьM1XM2
Хабы: Дата-центр «Миран» Open source Разработка под Linux Компьютерное железо Процессоры
Всего голосов 32: ↑29 и ↓3 +26
Просмотры7.4K

Похожие публикации

Лучшие публикации за сутки