Framework ligero de emulación de CPU basado en QEMU que ejecuta código máquina de varias arquitecturas mediante una API clara e independiente de la arquitectura.
kerlenton/bootgpt
Un pequeño modelo de lenguaje a nivel de caracteres que se ejecuta en un sector de arranque x86 de 512 bytes y genera registros de arranque de Linux ficticios en modo real.
- Estrellas
- 99
- Forks
- 4
- Issues abiertos
- 0
- Último commit
- hace 7 días
¿Qué es?
bootgpt es una red neuronal que se ejecuta al arrancar, antes de que se cargue ningún sistema operativo. El MBR de 512 bytes contiene código ensamblador x86 escrito a mano que lee un modelo de 11,5 KB cuantizado a int8 desde los 23 sectores siguientes del disco y realiza inferencias en modo real de 16 bits en una CPU de clase 386, sin sistema operativo ni runtime de C.
El modelo es una pequeña red a nivel de caracteres con embeddings de caracteres, una capa oculta y una softmax, entrenada con unos 3 MB de registros sintéticos al estilo de dmesg generados por un script de Python. El entrenamiento usa escalas de cuantización que son potencias de dos para que el ensamblador pueda realizar la pasada hacia delante con multiplicaciones y divisiones enteras. Un script de Python simula la misma aritmética entera, y su salida coincide carácter por carácter con la del sector de arranque.
El proyecto es principalmente un experimento de demoscene y sizecoding. Está pensado para ejecutarse en QEMU, con un script que graba un GIF de demostración desde QEMU sin interfaz gráfica; además, la imagen de disco se puede escribir en una memoria USB para usarla en una máquina con BIOS.
Funciones clave
- 01El código del sector de arranque cabe en 512 bytes y carga los pesos del modelo desde los sectores siguientes del disco.
- 02Las inferencias se ejecutan en modo real de 16 bits usando solo aritmética entera.
- 03El script de entrenamiento en Python cuantiza el modelo a int8 y simula los cálculos del ensamblador para compararlos.
- 04Genera registros de arranque sintéticos al estilo del kernel para usarlos como datos de entrenamiento.
- 05Se ejecuta en QEMU y la imagen de disco se puede escribir en una memoria USB.
Casos de uso
- Estudiar cómo implementar inferencias de redes neuronales en ensamblador x86 sin abstracciones.
- Aprender técnicas de sizecoding y programación de sectores de arranque.
- Experimentar con la cuantización int8 y las inferencias de punto fijo en hardware muy limitado.
Inicio rápido
- 1
Instala nasm y qemu con Homebrew
brew install nasm qemu - 2
Crea un entorno virtual de Python e instala numpy
python3 -m venv .venv && .venv/bin/pip install numpy - 3
Compila la imagen de arranque
./build.sh - 4
Ejecuta la imagen en QEMU
./run.sh
Antes de usarlo
- Los comandos de instalación del README son para macOS (Homebrew), así que tendrás que configurar otras plataformas por separado.
- El modelo es una pequeña curiosidad que genera registros de arranque falsos, no un modelo de lenguaje de propósito general.
- Para arrancar en hardware real se necesita un equipo con BIOS y escribir disk.img en una memoria USB; el README solo lo menciona brevemente.
Temas
Preguntas frecuentes
- ¿Qué es bootgpt?
- Un pequeño modelo de lenguaje a nivel de caracteres que se ejecuta en un sector de arranque x86 de 512 bytes y genera registros de arranque de Linux ficticios en modo real. bootgpt es una red neuronal que se ejecuta al arrancar, antes de que se cargue ningún sistema operativo. El MBR de 512 bytes contiene código ensamblador x86 escrito a mano que lee un modelo de 11,5 KB cuantizado a int8 desde los 23 sectores siguientes del disco y realiza inferencias en modo real de 16 bits en una CPU de clase 386, sin sistema operativo ni runtime de C.
- ¿bootgpt es gratuito? ¿Qué licencia tiene?
- bootgpt es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿bootgpt sigue mantenido?
- Mantenimiento activo. El último commit de bootgpt fue el 31 oct 2026.
- ¿Para qué puedo usar bootgpt?
- Estudiar cómo implementar inferencias de redes neuronales en ensamblador x86 sin abstracciones. Aprender técnicas de sizecoding y programación de sectores de arranque. Experimentar con la cuantización int8 y las inferencias de punto fijo en hardware muy limitado.
- ¿Cómo se instala bootgpt?
- Instala nasm y qemu con Homebrew: brew install nasm qemu Crea un entorno virtual de Python e instala numpy: python3 -m venv .venv && .venv/bin/pip install numpy Compila la imagen de arranque: ./build.sh Ejecuta la imagen en QEMU: ./run.sh
- ¿Dónde consigo bootgpt?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/kerlenton/bootgpt
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una biblioteca de Python para ajustar, evaluar y ejecutar LLM de código abierto como LLaMA, GPT-J y GPT-OSS con tus propios datos, localmente o en una nube privada.
Herramienta de machine learning de código abierto que usa aprendizaje activo para priorizar registros al revisar grandes conjuntos de texto para revisiones sistemáticas.
Keras 3 es un framework de deep learning que funciona con JAX, TensorFlow, PyTorch u OpenVINO para inferencia.
Biblioteca de deep learning basada en PyTorch, con componentes de alto nivel para entrenar rápidamente y componentes de bajo nivel para investigar con enfoques personalizados.
Acelerador multiplataforma para ejecutar modelos de ML exportados al formato ONNX, con compatibilidad para entrenar mediante scripts de PyTorch.