Разработчик Брайан Келлер, вдохновившись успешным переносом Windows NT на игровую приставку, решил проверить, удастся ли запустить классическую версию настольной операционной системы Apple на консоли Nintendo Wii. Эксперимент увенчался успехом: ему удалось запустить Mac OS X 10.0 Cheetah на архитектуре Wii, о чем энтузиаст подробно отчитался в своем блоге.

Выбор платформы не был случайным: в основе Nintendo Wii лежит процессор PowerPC 750CL. Это более современная итерация чипа PowerPC 750CXe, который в свое время использовался компанией Apple в компьютерах G3 iBook и iMac. Понимая аппаратное родство, Келлер предположил, что запуск возможен. Для реализации идеи энтузиаст разработал собственный загрузчик, позволяющий стартовать ядро системы на стороннем железе.
Технические сложности и их решение
Процесс портирования потребовал глубокого вмешательства в программную часть:
- Ядро системы: Келлеру пришлось модифицировать исходный код ядра OS X и скомпилировать собственную версию бинарного файла.
- Работа с памятью: Были написаны уникальные драйверы, позволившие ядру корректно считывать файловую систему напрямую с SD-карты Wii.
- Графика и периферия: Разработчик реализовал собственный драйвер фреймбуфера для вывода изображения, устранив ошибки цветопередачи между видеоподсистемой Wii и графическим стеком OS X. Для корректной работы USB-устройств пришлось разыскивать в старых архивах IRC исходный код модуля USBFamily от версии Cheetah десятилетней давности.
В результате проделанной работы Келлер не только добился загрузки системы, но и запустил установщик Mac OS X Cheetah с полной поддержкой ввода через мышь и клавиатуру, превратив игровую приставку в необычный компьютер.
Будущее проекта
Увлеченность проектом была настолько высокой, что автор даже взял приставку с собой в отпуск, чтобы продолжить отладку кода. Все технические подробности того, как именно обходились аппаратные ограничения, опубликованы на сайте разработчика. Тем, кто хочет самостоятельно повторить этот эксперимент, Келлер предоставил доступ к полному исходному коду своего проекта на платформе GitHub.






