Repolode
kerlenton

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. 1

    Instala nasm y qemu con Homebrew

    brew install nasm qemu
  2. 2

    Crea un entorno virtual de Python e instala numpy

    python3 -m venv .venv && .venv/bin/pip install numpy
  3. 3

    Compila la imagen de arranque

    ./build.sh
  4. 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