cakehonolulu geliştiricisi Atari Jaguar oyun konsoluna Linux'u aktardı 1993 yılı. Konsolda Linux 7.2.0-rc1+ çekirdek ve BusyBox tabanlı minimal bir kullanıcı ortamı yüklenmeyi başardı, hem emülatör hem de gerçek donanım üzerinde kartuşla çalıştırma anlamında.
Görev, Jaguar mimarisi nedeniyle basit değildi. Konsolda toplam 2 MB RAM, kartuşta 6 MB'a kadar ROM ve MMU olmayan Motorola 68000 ana işlemcisi bulunuyor. Böyle bir donanım için normal Linux yükleme şeması uygun değildir, bu nedenle geliştirici m68k/uClinux için NOMMU modunu ve düz bellek modelini kullandı.
Çekirdeği konsolun sınırlamalarına uyacak şekilde bellek ve kartuş arasında bölmek gerekiyordu: değişmeyen bölümler olan .text ve .rodata doğrudan ROM'dan XIP şeması ile çalıştırılırken, değiştirilebilir .data ve .bss RAM'de yerleştirildi. Erken mesaj çıkışı için DSP çipi Jerry kullanıldı; TXD/RXD seri hatları ve zamanlayıcıları mevcut. Daha sonra geliştirici, gerçek konsolda çıkışın çalışması için Tom çipi için basit bir konsol sürücüsü ekledi. Bu ayrıntılar, Jaguar'da Linux'un yüklenmesi için gereksinimlerin ne olduğu bölümünde açıklanmaktadır.
Kullanıcı ortamı mümkün olduğunca azaltıldı. MMU'nun yokluğunda ELF dosyaları yerine FLAT ikili dosyaları kullanıldı; BusyBox doğrudan shell olarak başlatıldı, standart applet bağlantı seti kurulmadan, çünkü bu bellek sorunlarına yol açıyordu. Ayrıca, Buildroot üzerinden uClibc'nin yapılandırılması gerekiyordu, bunun yanında bellek tahsisi için daha basit bir malloc-simple stratejisi; bu konu Kullanıcı Alanı.
Bu tür bir portun pratik bir faydası yok: Atari Jaguar, kullanışlı bir Linux bilgisayarına dönüşmüyor. Ancak deney, Linux'taki eski donanım desteğinin ne kadar ileri gidebileceğini ve m68k mimarisinin ne kadar dayanıklı olduğunu gösteriyor. Modifiye edilmiş çekirdeğin kaynak kodları cakehonolulu/linux_jag.
Mənbə: linux.org.ru
