For faster navigation, this Iframe is preloading the Wikiwand page for DSLinux.

DSLinux

DSlinux
Parte de GNU/Linux

DSLinux ejecutándose en una NDS Lite usando adaptador "M3 DS" y el cartucho GBA Movie Player
Información general
Tipo de programa distribución Linux
Modelo de desarrollo código abierto
Licencia GPLv2
Estado actual estancado
Información técnica
Programado en
Núcleo Linux (μClinux)
Plataformas admitidas Nintendo DS
Interfaz gráfica predeterminada teclado virtual
Enlaces

DSLinux es una adaptación del sistema operativo Linux para la Nintendo DS.[1]

Software

[editar]

Ejecuta un versión modificada del núcleo μCLinux y está basado en uCLinux 2.6.14 (Linux-2.6.14-hsc0). Solo se ejecuta en modo texto y Nano-X, el cual es mostrado mediante el Controlador de dispositivo de framebuffer personalizado para la consola. Se interactúa mediante un teclado virtual mostrado en la pantalla táctil de la Nintendo DS. Está compilado usando GCC.[1]

Se han portado las bibliotecas ncurses, libpcap y SDL, junto con otras, así DSLinux es en teoría capaz de ejecutar casi cualquier aplicación cuya interfaz de usuario se base en ncurses o framebuffer. Es capaz de ejecutar aplicaciones shell básicas proporcionadas por Busybox y GNU Coreutils, tales como los editores de texto vi y nano, navegadores web como Links, y reproductores como madplay.[1]​ La biblioteca estándar de C es uClibc.

Hardware soportado

[editar]

A excepción del micrófono, todo el hardware interno de la Nintendo DS, incluyendo la red inalámbrica está soportada por DSLinux. El firmware de Nintendo DS se puede leer desde /dev/firmware, pero el soporte de escritura no se ha incluido por medidas de seguridad. No está soportado por la familia Nintendo DSi.

Soporta almacenamiento de ficheros en ciertos dispositivos de hardware externos. Puede almacenar ficheros en la memoria SRAM en las tarjetas GBA Flash, CompactFlash y SD, a través de los siguientes adaptadores:[2]

  • GBAMP
  • Tarjetas M3
  • SuperCard

Versiones más recientes han incluido soporte para DLDI, permitiendo un más amplio rango de compatibilidad.

También es soportado por emuladores como DeSmuMe, el cual se puede ejecutar usando las imágenes de ROM disponibles.

Limitaciones de Memoria

[editar]

La Nintendo DS no tiene Unidad de manejo de memoria (MMU), y consta tan sólo de 4 MB de RAM. Tanto la ejecución espacio de núcleo, como en espacio de usuario "execute in place" XIP, como la reserva de memoria de SLOB fueron las primeras técnicas usadas para incrementar un poco la cantidad disponible de RAM. Posteriormente, el soporte para la RAM interna presente en ciertos dispositivos adicionales, tales como la SuperCard o M3, ha sido añadido, ofreciendo una memoria extra de 32MB.

Esto último no fue trivial, pues las ranuras del bus GBA únicamente soportan escrituras de 16-bits. Si se envía sólo 8 bits por el bus, el resultado que queda en memoria es basura. Un desarrollador, llamado Amadeus, encontró una solución para ello, que requiere del reemplazo de la instrucción de ensamblador ARM "strb" por "swpb" (swap byte). Dicha instrucción primero lee de la dirección de memoria requerida, poblando la caché de datos, entonces una escritura de 8-bit es realizada en la caché. A continuación, cuando la info de la caché es leída, se usan lecturas de 16-bit, eliminando todas las escrituras de 8-bit en el bus. Amadeus modificó la generación de código de GCC para ARM, tal que todo lo compilado para DSLinux usa ahora instrucciones swpb en vez de strb. El código Ensamblador en el núcleo Linux ha tenido que ser adaptado manualmente.

Referencias

[editar]
  1. a b c AurosZx (30 de diciembre de 2011). «DSLinux: Linux corriendo en un Nintendo DS». Desde Linux. Consultado el 15 de agosto de 2020. 
  2. Samathy (27 de mayo de 2018). «DSLinux on a DSLite with an M3DS Real card and SuperCard SD». Medium (en inglés). Consultado el 15 de agosto de 2020. 

Enlaces externos

[editar]
{{bottomLinkPreText}} {{bottomLinkText}}
DSLinux
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?