Foram vistos muitas soluções para rodar jogos NES em hardware que não seja do NES, mas não tantas para rodar software não-NES no próprio NES. Contudo, agora é possível rodar Linux no NES, como demonstrado por DeCrAzYo, um programador e entusiasta de tecnologia, em um vídeo no YouTube. Sua solução se baseia apenas no hardware original da Nintendo e inclui até mesmo software que ele mesmo teve que codificar.
A inspiração para esse projeto parece ser hacks que afirmam executar código não-NES no NES, mas acabam utilizando dispositivos como o Raspberry Pi, o que DeCrAzYo considera basicamente usar o NES como saída gráfica. Seu objetivo era rodar Linux no processador do NES e na sua memória, usando hardware completamente original, o que certamente é um desafio muito maior a ser superado.
O principal problema é que o hardware usado no NES é extremamente insuficiente para rodar o Linux, já que há apenas 2 KB de RAM disponíveis. Devido a essa limitação, DeCrAzYo decidiu utilizar um sistema operacional semelhante ao Unix em vez de uma distribuição Linux real. Isso coloca um asterisco no projeto de rodar Linux no NES, já que sistemas operacionais do tipo Unix incluem o MacOS e até mesmo o Windows, porém pode ser considerado próximo o suficiente, e ele não parece ter tido muita escolha.
É importante ressaltar que nenhum sistema operacional foi desenvolvido para rodar no NES, o que significava que o programador teve que fazer sua própria codificação. No entanto, ele começou com o LUnix ou Little Unix, um sistema operacional atualizado pela última vez em 2004 e destinado a rodar no Commodore 64. Embora o NES e o Commodore 64 sejam sistemas bastante diferentes, o último possui impressionantes 64 KB de RAM, um teclado integrado e leitores para cassetes e discos.
Tudo funciona porque os dois consoles possuem CPUs muito semelhantes baseadas no 6502, o que torna o LUnix principalmente compatível com o NES. Além disso, para obter todas as funcionalidades de teclado e disco, basta utilizar um Famicon (a versão japonesa do NES) com seu Disk System e acessórios de teclado; o Disk System ainda vem com 32 KB extras de RAM. O único obstáculo foi modificar o LUnix e escrever drivers para os acessórios para que tudo funcionasse, o que foi difícil, mas não impossível para o desenvolvedor.
A versão modificada do LUnix pode rodar com sucesso no Famicom, incluindo a capacidade de executar vários shells e recuperar o histórico de comandos. Quanto ao NES, não há acessórios oficiais para teclado ou unidade de disco, mas DeCrAzYo demonstrou que poderia pelo menos rodar o kernel LUnix colocando o sistema operacional em um cartucho EverDrive-N8 (o que certamente apresenta mais um obstáculo neste projeto). Isso não significa que seja impossível usar o LUnix no NES. Para contornar esse problema, o desenvolvedor sugere: “Poderíamos criar um cartucho que forneça mais RAM… conectar um teclado… e até mesmo adicionar uma unidade de disco, para garantir.” DeCrAzYo optou por utilizar o Famicom pela simplicidade. Ainda assim, qualquer usuário poderia dar um passo adiante baixando o sistema operacional NES-LUnix do GitHub do desenvolvedor e conectar todo esse hardware da maneira mais difícil.