
Некоторые идеи поначалу кажутся шуткой в кругу друзей, но в итоге превращаются в очень серьезные проекты. Именно это произошло с экспериментом Брайана Келлера, разработчика, которому удалось Загрузка Mac OS X 10.0 Cheetah на Nintendo Wii, консоль, выпущенная в 2006 году и предназначенная для семейных игр, а не для превращения в настольный компьютер.
Работа Келлера, отнюдь не являвшаяся простым трюком, превратилась в техническое путешествие, полное препятствий, документации и креативных решений. В результате получилась консоль Wii, способная отображать рабочий стол Mac OS X Cheetah. Интерфейс Aqua, поддержка USB-клавиатуры и мыши, а также прямая загрузка с оборудования., без каких-либо промежуточных слоев виртуализации, что привлекло внимание сообщества любителей ретро-оборудования как в Европе, так и во всем мире.
Скромная консоль, которая никогда не претендовала на звание Mac.
Когда Nintendo Wii вышла в Европе в 2006 году, акцент не делался на чистой мощности. В то время как Microsoft и Sony хвастались... Графика высокого разрешения на Xbox 360 и PlayStation 3.Компания Nintendo выделялась небольшим белым корпусом, 88 МБ памяти и процессором с частотой 729 МГц, ориентированным на управление движением и семейные игры.
На бумаге эти характеристики казались совершенно недостаточными для настольной системы, такой как Mac OS X, особенно для той, которая представила такой визуально впечатляющий интерфейс, как Aqua. Однако ключ был внутри: Wii использует Процессор PowerPC 750CL, известный как Broadway.является прямым потомком чипов PowerPC 750CXe, которые Apple использовала в некоторых iMac и iBook в начале 2000-х годов.
Это архитектурное сходство не превращает Wii в Mac, но устраняет одно из самых сложных препятствий в проектах такого рода: По сути, центральный процессор и операционная система говорят на одном и том же базовом языке.С тех пор все остальное сводилось к адаптации специфического оборудования к программному обеспечению, которое изначально для него не предназначалось.
Консоль Nintendo имеет довольно уникальную архитектуру, в которой память разделена на MEM1 (24 МБ) используется для основных задач, а MEM2 (64 МБ) — для графики и других целей.Все это управляется чипом Hollywood, который централизует большую часть логики системы. Кроме того, входы и выходы ориентированы на контроллеры, игры и аксессуары, специфичные для консолей, а не на жесткие диски, клавиатуры или мыши в классическом стиле Mac.
До этого эксперимента Wii уже служила полигоном для тестирования других систем: в среде модификаций консолей была возможность запускать её. Linux, NetBSD и даже Windows NTа также сообщество делится руководствами по лучшие эмуляторы для MacИменно случай с Windows NT в конце концов подтолкнул Келлера к попытке сделать то, что многие считали невозможным: перенести Mac OS X Cheetah на Wii.
Разработка пользовательского процесса загрузки для Mac OS X на Wii.
Одно из самых больших препятствий на пути проекта возникло на самом начальном этапе разработки системы. У Wii нет ничего подобного... Open Firmware или BootX — классический механизм загрузки Mac PowerPC.Поэтому попытки принудительно использовать эти методы в консоли не имели особого практического смысла.
Вместо того чтобы адаптировать уже существующее, Келлер решил создать что-то новое. полностью пользовательский загрузчикЭтот загрузчик предназначен исключительно для выполнения самых необходимых задач: инициализации базового оборудования Wii и загрузки ядра Mac OS X Cheetah с SD-карты. Он выступает в качестве моста между средой консоли и системным ядром Apple.
Ядро Mac OS X той эпохи основывалось на формате Mach-O для своих исполняемых файлов, включая само ядро XNU. Корректная загрузка этого ядра на Wii представляла собой серьёзную проблему: Келлеру пришлось... внедрять базовые параметры непосредственно в ядро и использовать необычные методы отладки.например, размещение патчей, которые зажигали передний светодиод консоли в определенные моменты процесса загрузки, чтобы определить, когда произошло зависание.
Помимо процесса загрузки, необходимо было также настроить карту памяти. Именно так Mac OS X ожидает обнаружить оперативную память и другие устройства. Это совершенно не соответствует распределению MEM1/MEM2 консоли Wii.Поэтому было крайне важно адаптировать ядро таким образом, чтобы оно «понимало» структуру памяти консоли, не вступая в конфликт с остальным оборудованием.
Как подробно описывает сам разработчик в документации, опубликованной в его блоге и на GitHub, процесс включал в себя бесчисленные тесты, перезагрузки и постепенные изменения. Целью было создание ядра XNU, разработанного для компьютеров Macintosh начала 2000-х годов, согласился бы начать работу в совершенно другой обстановке. без потери устойчивости.
Контроллеры, видео и USB: аппаратная головоломка
После решения базовых проблем с запуском возникли обычные сложности при попытке установить операционную систему на непредвиденное устройство: КонтроллерыВ Wii используется конструкция с основным процессором PowerPC и дополнительным чипом на базе ARM, отвечающим за управление некоторыми периферийными устройствами, что еще больше усложняет задачу.
Для того чтобы Mac OS X функционировала в минимально работоспособном режиме, Келлеру пришлось разработать собственные драйверы для нескольких ключевых компонентов. Он начал с... доступ к слоту SDЭто необходимо для того, чтобы система распознала носитель информации, с которого она загружает данные и на котором они сохраняются. Без этого носителя система даже не сможет завершить загрузку.
Ещё одним важным вопросом был вывод видео. Wii и Mac OS X Cheetah не соответствовали одинаковым ожиданиям в отношении форматов и цветопередачи, что привело к... Хроматические аберрации и проблемы отображения интерфейса AquaКеллеру пришлось скорректировать способ отображения информации на экране в системе Apple, чтобы он соответствовал возможностям консоли.
Поддержка ввода тоже оказалась непростой задачей. Чтобы заставить работать USB-клавиатуру и мышь на Wii под управлением Mac OS X, пришлось долго искать и адаптироваться. Код драйвера USB, которому более двух десятилетий.Сам разработчик рассказывает, как ему пришлось прочесывать IRC-каналы в поисках исходного кода старого USB-драйвера, чтобы адаптировать его к особенностям оборудования Nintendo.
Вся эта работа в итоге привела к созданию полностью загружаемой установки Mac OS X на Wii, с Функциональный рабочий стол, перемещение указателя мыши, ввод с клавиатуры и распознавание хранилища.Это не система, предназначенная для интенсивного использования, но она достаточно совершенна, чтобы считать эксперимент технически успешным.
Его преданность делу достигла такой степени, что Келлер взял консоль с собой в поездку, чтобы продолжить работу во время отпуска на Гавайях, используя каждую свободную минуту для продвижения проекта. Эта настойчивость позволила сообществу консультироваться с... Подробное руководство и общедоступный исходный код порта.Это особенно полезно для европейских разработчиков и энтузиастов, которые хотят изучить этот случай или попробовать что-то подобное на своей консоли.
Mac OS X 10.0 Cheetah: старая операционная система Apple в корпусе Wii
Выбор системы для этого эксперимента был сделан не случайно. В качестве операционной системы была выбрана Mac OS X 10.0 Cheetah. Первая коммерческая версия современной операционной системы от Apple.Выпущенная в 2001 году и построенная на основе ядра Darwin с архитектурой UNIX, она представляла собой значительный шаг вперед по сравнению с классической Mac OS 9 благодаря вытесняющей многозадачности, защите памяти и более надежному системному подходу.
Cheetah также служил воротами к графическому интерфейсу Aqua, с Более сложные визуальные эффекты для того времени, прозрачность и графический движок Quartz на основе PDF-файлов.Запуск всего этого на Wii, без доступа к расширенному графическому ускорению Mac на тот момент, вынуждал значительную часть рендеринга выполняться на центральном процессоре, что, как следствие, приводило к снижению производительности.
С технической точки зрения, система использует Гибридное ядро XNU Mach/BSD, файловая система HFS+ и библиотеки Carbon и Cocoa.Эти системы сосуществовали, поддерживая как классические приложения, так и более современное программное обеспечение. Для того чтобы всё это работало на Wii, необходимо было реализовать буфер кадров и разрешение, совместимые с ожиданиями системы, адаптировав графику Aqua к среде консоли.
В результате получилась Mac OS X 10.0, которая может загружаться на Nintendo Wii, отображать полный рабочий стол и реагировать на ввод пользователя, хотя... с длительным временем загрузки и некоторой задержкой при обработке окон и меню.Учитывая, что речь идёт об оборудовании с объёмом оперативной памяти менее 100 МБ и очень простым процессором, это скорее техническая демонстрация, чем комфортная рабочая среда.
Помимо производительности, проект в очередной раз подчеркивает роль Cheetah как исторического элемента в эволюции Apple. Увидев эту версию на таком другом устройстве, как Wii, можно, с определенной перспективой, оценить, В какой степени macOS продвинулась за последние годы? А что означала эта смена эпохи в начале 2000-х годов?
Задача, которая начиналась с фразы "это невозможно".
Все это, скорее, продиктовано любопытством, чем практической пользой. По словам сообщества, следившего за проектом, Келлер решил его запустить после того, как кто-то заявил, что Запустить macOS на Wii было невозможно.Для любого энтузиаста операционных систем это звучит почти как приглашение.
В последние годы подобные инициативы получили широкое распространение на европейских форумах и в сообществах, посвященных ретро-оборудованию, — попытки перенести старые системы на консоли, микрокомпьютеры или оборудование, которое никогда не входило в планы производителей. Они стремятся не столько предложить практическое решение, сколько... Исследуйте пределы возможностей аппаратного обеспечения и узнайте больше о том, как системы работают изнутри..
В данном случае проект Cheetah для Wii стал очень наглядным примером того, что значит адаптировать сложную операционную систему к совершенно другой платформе: модификация ядра, понимание карты памяти, написание драйверов и работа с особенностями каждого компонента. Все это также открыто документировано для анализа сообществом.
Для студентов, разработчиков и энтузиастов компьютерных наук в Испании и по всей Европе знакомство с таким подробным репозиторием и техническим описанием представляет собой ценную возможность для обучения. Исходный код, опубликованный на GitHub, и пояснения автора позволяют вам шаг за шагом следить за ходом работы. Как разобрать и собрать заново систему, такую как Mac OS X, в незнакомой среде.
Помимо развлекательной составляющей, подобные проекты также помогают сохранить историческое программное обеспечение. Поддержание работоспособности такой старой версии Mac OS X путем запуска ее на альтернативном оборудовании способствует ее сохранению. Не следует ограничиваться только скриншотами или старыми видео.но при этом она остается системой, с которой можно по-настоящему взаимодействовать, пусть даже только экспериментально.
Ретро-оборудование получило вторую жизнь.
Один из главных посылов этого эксперимента заключается в том, что старое оборудование, отнюдь не являясь просто очередным хламом, собирающим пыль, Это может стать очень интересной платформой для технических проектов.Приставка Wii, которую сейчас легко найти на европейском рынке подержанных товаров по сниженным ценам, отлично вписывается в эту концепцию.
Архитектура PowerPC, низкое энергопотребление и относительно гибкая структура для загрузки пользовательского программного обеспечения делают его привлекательным кандидатом для разработчиков, желающих экспериментировать с операционными системами, драйверами или даже образовательными проектами. Да, это скромная среда, но Это требует оптимизации ресурсов и очень хорошего понимания того, за что отвечает каждый компонент.Это то, что утрачено при использовании современного, избыточного оборудования.
В образовательных учреждениях или для самообразования наличие недорогой платформы для экспериментов без риска повреждения рабочего компьютера является ценным активом. Такие проекты, как проект Келлера, демонстрируют, что можно использовать списанные игровые приставки не только для развлечений, но и для других целей. от исследований ядра до изучения классических архитектур..
Это не означает, что Wii станет «новым Mac» для повседневного использования, и не значит, что установка Cheetah имеет смысл для решения повседневных задач. Сам разработчик ясно даёт понять, что это всего лишь техническая демонстрация. существенные ограничения в производительности, совместимости приложений и поддержке устройств.Но как интеллектуальное упражнение и инструмент обучения проект более чем оправдал свою цель.
С определённой точки зрения, эта история в значительной степени суммирует тенденцию: в то время как рынок постоянно обновляется новыми моделями консолей и компьютеров, часть технологического сообщества продолжает находить ценность в Дать вторую жизнь старым устройствам, расширив их возможности за пределы того, что представляли себе их создатели.В конечном итоге именно это сочетание любопытства, знаний и настойчивости позволяет Nintendo Wii отображать рабочий стол Mac OS X 10.0 Cheetah сегодня.