Проект Asahi Linux опубликовал первый отчет о проделанной работе, в котором подробно описаны его усилия по порт Linux на платформу Apple Silicon.

В длинное сообщение в блоге подробно описывает проблемы, с которыми сталкивается проект в понимании того, как собственные проприетарные чипы Apple работают на фундаментальном уровне, а также в обходе различных нестандартных причуд, ограничивающих возможность загрузки сторонних операционных систем.

Отчет, написанный хакером ядра и соучредителем Asahi Linux Гектором Мартином, к сожалению, не завершается ссылкой на полностью рабочий дистрибутив Linux. Однако он показывает, насколько сильно компьютеры Mac на базе Apple Silicon расходятся со стандартами, которые вы обычно видите.

Например, процесс загрузки — это не то, что вы ожидаете увидеть в обычной системе ARM64, а скорее «индивидуальный механизм Apple», зародившийся в первые дни iOS, с элементами дизайна, взятыми из спецификации Open Firmware как видели с компьютеры Mac New World ROM.

Это вынудило проект Asahi Linux разработать специальный загрузчик для машин Apple Silicon под названием m1n1, цель которого — позаботиться о как можно большем количестве «яблоко-измов». Но это немного больше.

Истоки m1n1 лежат в мини, проект, созданный Мартином в рамках его исследования взлома Nintendo Wii. Хотя он поддерживает загрузку стороннего кода, он также позволяет исследователям управлять машиной в реальном времени с компьютера разработчика. Используя его интерактивную оболочку или написав простые сценарии Python, вы можете подсчитать, как процессор Apple Silicon работает на низком, «голом железе» уровне.

Читайте также:
Европейские LG G4 обновятся до Android Marshmallow

Это позволило команде Asahi Linux определить особенности, которые отличаются от процессора Apple Silicon M1, например, биты конфигурации, предназначенные для повышения производительности при запуске кода x86 в Rosetta.

«Используя m1n1, мы усердно работали над документированием пользовательских инструкций Apple Arm, системных регистров Apple, оборудования, такого как Apple Interrupt Controller, и многого другого», — написал Мартин.

Логотип Asahi Linux

Краудфандинговый проект Asahi направлен на «безупречный» опыт работы с Linux на Apple Silicon

ПРОЧИТАЙТЕ БОЛЬШЕ

Это перечисление пригодилось, потому что, как уже отмечалось, Apple Silicon — это совершенно отдельная и проприетарная система. Практически нет документации о том, как это работает, и его поведение отличается от других чипов ARM64.

Мартин отмечает, что, когда чип простаивает, есть вероятность, что он может выбрать «затвор питания», при котором части процессора отключаются для снижения энергопотребления. Это имеет неприятный побочный эффект, заключающийся в стирании содержимого регистров, за исключением указателя стека и счетчика программ, что приводит к сбою Linux.

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

Читая отчет, самым большим сюрпризом для платформы Apple Silicon является то, насколько ее происхождение происходит от более старых продуктов. Как уже отмечалось, процесс загрузки является производным от того, что впервые использовалось в iOS. Микросхема UART, используемая для последовательной связи, была произведена Samsung — компанией, которая, как отмечает Мартин, предоставила SoC для первых iPhone. Аппаратное обеспечение I2C было первоначально разработано PA Semi, ныне принадлежащим Apple, а его конструкция основана на чипе PWRficient, также используемом в AmigaOne X1000.

Читайте также:
Microsoft представляет Custom Neural Voice - синтетическую, но человеческую речь • The Register

Это привело к необычной ситуации, когда клон Amiga 2010 года, работающий под управлением производной ОС, которая достигла пика популярности в конце 1980-х годов, сыграл роль в документировании внутренних махинаций новейших компьютеров Mac.

Благодаря кропотливой исследовательской работе проект Asahi Linux смог перенести ограниченную среду Linux на платформу Apple Silicon M1. Однако это далеко не работоспособная полноценная система. Например, в проекте нет реального драйвера дисплея, который использует базовый фреймбуфер, предоставляемый прошивкой.

«Поскольку это не подходящий драйвер дисплея, нет способа изменить разрешение, обработать горячее подключение дисплея или даже перевести дисплеи в спящий режим. Этого достаточно для разработки и демонстраций, но со временем нам придется написать соответствующий драйвер контроллера дисплея », — написал Мартин. Между тем, графический процессор остается черным ящиком, а работы по обратному инжинирингу еще не завершены.

Проект Asahi Linux — не единственная попытка перенести Linux на Apple M1 с Кореллиум справляется с загрузкой порт Ubuntu на новейшем и лучшем Mac Mini. Это тоже в первые дни, когда поддержка ускорения графики и сети явно отсутствует. ®