Ядро Linux скоро получит первоначальную поддержку чипсета Apple M1

В Linux Kernel версии 5.13 будет добавлена ​​первоначальная поддержка чипа Apple M1, первой SoC настольного класса по дизайну Apple Silicon.

В прошлом году Apple представила свою первую систему на кристалле настольного класса — Apple M1, основанную на той же архитектуре ARM, что и большинство смартфонов и планшетов. Хотя Linux уже много лет хорошо работает на устройствах ARM (таких как Raspberry Pi), аппаратное обеспечение Apple сильно настраивается и требует специальной программной поддержки. К счастью, теперь мы на шаг ближе к запуску Linux на Apple Silicon.

Асахи Линукс работает над тем, чтобы привнести «отточенный опыт Linux» в Apple Silicon Mac и отправляет свой код в проект Linux для включения в официальное ядро ​​Linux. Первоначальная работа группы была объединена с кодовой базой Linux SoC и, скорее всего, станет частью предстоящего обновления Linux 5.13.

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

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

Linux на Apple M1 Mac Mini (Фото: Asahi Linux)

Хотя официальная поддержка ядра для оборудования M1 развивается устойчивыми темпами, некоторым людям удалось приблизиться к настоящему рабочему столу с помощью различных хаков. Corellium, фирма-разработчик, специализирующаяся на виртуализации ARM, смогла создать пригодный для использования рабочий стол 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 компании.