Энтузиаст запустил Linux на Sega 32X: консоли 1994 года

Испанский энтузиаст под ником cakehonolulu запустил Linux на Sega 32X, игровую приставку-дополнение 1994 года, о чём 14 июля рассказало издание The Register. Итог порта Linux на ретро-консоль автор описал честно: «производительность отвратительная, конфликт за шину безумный, но оно работает». И его это устраивает.
Это очередная серия мема «Может ли оно запустить Linux?», прямого потомка вопроса «Может ли оно запустить Doom?». Задача в том, чтобы заставить железо, никак для этого не предназначенное, выполнять непосильную работу. Тот же инженер раньше поднимал Linux на другой провальной консоли, Atari Jaguar, а теперь повторил трюк с 32X.
Что такое Sega 32X и почему память: главный враг
Sega 32X был надстройкой для Sega Genesis, известного в некоторых регионах как Sega Mega Drive. Он вышел в 1994 году ровно в тот момент, чтобы попасть под каток PlayStation от Sony, и это на фоне того, что Sega сама готовила настоящего преемника Genesis, консоль Saturn. Прожил продукт недолго: в США он стартовал примерно за $159 и был снят с производства уже в 1995-1996 годах.
Характеристики железа
По железу 32X добавлял 256 КБ SDRAM к 64 КБ самого Genesis, ещё 256 КБ видеопамяти и пару процессоров Hitachi SH-2 на 23 МГц. Для сравнения: Genesis обходился одним Motorola 68000 на 7,6 МГц.
Почему не хватает памяти
Главная беда: крохотный объём памяти, да ещё и фактически уполовиненный: каждому фреймбуферу нужна своя доля. На практике вместить удаётся мало, как в терминах функций ядра Linux, так и Busybox, который работает init-процессом системы после загрузки.
Два процессора SH-2 без примитивов синхронизации
Linux умеет работать с архитектурой 68000, но заставить его крутиться на SH-2 и выводить что-то осмысленное через UART потребовало серьёзного мозгового штурма. Отдельно инженер захотел проверить, реально ли запустить на 32X симметричную многопроцессорность (SMP), при том что у платформы нет аппаратных примитивов для синхронизации между процессорами. Оказалось, можно. Производительность, впрочем, снова «отвратительная».

Cakehonolulu написал простой драйвер вывода на консоль и этим завершил порт. Готовой клавиатуры для Mega Drive/Genesis он так и не нашёл (попались лишь ранние прототипы), поэтому общение с системой ограничено выводами TTL UART.
Зачем нужен Linux на Sega 32X и что дальше
Практического применения тут нет, и автор этого не скрывает: ему нравится сам процесс. Но связка Linux и Busybox служит наглядным примером того, как хорошо написанное ПО люди способны косвенно «поднять» на самом неожиданном железе.
SH-2: та же линейка процессоров, что стояла в Sega Saturn, где их даже больше. Так что на вопрос о следующей цели инженер ответил коротко: «Sega Saturn : )».
В каком-то смысле это та же культура, что и обход цифровых ограничений: заставить систему работать так, как удобно вам, а не как задумали производители. Только вместо доступа к заблокированным сайтам здесь доступ к железу, которое давно списали. Если вам нужны свежие обзоры подобных экспериментов и помощь с ретро-железом, оставайтесь с нами.


Пока нет комментариев. Будьте первым!