bootgpt开源 512字节引导扇区启动神经网络
时间:2026年10月31日(Show HN 提交于当天 12:58 UTC,北京时间 20:58)。
地点:GitHub 与 Hacker News。作者在 X 上同步了构建过程,读者可在自己带 BIOS 的机器上复现。
人物:项目作者 GitHub 用户 kerlenton(X 账号 krlntn);文中提到的引导扇区前辈 Oscar Toledo(nanochess、bootOS、bootBASIC 作者),以及最接近的同类项目 sectorllm。
事件详情:bootgpt 把一个字符级神经网络塞进了 PC 的主引导记录(MBR)。整个 MBR 是 512 字节手写汇编,从紧随其后的 23 个扇区加载 11.5 KB 的 int8 量化模型,在 386 的 16 位实模式下完成前向计算——没有操作系统,没有 C 运行时。机器开机后不会真的启动系统,而是开始「做梦」,生成 Linux 内核启动日志:时间戳、PCI BAR、ACPI 事件,全都对应从未存在过的硬件,README 给出的样例形如 [ 2.283888] pci 0000:01:01.4: [1b36:0a35] ryndrde c4128 6422 Vveine。
模型结构很小:8 个字符的上下文、一层隐藏层、softmax,权重量化到 int8 且缩放因子取 2 的幂,因此整个前向过程只需要 imul 乘法加一次 idiv 除法;激活函数用 cdq/idiv 实现 softclip,采样则用定时器种子噪声做 argmax。训练脚本 train.py 用与汇编完全相同的整数运算(包括 LCG 采样器)模拟一遍,因此 Python 输出与引导扇区输出可以逐字符 diff,结果完全一致。作者在 Show HN 里讲了两个调试细节:idiv 会把余数存进 edx,而偏差表指针恰好放在 edx,导致只有第一个神经元被正确偏置、后面的一直用垃圾值,修法是改成从循环计数器推算偏差地址;另一个是 BIOS 打印例程会把 bx 清零,而 bx 里存着预测出来的字符序号,这正是打印前后要 push/pop bx 的原因。
背景:引导扇区编程是个老流派。Oscar Toledo 用 512 字节写过国际象棋、完整操作系统甚至 BASIC 解释器,xorvoid 写过 C 编译器。最接近的邻居是 sectorllm,用约 1.2 KB 实模式汇编启动一个真正的 llama2 转换器(5 层、带注意力机制),跑的是 Karpathy 的 stories260K;另有 sectorlisp-nn 在 Lisp 解释器里运行 TensorFlow 训练的网络,也有 UEFI 应用直接启动 llama 级模型。bootgpt 走了相反的极端:整个引擎塞进 510 字节的 MBR,权重与字符串放在后面的数据扇区,模型也不是通用叙事模型,而是训练在机器自己生成的 dmesg 上的小字符级网络。
影响:它不是通用大模型,只会在开机时生成「看起来像」的启动日志,并不会真正引导系统,作者也说明它只读取自己的扇区。但它把「神经网络能在没有操作系统、没有运行时、只有 512 字节的引导扇区里跑起来」这件事做到了可复现的程度,并把训练与推理两侧的整数运算对齐到可以逐字符比对。对做端侧推理、极简系统和 UEFI 启动模型的开发者来说,它提供了另一个参照系:在把模型塞进引导扇区这种极端约束下,到底能压到多小、还能剩下多少质量。
总结:bootgpt 让「神经网络启动电脑」这句话落到了可运行、可复现的形态:512 字节汇编加 11.5 KB int8 权重、23 个扇区,16 位实模式下让一台 386 醒来后无限生成 Linux 启动日志。它不追求通用能力,而是把 boot sector 这一玩法推到最小尺寸,并附上逐字符可对齐的训练脚本。值得注意的是,真实内核日志里的重复模式(同一内核版本、同一磁盘)恰恰是让极小模型看起来还像那么回事的原因,作者为此专门用 corpus_gen.py 造了 3 MB 假 dmesg 来训练。
常见问题:
问:bootgpt 是什么?
答:一个跑在 PC 引导扇区里的字符级神经网络,已在 GitHub 开源。
问:模型能装进 512 字节吗?
答:512 字节是 MBR 里的手写汇编推理引擎,11.5 KB 的 int8 权重放在紧随其后的 23 个扇区。
问:它能像聊天模型那样对话吗?
答:不能,它只在开机时生成 Linux 风格的启动日志,不会真正引导系统启动。
参考来源:
bootgpt 项目仓库与 README(GitHub)
https://github.com/kerlenton/bootgpt
bootgpt README 原文(raw)
https://raw.githubusercontent.com/kerlenton/bootgpt/main/README.md
引导扇区运行时 boot.asm 源码
https://github.com/kerlenton/bootgpt/blob/main/boot.asm
Show HN:A language model that lives in a boot sector
https://news.ycombinator.com/item?id=50315782
作者 krlntn 发布的构建过程推文
https://x.com/krlntn/status/2116514628457185757
最接近的同类项目 sectorllm:1.2KB 汇编启动 llama2
https://github.com/rdmsr/sectorllm
sectorlisp-nn:在 Lisp 解释器里跑神经网络
https://github.com/woodrush/sectorlisp-nn
nanochess:512 字节引导扇区国际象棋
https://github.com/nanochess/Toledo-Atomchess








