Содержание
Mac OS X 10.0 Cheetah смогли загрузить и запустить на Nintendo Wii. Проект сделал разработчик Bryan Keller: он написал свой загрузчик, патчил исходники ядра и довёл систему до установщика с рабочими мышью и клавиатурой.
Это не «запуск ради скриншота». Keller показал, что на Wii реально поднять ранний OS X как рабочую оболочку, если закрыть базовые дыры по загрузке, видео и USB.
Почему Mac OS X вообще мог заработать на Wii
Ключ к этой истории — архитектура. В основе Wii стоит процессор PowerPC 750CL. Это более новая версия PowerPC 750CXe, который Apple ставила в эпоху G3, включая iBook и iMac. Поэтому у Keller и появилась гипотеза, что старый OS X можно адаптировать под консоль.
Дальше началась инженерная рутина: «совместимость по семейству CPU» не означает, что ОС сама увидит накопитель, отрисует интерфейс и поднимет USB.
Что Keller переписал и починил, чтобы система загрузилась
Чтобы довести Mac OS X Cheetah до загрузки на Wii, Keller собрал цепочку из нескольких обязательных компонентов. Большую часть ему пришлось делать самому, потому что у Wii нет «родных» для OS X драйверов и привычного PC-окружения.
- Кастомный bootloader: Keller написал загрузчик, который стартует систему на Wii.
- Патч ядра: он изменил исходники kernel и собрал модифицированный бинарник.
- Драйвер для SD: чтобы ядро прочитало данные из слота Wii SD card и загрузилось в файловую систему.
- Framebuffer-драйвер: для вывода интерфейса OS X на видеовыход Wii.
- Совместимость по цвету: Keller отдельно «сшивал» несовпадение между видеожелезом Wii и графическим кодом OS X.
- USB и периферия: он нашёл старый исходник OS X Cheetah USBFamily (по его словам, это заняло время) и довёл поддержку устройств ввода.
Финальная точка, которую Keller показал публично: установщик Mac OS X запускается, а клавиатура и мышь работают. То есть Wii превращается в «полезный» компьютер, а не в демо-экран.
Где посмотреть детали и код проекта
Keller подробно разобрал проект в своём посте: Porting Mac OS X to Nintendo Wii. Там же он описывает, с какими проблемами столкнулся при загрузке, видео и USB.
Исходники он выложил открыто: wiiMac на GitHub.
По словам Keller, он настолько втянулся, что брал Wii с собой в отпуск на Гавайи, чтобы продолжать работу над портом.