http://meiobit.com/310238/dmitry-pc-linux-em-8-bits-maquina-de-turing/
Uma das coisas mais legais da mentalidade hacker é valorizar o espirito fuçador. independente da praticidade. O Hacker Verdadeiro é uma espécie de estudante de designer que faz as coisas que imagina, mas sabe que elas não são práticas. Não importa, o objetivo é fazer para descobrir se podem ser feitas, e aprender com isso.
Nesse quesito Dmitry Grinberg é, sem dúvida, um Hacker Verdadeiro. Seu projeto é absolutamente inútil, tem zero de praticidade e faz todo Legítimo Fuçador bater palmas. Ele criou o PC Linux mais lento do mundo.
Tudo começou nos fóruns de microcontroladores, que são processadores simples, ou como dizíamos antigamente, “caraca mané, um Z80!”. Todo n00b pergunta se dá pra instalar Linux em um microcontrolador ATmega1284p, um bichinho com 128 kB de memória flash, 16 kB de SRAM, clock de 20 MHz e CPU de 8 bits. Não, não roda Crysis.
A resposta, claro, é sempre não, mas nas melhores palavras de James Bond, não não é resposta. Dmitry começou a resolver as limitações no hardware, criando isto aqui:
Ele interfaceou ao microcontrolador um módulo de memória SIMM de 1 MB. Não é 1 GB, é um megabytezinho apenas. Eu lembro quando comprei pentes desses pro meu 386. Custaram o equivalente a US$ 50/MB na época.
Na traseira um leitor de cartão SD de 1 GB, com os arquivos do Ubuntu, afinal o Linux tem que vir de alguém lugar.
Agora outro problema: o Linux não roda em processadores de 8 bits, não é nem questão do clock de 20 MHz. O que fez Dmitry então: usou Ciência da Computação, da boa, daquela que faria Alan Turing se orgulhar.
Um dos conceitos da Computação é a Máquina de Turing, um computador imaginário e ideal. Como ele é infinito todos os computadores do mundo estão contidos nele. Só que pelo próprio postulado de Turing, todo computador é capaz de emular qualquer outro computador, e foi isso que Dmitry fez.
Ele escreveu um emulador de uma CPU ARMv5 de 32 bits, emulando memória, hardware, tudo. Para todos os fins práticos, o Linux estava rodando em uma CPU de 200 MHz com gerenciamento de memória, mesmo o hardware só conseguindo ler e gravar no SIMM a 300 kB/s. 62 ms, isso é algumas ordens de magnitude mais lento que as memórias atuais.
O resultado é que a CPU emulada roda a inacreditáveis 6,5 kHz. Não MEGAhertz, QUILOhertz. Nem eu que tive um CP-200 rodei algo na faixa dos kHz de clock.
Como isso se traduz em velocidade? Ele leva quatro horas para bootar na shell, e se carregar o Ubuntu inteiro com XServer, aí são mais quatro horas.
Se você ficar no shell somente, diz Dmitry que é tranquilo, dá pra você digitar um comando em mais ou menos um minuto. Pior, ele está certo. É um triunfo da hackeragem e um tributo à simplicidade e elegância do Kernel do Linux não-fofoletizado. Veja o vídeo, com partes aceleradas e partes em tempo real: