Categories: iPhoneMac

Как Linux был перенесен на Apple Silicon M1 Mac mini

Linux теперь работает на Mac mini с процессором M1, но Apple не упростила для команды перенос ОС с ее собственной прошивкой и уникальными путями к данным. Вот как Кореллиум добился этого.

Теперь, когда Linux полностью доступен на Mac с процессорами M1, команда Corellium подробно описала процесс переноса ОС.

В сообщении в четверг Corellium сообщает, что они изучают специализированные процессоры Apple с момента выпуска iPhone 6 в 2014 году. Компания использовала некоторые эксплойты и это предыдущее исследование для создания порта ядра на процессор A10 в начале 2020 года.

Apple выпустила компьютеры Mac с процессором M1 в ноябре 2020 года. Последующее обновление ОС позволило пользователям устанавливать собственные ядра. После добавления этой возможности команда Corellium приступила к работе над портом Linux.

Corellium утверждает, что M1 имеет много общих компонентов с процессорами Apple серии A. Однако это помогает только потому, что Apple не использует стандарты, установленные другими производителями ARM.

Команда Corellium подробно описала проблемы, с которыми они столкнулись при переносе Linux.

Технические детали

Команда Corellium заявляет, что Apple не загружает свои процессоры традиционными способами. Сначала загрузчик запускает исполняемый файл, называемый форматом объектного файла Mach (Mach-O), заключенный в подписанный формат оболочки, называемый IMG4. Это становится еще более сложным, когда задействовано больше ядер ЦП, поскольку они начинаются с адреса, указанного в регистре ввода-вывода с отображением в память (MMIO), а затем запускают ядро.

Apple разработала собственный контроллер, выходящий за рамки обычных стандартов ARM Generic Interrupt Controller (GIC). Прерывания таймера направляются в запрос быстрого прерывания (FIQ), который не является стандартным и отражает старую 32-битную систему ARM. Команда говорит, что вы должны предоставить набор межпроцессорных прерываний (IPI), чтобы заставить несколько процессоров взаимодействовать.

Команда Corellium имела опыт работы с поддержкой FIQ и была готова к большинству нестандартных подходов Apple. В конце концов, команда добавила предзагрузчик, который действует как оболочка для Linux, что привело к загрузке ОС на процессоре M1.

У команды не было интерфейсного кабеля для M1 Mac, поэтому им пришлось найти альтернативный входной маршрут. Из трех вариантов; Bluetooth, хост USB или хост xHCI USB на PCIe. Они выбрали USB-хост и должны были взаимодействовать с чипом на I2C.

После правильного подключения USB они могли подключить клавиатуру, мышь и флешку. Это открыло возможность для запуска обычного настольного дистрибутива Linux.

Recent Posts

Перейти на iPhone 15? Вам понадобится этот кабель для CarPlay

Apple изменила порт зарядки с Lightning на USB-C в iPhone 15. В комплект поставки входит…

Иск Unfollow Everything может изменить то, как мы используем приложения для социальных сетей

В суд просят решить, имеет ли Meta юридическое обязательство разрешать использование Unfollow Everything — браузерного…

Вот как выглядит демонтаж проекта Apple Car

В феврале этого года мы узнали, что после более чем десятилетней работы Project Titan —…

Генеральный директор Apple Тим Кук оптимистично настроен в отношении Китая, думая о долгосрочной перспективе

iPhone преуспевает в Китае, несмотря на сокращение рынка Обнародовав доходы Apple за второй квартал, генеральный…

Как проверить заряд батареи на Siri Remote для Apple TV

Если у вас Apple TV 4K, неочевидно, как проверить уровень заряда батареи вашего Siri Remote.…

Динамик Apple Beats Pill может скоро вернуться

Обновление от 2 мая 2024 г.: Еще один день, еще один тизер возвращения Beats Pill.…