Энтузиаст, недавно выпустивший Linux для Atari Jaguar 1993 года, собрал версию открытой ОС и для Sega 32X 1994-го. Если вы не помните эту приставку, это был промежуточный ответ Sega ранним конкурентам пятого поколения — Jaguar, 3DO и Amiga CD32. Компания добавила солидную вычислительную мощность через расширение-«грибок», втыкавшееся в популярную Mega Drive.

Приставка Sega 32X, установленная на консоль Mega DriveИсточник изображения — tomshardware.com

Что представляла собой 32X

По сравнению с базовой консолью расширение выглядело внушительно. Основная система годами опиралась на способный, но устаревший Motorola 68000 на 7 МГц, а модуль добавлял пару Hitachi SuperH SH2 с частотой 23 МГц. Оперативная память росла с базовых 64 КБ на 256 КБ. Прибавка касалась не только скорости: палитра поднималась с 64 до 32 000 одновременных цветов, а запаса мощности хватало на элементы трёхмерной графики, прежде недоступные массовым консолям.

реклама кормит Уточку 🦆

Список препятствий

Как и в истории с Jaguar, блог автора описывает длинную череду трудностей на пути к загрузке ядра и запуску BusyBox. Самыми тяжёлыми оказались ещё более жёсткие ограничения по памяти, отсутствие аппаратных примитивов синхронизации, попытка заставить работать SMP на двух процессорах SH2, отсутствие прямого доступа к UART и ошибки планировщика.

Стоит оценить масштаб задачи: 256 КБ ОЗУ — это меньше, чем требуется современному ядру Linux просто для запуска в конфигурации по умолчанию. Работоспособная система здесь означает предельно урезанную сборку без виртуальной памяти, где каждый килобайт на счету. Отсутствие аппаратной синхронизации при этом усложняет как раз то, ради чего два процессора и ставят: безопасную работу с общими данными.

реклама кормит Уточку 🦆

Из хорошего: процесс упростили доступ к набору разработчика Chilly Willy для 32X, проект linuxmd, флеш-картридж на базе ПЛИС с инструментами маппинга ПЗУ и ОЗУ, а также сохранившаяся документация по SH2 и чужие примеры.

Загруженный Linux с приглашением BusyBox на Sega 32XИсточник изображения — tomshardware.com

Зачем это нужно

Практической пользы у такого порта, разумеется, немного: играть от этого лучше не станет, а работать в консоли на телевизоре 90-х — сомнительное удовольствие. Ценность в другом. Подобная работа требует разобраться в архитектуре с нуля, написать низкоуровневый код под нестандартную конфигурацию и решить задачи, с которыми не сталкиваются на типичных платформах.

реклама кормит Уточку 🦆

Отсюда и вполне прикладной мотив: автор из Испании прямо говорит, что такие проекты формируют его портфолио и, как он надеется, помогут в поиске работы. Для встраиваемой разработки это, пожалуй, аргумент убедительнее любого резюме — задачи там нередко ровно те же, просто вместо консоли из 90-х промышленный контроллер.

Остаётся вопрос о следующей цели. Логичным продолжением выглядит Sega Saturn с её сложной многопроцессорной архитектурой — платформа, об которую в своё время споткнулись даже профессиональные студии.