Início
- Em 2012, ao executar Linux em um microcontrolador de 8 bits (AVR), foi estabelecido um recorde mundial de rodar Linux na máquina com as menores especificações
- Em 2023, surgiu um projeto que inicializa o Linux no MOS 6510, com especificações ainda mais baixas que as do AVR
- O Intel 4004 foi o primeiro microprocessador comercial do mundo, e este projeto começou para estabelecer um novo patamar mínimo de especificações com esse chip de 4 bits
4004
- O 4004 opera em unidades de 4 bits e foi desenvolvido principalmente para calculadoras
- Não possui operações lógicas; existem basicamente apenas instruções ADD e SUB
- Método de operação único usando a flag de carry
- Possui 16 registradores de 4 bits, contador de programa de 12 bits e uma pilha de hardware de 4 níveis
- Exige uma velocidade mínima de clock e não tem suporte a interrupções
- Existem algumas instruções capazes de realizar operações de memória diretamente
Fluxo de controle
- Chamada e retorno de sub-rotinas usando a pilha de hardware
- Existem instruções de salto condicional, e eventos externos podem ser detectados pelo pino TEST
- Usa o conceito de páginas de código para gerenciar um espaço de código de 4096 bytes
Memória e I/O
- O 4004 não processa instruções de memória diretamente; os chips de memória fazem isso
- Suporta até 8 bancos de RAM, e cada banco é composto por 4 chips 4002
- O 4001 inclui 256 bytes de ROM e uma porta de I/O de 4 bits
- O 4265 é um dispositivo de I/O genérico com 4 portas de I/O de 4 bits
4008, 4009, 4289
- O 4008 e o 4009 foram projetados para permitir interface com chips de memória comuns
- O 4289 é um chip que combina o 4008 e o 4009, capaz de se comunicar com níveis de sinal de 5V
Uso de memória e nibble de estado
- O comando DCL é usado para selecionar o banco de memória
- Cada banco de RAM é composto por 4 chips 4002, e cada chip tem 16 nibbles endereçáveis e 4 nibbles de estado
Resumo do GN⁺
- Este projeto ajuda bastante a entender como funcionavam microprocessadores iniciais como o Intel 4004
- Mostra como superar o design único e os recursos limitados do 4004
- Oferece a oportunidade de vivenciar as limitações dos primeiros microprocessadores em comparação com microcontroladores modernos
- Um projeto semelhante em funcionalidade é o de inicializar Linux no MOS 6510
2 comentários
Então o autor original é aquele sujeito que desta vez foi retirado do palco na DEF CON por causa do badge. Não vou tomar partido, mas a habilidade dele é realmente impressionante.
Comentários do Hacker News
Eu achava que o NetBSD era lento em um m68030 de 15 MHz, mas este projeto é realmente impressionante
Quero ampliar meu conhecimento a ponto de conseguir entender este projeto
Gosto de exemplos com AVR, e agora surgiu um novo exemplo
Este projeto não saiu barato, obrigado aos colecionadores do Ebay
Projeto incrível
Levaram 9 dias para gravar o vídeo, 4 horas por segundo emulado
Este tipo de projeto merece um Nobel
Leitura muito interessante
Máquinas virtuais (Z-machine ou JVM) funcionavam nos primeiros microcomputadores
Na seção "Why MIPS?":