Разработчик cakehonolulu портировал Linux на Sega 32X, несмотря на острую нехватку оперативной памяти и отсутствие аппаратной синхронизации
Sega 32X получила два процессора Hitachi SuperH SH2 на частоте 23 МГц и 256 КБ собственной оперативной памяти, что резко усилило базовую Genesis
Ключевыми препятствиями стали ограниченные 256 КБ ОЗУ, отсутствие UART-доступа и необходимость настройки SMP для двух чипов
Успешный порт Linux на редкие ретро-консоли помогает разработчику формировать портфолио для поиска работы
Энтузиаст, недавно выпустивший Linux для Atari Jaguar 1993 года, собрал версию открытой ОС и для Sega 32X 1994-го. Если вы не помните эту приставку, это был промежуточный ответ Sega ранним конкурентам пятого поколения — Jaguar, 3DO и Amiga CD32. Компания добавила солидную вычислительную мощность через расширение-«грибок», втыкавшееся в популярную 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 и чужие примеры.
Источник изображения — tomshardware.com
Зачем это нужно
Практической пользы у такого порта, разумеется, немного: играть от этого лучше не станет, а работать в консоли на телевизоре 90-х — сомнительное удовольствие. Ценность в другом. Подобная работа требует разобраться в архитектуре с нуля, написать низкоуровневый код под нестандартную конфигурацию и решить задачи, с которыми не сталкиваются на типичных платформах.
Отсюда и вполне прикладной мотив: автор из Испании прямо говорит, что такие проекты формируют его портфолио и, как он надеется, помогут в поиске работы. Для встраиваемой разработки это, пожалуй, аргумент убедительнее любого резюме — задачи там нередко ровно те же, просто вместо консоли из 90-х промышленный контроллер.
Остаётся вопрос о следующей цели. Логичным продолжением выглядит Sega Saturn с её сложной многопроцессорной архитектурой — платформа, об которую в своё время споткнулись даже профессиональные студии.












