Суть истории
Брайан Келлер сумел запустить Mac OS X 10.0 (Cheetah) — раннюю версию macOS — на игровой консоли Nintendo Wii (выпущена в 2006 году). Это стало ответом на скептический комментарий пользователя Reddit, утверждавшего, что подобное невозможно.
Почему это сложно и необычно
На первый взгляд, задача кажется абсурдной: Wii создавалась для игр (например, Wii Sports и Super Mario Galaxy), а не для запуска полноценных десктопных ОС. Основные сложности:
- Разные назначения устройств. Wii — игровая консоль с ограниченной памятью и специфичным набором компонентов. Mac OS X — полноценная десктопная ОС с высокими требованиями.
- Архитектура. Хотя Wii использует процессор PowerPC (как и старые Mac), это не означает прямой совместимости. Нужно адаптировать код ОС под конкретные характеристики чипа в консоли.
- Драйверы. Wii не имеет «родных» драйверов для работы с USB‑клавиатурой и мышью в контексте Mac OS. Келлеру пришлось написать их с нуля.
- Загрузчик. Стандартные механизмы загрузки Wii не рассчитаны на запуск сторонней ОС. Требовалось создать собственный загрузчик.
- Ядро ОС. Ядро Mac OS X нужно было модифицировать, чтобы оно корректно взаимодействовало с железом Wii.
Ключевые этапы проекта
- Мотивация. Идея появилась в 2013 году, но толчок к действию дал комментарий на Reddit (2018): «Вероятность того, что это когда‑нибудь произойдёт, равна нулю».
- Анализ схожести платформ. Келлер отметил, что Wii использует чип PowerPC, аналогичный тем, что стояли в старых Mac. Это снизило барьер совместимости на уровне процессора.
- Создание загрузчика. Разработан специальный загрузчик для запуска Mac OS X на Wii.
- Модификация ядра. Ядро Mac OS X 10.0 было адаптировано под железо Wii.
- Разработка драйверов. Написаны новые драйверы, в т. ч. для USB‑портов, чтобы подключить клавиатуру и мышь.
- Успешный запуск. В итоге Mac OS X 10.0 заработала на Wii, подтвердив возможность «невозможного».
Контекст других подобных проектов
Wii известна как «удобная для взлома» консоль. До Келлера на неё уже портировали:
- Windows 95;
- Windows NT;
- Linux;
- NetBSD.
Это показывает, что Wii обладает достаточной гибкостью на низком уровне, но каждый такой порт требует глубокой технической экспертизы.
Чему научил проект
Сам Келлер выделил два главных итога:
- Обучение. Проект дал ему опыт работы с низкоуровневыми технологиями (загрузчики, ядра, драйверы), который сложно получить в стандартных условиях.
- Философия. «Стоит браться за те проекты, которые кажутся недостижимыми». Успех стал доказательством, что скептицизм других может стать стимулом для прорыва.
- Итог: история Брайана Келлера — пример того, как технический вызов, подкреплённый долей упрямства, приводит к впечатляющим результатам. Она вдохновляет не бояться «невозможных» задач и использовать скептицизм окружающих как топливо для творчества.