Así es Linux funcionando sobre una Nintendo NES de 8 bits

La simulación nos permite obtener lo que parece imposible, y NES86 es, sin duda, uno de los proyectos más sorprendentes que hemos podido ver últimamente. Esta es una versión muy pequeña del núcleo de Linux Trabajando en la consola Nintendo NESComo puede imaginar, debido a la simulación, esto es posible.
La persona a cargo del proyecto es «desapazado», que es un video muy interesante que comparte todas las claves en un programador que hará felices a la mayoría de los «monstruos». Para comprender la complejidad de este proyecto, debemos considerar NES Menos especificaciones Más que cualquier PC que pueda mover Linux.
Tu CPU es Richoh 2a03 de 8 bits A 1.79 MHzmucho más bajo que el chip utilizado por PCS (como IBM 5150), que es un chip de 16 bits 4.77 MHz Casi puedo manejar las instrucciones el doble. Sin embargo, hay ciertas similitudes entre los dos, lo que hace posible llevar a cabo el proyecto siguiendo el ejemplo.
Esencialmente, el «declazy» creado es un simulador para PC IBM 5150 que funciona en Nintendo NES, Esto significa todas las complicaciones, Porque se trata de simular un sistema más potente en sistemas significativamente más bajos. Este es un proyecto interesante, aunque a diferencia de NES-OS.
El procesador es uno de los principales problemas, pero la memoria no está lejos. La base del proyecto gira en torno a los Elks, la abreviatura en inglés para los subconjuntos de núcleo Linux integrados, de una manera simple, que es la base más simple para Linux y la base para consumir los menos recursos. Tantos Solo se necesitan 128 kb RAM, Es ridículo para el estándar actual, pero si hablamos del NES de Nintendo, eso es alto, y el NES de Nintendo es de solo 2 kb.
Cómo mover a Linux en NES con solo 2 KB RAM
Para resolver este problema, se ha utilizado Chip de mapeo, Esto hace solo una pequeña porción de la memoria del cartucho en cada momento específico y permite que la CPU elija qué parte de la memoria se espera que sea visible, una técnica conocida como conmutación de banco de memoria. Solución de fusión de NES Capacidad para administrar hasta 1 MB de ROM en cartuchoseste proyecto es necesario.
Esa cantidad es suficiente para almacenar emuladores, biografía de PC, kernel de Linux, archivos del sistema y dejar algo de espacio libre, pero lo siguiente es complicado, ya que es necesario hacer que Linux comprenda cómo funciona este sistema de memoria, y Use RAM y ROM como espacio de memoria adyacente único de 20 bits.
El siguiente paso es preparar la simulación a nivel de CPU, y el efecto se divide en cuatro etapas principales: Buscar, decodificar, ejecutar y escribir. Cada una de estas etapas juega un papel fundamental. Durante la fase de búsqueda, la dirección de la siguiente instrucción de la CPU se calcula y se copia en la memoria caché de instrucciones del procesador.
Se analizó la etapa de decodificación Determina su función y su valor válido. Estos valores se copian a la ubicación temporal que se utilizará más adelante. Durante la fase de ejecución, ejecutan la tarea de cálculo de instrucciones y el resultado se almacena en otra ubicación de tiempo. Finalmente, durante la fase de escritura, copie los resultados en su ubicación definida y luego comience el proceso desde la fase de búsqueda.
Todo parece haber mejorado, pero al final, el proyecto es tan complejo que no se puede usar con los cartuchos normales de Nintendo NES, y no hay más remedio que recurrir a una «habilidad» bastante curiosa, Los piratas informáticos invaden simuladores de NES que se han integrado en crossovers de animales. Este es un proceso complejo, especialmente debido a los límites de memoria impuestos por el simulador, pero es posible superar estos límites al final y el proyecto puede tener éxito.
El resultado se puede ver al final del video que el NES86 ejecuta el muelle de Linux sin ningún problema en un emulador dentro de otro simulador Nintendo NES NES. Como se esperaba, el rendimiento no es el mundo entero, y como prueba tenemos una demostración de Tetris, que funciona cada treinta segundos con su versión más simple (solo en blanco y negro). Sí, su lectura es buena y se genera un marco cada treinta segundos.
Puedes consultar la fuente de este artículo aquí