Домой Новости Железо Linux запустили на игровой приставке Atari Jaguar

Linux запустили на игровой приставке Atari Jaguar

Оптимизация под 2 МБ ОЗУ и процессор Motorola 68000: как энтузиаст запустил ядро Linux на консоли 30-летней давности.

Запуск Linux на ретро-приставке Atari Jaguar
Экспериментальный запуск Linux на консоли 1993 года Источник: linux.org.ru

Энтузиаст под ником cakehonolulu совершил необычный технический подвиг, успешно портировав операционную систему Linux на игровую консоль Atari Jaguar, выпущенную еще в 1993 году. Разработчику удалось запустить ядро Linux версии 7.2.0-rc1+ совместно с минималистичным окружением на базе BusyBox не в эмуляторе, а непосредственно на реальном «железе», используя специализированный картридж.

Сложности архитектуры Atari Jaguar

Реализация проекта потребовала серьезной инженерной подготовки из-за жестких аппаратных ограничений консоли:

  • Объем оперативной памяти составляет всего 2 МБ;
  • Максимальный объем ПЗУ на игровом картридже — 6 МБ;
  • Центральный процессор Motorola 68000 лишен модуля управления памятью (MMU).

Ввиду отсутствия MMU, классические методы загрузки Linux оказались неприменимы. Разработчик применил режим NOMMU для архитектуры m68k/uClinux, перейдя на плоскую модель памяти.

Оптимизация ядра

Чтобы вписать ядро в узкие рамки системы, была применена схема разделения ресурсов. Неизменяемые секции кода (например, .text и .rodata) исполняются непосредственно из ПЗУ (технология XIP — Execute In Place), в то время как изменяемые данные (.data и .bss) загружаются в оперативную память. Для обеспечения отладочного вывода на этапе загрузки был задействован DSP-чип Jerry с последовательными линиями TXD/RXD, а для полноценной работы на реальной консоли — специальный драйвер для чипа Tom.

Особенности пользовательского окружения

В отсутствие MMU традиционные ELF-файлы использовать не удалось, поэтому систему перевели на формат FLAT-бинарников. Среда BusyBox запускается в упрощенном режиме напрямую в качестве оболочки (shell). Стандартная схема установки ссылок на апплеты была исключена для экономии драгоценных килобайтов ОЗУ. Кроме того, через систему Buildroot потребовалась тонкая настройка библиотеки uClibc с использованием алгоритма выделения памяти malloc-simple.

Результаты эксперимента

Несмотря на то, что подобный порт не превращает Atari Jaguar в полноценный персональный компьютер, проект демонстрирует невероятную гибкость ядра Linux и жизнеспособность архитектуры m68k даже спустя десятилетия. Исходный код модифицированного ядра уже доступен для ознакомления в репозитории cakehonolulu/linux_jag.

Источник: https://www.linux.org.ru