DSLinux
DSLinux port operačného systému Linux pre Nintendo DS.
Softvér
[upraviť | upraviť zdroj]DSLinux funguje na modifikovanom μClinux kerneli. Momentálne je založený na μClinux 2.6.14. Pracuje iba v textovom móde a Nano-X. Vstup sa zadáva pomocou klávesnice zobrazenej na dotykovej obrazovke Nintenda DS.
DSLinux je kompilovaný pomocou toolchainu pre procesory ARM architektúry, založenom na GCC.
Portované boli mnohé knižnice - medzi inými ncurses, libpcap, SDL. Teoreticky je preto možné spustiť takmer akúkoľvek aplikáciu, ktorej užívateľský interface je založený na ncurses alebo frame bufferi. Taktiež spúšťa základné shell aplikácia zabezpečené BusyBoxom, prípadne GNU Coreutils.
DSLinux nemá žiadneho správcu balíkov (packages). Buildy DSLinuxu sú distribuované ako jediný tar archív.
Podporovaný hardvér
[upraviť | upraviť zdroj]Okrem mikrofónu je podporovaný všetok hardvér Nintenda DS, vrátane WiFi. Firmware je možné prečítať z /dev/firmware, no jeho prepisovanie je z dôvodu bezpečnosti zakázané.
DSLinux podporuje ukladanie súborov na rôzne prídavné hardvérové zariadenia, z ktorých žiadne nie je oficiálne podporované Nintendom.
Obmedzenia
[upraviť | upraviť zdroj]Nintendo DS nemá jednotku na správu pamäte (MMU), a má iba 4 MB pamäte RAM. Neskôr boli pridané rozšírenia ponúkajúce až do 32 MB pamäte.
Pridanie podpory externej RAM bolo problematické, pretože GBA slot povoľuje iba 16-bitové zápisy. Pri zapísaní iba 8 bitov by bola pamäť zbytočne zahltená. Tento problém sa podarilo obísť použitím inej inštrukcie. Modifikáciou generátora kódu GCC pre ARM bolo zabezpečené eliminovanie takýchto zápisov. Kód kernelu Linuxu ale musel byť upravený manuálne.