cakehonolulu-ի մշակողը Linux-ը Atari Jaguar խաղային կոնսոլի վրա 1993 թվականին: Կոնսոլում հաջողվեց ներբեռնել Linux 7.2.0-rc1+ միջուկն ու BusyBox հիմքով նվազագույն օգտվողական միջավայր, причём речь идет не только об эмуляторе, sondern auch über den Start auf echter Hardware через картридж.
Պայմանները ոչ հեշտ էին Jaguar-ի ճարտարապետության պատճառով: Կոնսոլը ունի ընդամենը 2 МБ ОЗУ, до 6 МБ ПЗУ на картридже и основной процессор Motorola 68000 без MMU. Для такого железа обычная схема загрузки Linux не подходит, поэтому разработчик использовал NOMMU-режим для m68k/uClinux и плоскую модель памяти.
Ուրախ միջուկը տեղավորվեց կոնսոլի սահմաններում, այն բաժանվեց հիշողության և картриджа միջև: Անփոփոխ հատվածները, такие как .text и .rodata, выполняются прямо из ROM по схеме XIP, а изменяемые .data и .bss размещаются в ОЗУ. Ռոնդ վերջին փոխանցման մեջ օգտագործվեց DSP-чիպ Jerry, у которого есть последовательные линии TXD/RXD и таймеры, а позднее разработчик добавил простой консольный драйвер для чипа Tom, чтобы вывод работал и на реальной приставке. Эти детали описаны в разделе о том, что требуется Linux для загрузки на Jaguar.
Օգտվողական միջավայրի համար ամբողջականությունը հնարավոր եղավ առավելագույնս նվազեցնել: MMU-ի բացակայության պատճառով կիրառվում են не ELF-файлы, а FLAT-бинарники; BusyBox запускается напрямую как shell, без стандартной установки набора applet-ссылок, поскольку это приводило к нехватке памяти. Также потребовалась настройка uClibc через Buildroot, включая более простую стратегию выделения памяти malloc-simple; подробнее это разобрано в разделе Userspace.
Այսպիսի պորտի գործնական օգտակարությունը գրեթե գոյություն չունի: Atari Jaguar-ը չի վերածվում հարմար Linux-компьютера, բայց դրա վրա կատարված փորձերը շատ լավ ցույց են տալիս, թե որքան հեռու կարող ենք գնում լինել Linux-ում հին սարքերի համար և որքան դիմադրող է մնում m68k ճարտարապետությունը: Մոդիֆիկացված միջուկի աղբյուրը հրապարակված է cakehonolulu/linux_jag.
Ընտանիք: linux.org.ru
