Вопрос или проблема
На мой взгляд: другая архитектура -> другие команды процессора -> разные последовательности 0/1 -> необходимость компилятора (поскольку большая часть ОС написана на C или другом высокоуровневом языке), который переводит это в другую последовательность 0/1. И этого должно быть достаточно, если предположить, что загрузчик можно написать с управляемыми усилиями и каждая инструкция C может быть переведена в последовательность команд процессора Apple Silicon, чтобы они выполняли то же самое, что, например, на x86-64.
Я знаю только о проекте Ashahi Linux, так почему моя логика ошибочна? Спасибо! Это помогло бы мне лучше связать точки.
Ну, написание любой ОС Linux сложно, на мой взгляд. Если бы это было не так, все бы занимались этим. Может, тебе стоит попробовать. Я представляю, что поскольку всё открытое, ты мог бы сделать свой собственный маленький вариант. Лично я не владею одним из этих устройств, но мне было бы интересно увидеть какой-нибудь безумный легкий вариант. Например, чтобы он использовал 128 МБ в простое, так даже самые низкобюджетные модели чипов M1 смогут долго работать. 128 МБ — это, конечно, преувеличение. Мне кажется, если это менее 1 ГБ в простое, учитывая, как сейчас обстоят дела на x64, ты, вероятно, в порядке. Тебе нужно запустить рабочий стол, который легкий и универсальный. Я бы сказал, Mate, потому что я немного старомоден, но у Ubuntu есть темы, которые делают его похожим на Windows, Mac или даже на стандартную тему Ubuntu, не жертвуя ОЗУ. Обычно я сижу на около 800 МБ в простое, используя Mate. Но сейчас я его не использую, хах, Gnome немного меня затянул в последнее время.
Концепция Ubuntu 24.10 Snapdragon X Elite — это еще один проект, который нацелен на портирование Ubuntu на ноутбуки Qualcomm (на базе ARM) Snapdragon. Однако он несовместим с процессорами Apple Silicon M-серии, но я подумал, что это будет уместно опубликовать на Ask Ubuntu, поскольку этот образ основан на последнем релизе Ubuntu 24.10 (Oracular Oriole).
Ответ или решение
Создание операционной системы Linux для ARM-чипов Apple, таких как M1 и M2, действительно является сложной задачей, и на это есть несколько причин, каждая из которых заслуживает детального объяснения. Давайте разберем основные аспекты, которые затрудняют эту разработку.
### 1. Архитектурные различия
На уровне аппаратного обеспечения, архитектура ARM, используемая в чипах Apple, отличается от традиционной архитектуры x86-64, распространенной на большинстве ПК и серверов. Эти различия заключаются не только в инструкции наборе (IS), но и в особенностях работы с памятью, управлениями прерываниями и другими ключевыми компонентами. Разработка кода, который корректно выполняется на ARM, требует глубокого понимания особенностей этой архитектуры, включая оптимизацию для наборов инструкций, специфичных для процессоров Apple.
### 2. Проприетарные технологии Apple
Apple использует много проприетарных технологий и драйверов, чтобы обеспечить работу своих устройств. Эти технологии могут включать графические системы, системы управления энергопотреблением и даже специфические функции безопасности. Из-за этого разработка полноправного дистрибутива Linux, совместимого с аппаратным обеспечением Apple, сопряжена с необходимостью создания новых драйверов и системных компонентов, что может занять значительное время и ресурсы.
### 3. Ограниченная документация
Документация по аппаратным спецификациям Apple часто является ограниченной и недоступной для широкой общественности. В отличие от других производителей, которые открыто предоставляют информацию о своих процессорах и других компонентах, Apple склонна сохранять свои спецификации в секрете. Это создает дополнительные препятствия для разработчиков Linux, поскольку отсутствие исчерпывающей информации затрудняет разработку и отладку необходимых драйверов и программного обеспечения.
### 4. Усложненный процесс загрузки
Для успешного запуска Linux на процессорах Apple требуется создание соответствующего загрузчика. Поскольку Apple использует свою собственную систему загрузки, совместимость с ней требует значительных усилий. Кроме того, необходимо учесть реализацию UEFI и других современных методов безопасной загрузки, которые могут потребовать глубокого понимания форматов и протоколов.
### 5. Сообщество разработки и ресурсы
Хотя существует несколько проектов, таких как Asahi Linux, которые уже работают над портированием Linux на Apple Silicon, ресурсы таких команд часто ограничены. Открытые проекты полагаются на волонтеров и доноры, что создает определенные ограничения в отношении времени и усилий, необходимых для решения всех технических задач.
### Заключение
Таким образом, несмотря на теоретическую возможность создания Linux-версии для архитектуры ARM Apple, фактические сложности, связанные с различиями в архитектуре, отсутствием документации, проприетарными технологиями и необходимостью создания новых драйверов, делают этот процесс значительно трудноосуществимым. В результате, это требует не только высокой квалификации разработчиков, но и значительных временных и финансовых инвестиций. Поэтому, несмотря на открытость исходного кода Linux, создание его стабильной версии для ARM-чипов Apple остается серьезной задачей и вряд ли может быть приведено к простому порту существующего кода.