Inicio
- En 2012 se logró ejecutar Linux en un microcontrolador de 8 bits (AVR), estableciendo un récord mundial de Linux corriendo en la máquina con las especificaciones más bajas
- En 2023 apareció un proyecto que arrancaba Linux en un MOS 6510, con especificaciones aún más bajas que AVR
- El Intel 4004 fue el primer microprocesador comercial del mundo, y este proyecto comenzó para establecer un nuevo mínimo al arrancar Linux en un chip de 4 bits
4004
- El 4004 opera en unidades de 4 bits y fue desarrollado principalmente para calculadoras
- No tiene operaciones lógicas y existen sobre todo instrucciones
ADD y SUB
- Usa un método de operación particular basado en la bandera de acarreo
- Tiene 16 registros de 4 bits, un contador de programa de 12 bits y una pila de hardware de 4 niveles
- Requiere una velocidad mínima de reloj y no tiene soporte para interrupciones
- Existen algunas instrucciones capaces de realizar operaciones de memoria directamente
Flujo de control
- Llamadas y retornos de subrutinas usando la pila de hardware
- Hay instrucciones de salto condicional, y es posible detectar eventos externos mediante el pin
TEST
- Administra 4096 bytes de espacio de código usando el concepto de páginas de código
Memoria y E/S
- El 4004 no procesa directamente las instrucciones de memoria; los chips de memoria se encargan de ello
- Soporta hasta 8 bancos de RAM, y cada banco está compuesto por 4 chips 4002
- El 4001 incluye 256 bytes de ROM y un puerto de E/S de 4 bits
- El 4265 es un dispositivo de E/S de propósito general con 4 puertos de E/S de 4 bits
4008, 4009, 4289
- El 4008 y el 4009 fueron diseñados para poder interactuar con chips de memoria de uso general
- El 4289 es un chip que combina el 4008 y el 4009, y puede comunicarse con niveles de señal de 5V
Uso de memoria y nibble de estado
- Se usa la instrucción
DCL para seleccionar un banco de memoria
- Cada banco de RAM está compuesto por 4 chips 4002, y cada chip tiene 16 nibbles direccionables y 4 nibbles de estado
Resumen de GN⁺
- Este proyecto ayuda mucho a entender cómo funcionaban los primeros microprocesadores como el Intel 4004
- Muestra cómo superar el diseño particular y las funciones limitadas del 4004
- Ofrece la oportunidad de experimentar las limitaciones de los primeros microprocesadores en comparación con los microcontroladores modernos
- Un proyecto similar en funcionalidades es el de arrancar Linux en un MOS 6510
2 comentarios
Así que el autor original es justamente ese tipo al que esta vez sacaron del escenario en DEF CON por el tema de la badge. No voy a ponerme del lado de nadie, pero aun así de verdad tiene un nivel impresionante.
Comentarios de Hacker News
Pensé que NetBSD era lento en un m68030 de 15 MHz, pero este proyecto es realmente impresionante
Me gustaría ampliar mis conocimientos hasta poder entender este proyecto
Me gustan los ejemplos con AVR, y ahora hay uno nuevo
Este proyecto no fue barato, gracias a los coleccionistas de Ebay
Es un proyecto asombroso
La grabación del video tomó 9 días, con 4 horas por segundo emulado
Este tipo de proyecto necesita un Premio Nobel
Fue una lectura muy interesante
En las primeras microcomputadoras funcionaban máquinas virtuales (Z-machine o JVM)
En la sección "Why MIPS?":