Ver Linux corriendo en una Sega 32X es de esas cosas que cuesta creer hasta que alguien las pone delante de los ojos. Y eso es justo lo que ha hecho un ingeniero español que se hace llamar Cakehonolulu, capaz de meter un sistema operativo de código abierto en un aparato pensado para los videojuegos de los años noventa. El rendimiento, eso sí, da un poco de risa, pero lo interesante aquí no es la velocidad sino la hazaña en sí misma.
A lo largo de los últimos años han ido apareciendo un montón de proyectos firmados por usuarios muy avanzados en tecnología, gente que disfruta llevando el hardware al límite. Ya hemos visto estos sistemas operativos abiertos funcionando en dispositivos de lo más variopinto, ejecutando programas e incluso juegos que muchos ni se imaginaban. La clave siempre está en lo mismo, conseguir que un hardware poco convencional acabe realizando tareas complejas como arrancar una distribución de Linux.
Antes de este experimento, este mismo ingeniero ya había logrado algo parecido con la consola Atari Jaguar, así que digamos que se ha especializado en resucitar máquinas antiguas para hacerles hacer cosas que jamás estuvieron pensadas para ellas. Ahora le ha tocado el turno a la Sega 32X, un dispositivo que en realidad no era una consola independiente sino un complemento para la Sega Genesis, conocida por estos lares también como Sega Mega Drive.
Poca memoria y mucho ingenio para arrancar el sistema
Conviene recordar de dónde partimos. La Sega 32X salió al mercado en 1994 y añadía 256 KB de SDRAM a los 64 KB de la Genesis, junto con otros 256 KB de VRAM y un par de CPU Hitachi SH-2 funcionando a 23 MHz. Aquí está uno de los grandes problemas del proyecto. Linux es compatible con la arquitectura 68000, pero conseguir que el sistema funcionara sobre las SH-2 exigió un trabajo considerable, tal y como cuenta el propio ingeniero en su publicación.
Cakehonolulu explica que las dificultades venían de una mezcla de varios factores a la vez. El obstáculo principal, sin embargo, era la escasísima memoria disponible para empezar a trabajar. Con tan poco espacio, se puede incluir muy poco en lo que respecta a las características del kernel de Linux, que hace de proceso de inicialización del sistema una vez que la máquina termina de arrancar. Un margen mínimo para maniobrar, vamos, que obligó a exprimir cada byte disponible.
Fuente
Imagen: softzone.es
