Zing 论坛

正文

BootNN:一个完全由神经网络驱动的操作系统

探索一个仅13KB的x86可启动操作系统,其中神经网络是唯一的计算基底——没有驱动程序,没有系统调用,只有训练好的权重决定每一个像素、光标移动和命令执行。

神经网络操作系统x86汇编神经形态计算机器学习嵌入式系统开源项目
发布时间 2026/06/02 13:15最近活动 2026/06/02 13:22预计阅读 6 分钟
BootNN:一个完全由神经网络驱动的操作系统
1

章节 01

导读 / 主楼:BootNN:一个完全由神经网络驱动的操作系统

探索一个仅13KB的x86可启动操作系统,其中神经网络是唯一的计算基底——没有驱动程序,没有系统调用,只有训练好的权重决定每一个像素、光标移动和命令执行。

2

章节 02

原作者与来源

  • 原作者/维护者:EmptyMonad
  • 来源平台:github
  • 原始标题:bootnn
  • 原始链接:https://github.com/EmptyMonad/bootnn
  • 来源发布时间/更新时间:2026-06-02T05:15:21Z
3

章节 03

补充观点 1

原作者与来源

  • 原作者/维护者:EmptyMonad
  • 来源平台:github
  • 原始标题:bootnn
  • 原始链接:https://github.com/EmptyMonad/bootnn
  • 来源发布时间/更新时间:2026-06-02T05:15:21Z 原作者与来源\n\n- 原作者/维护者: EmptyMonad\n- 来源平台: GitHub\n- 原始标题: bootnn\n- 原始链接: https://github.com/EmptyMonad/bootnn\n- 发布时间: 2026年6月2日\n\n---\n\n引言:当神经网络成为操作系统本身\n\n在计算机科学的历史长河中,操作系统的设计哲学经历了多次革命性转变。从早期的批处理系统到分时系统,从单用户到多用户,从单机到分布式——每一次变革都重新定义了软件与硬件之间的关系。而今,一个名为 BootNN 的开源项目提出了一个令人震惊的命题:如果神经网络本身就是操作系统,会发生什么?\n\n这个项目并非简单的概念验证,而是一个真正可以启动并运行的x86操作系统。它挑战了我们对计算本质的理解,将神经网络从"应用程序"的角色提升到了"系统核心"的地位。\n\n---\n\n核心理念:权重即一切\n\nBootNN 的设计哲学可以用一句话概括:"权重即一切"(It's weights all the way down)。\n\n传统操作系统由数百万行代码构成,包含调度器、驱动程序、系统调用、内存管理器等复杂组件。而 BootNN 完全摒弃了这些概念,取而代之的是一个简单的数学公式:\n\n\nSTATE(t+1) = f(STATE(t), INPUT(t))\n\n\n这意味着系统的下一个状态完全由当前状态和输入通过神经网络函数决定。没有调度器,没有进程,没有驱动程序——神经网络直接控制硬件、解释输入并产生输出。所有系统行为完全从学习到的权重中涌现出来。\n\n---\n\n技术架构:极简主义的极致\n\n启动过程\n\nBootNN 从一个仅13KB的软盘镜像启动,进入32位保护模式后,将43,008个训练好的权重加载到内存中,然后进入一个无限循环:\n\n\n键盘输入 → 神经网络前向传播 → 屏幕输出\n\n\n在首次启动时,系统会演示一个合成按键序列,证明这个神经基底是"活着的"。\n\n交互演示\n\nBootNN 最令人惊叹的地方在于它的交互方式。用户输入简单命令,神经网络就能理解并执行相应的图形操作:\n\n- 输入 box,网络会绘制一个矩形\n- 输入 line,网络会绘制一条直线\n- 按下 p 键,网络会在屏幕上绘制一个像素点\n\n关键在于:汇编代码中没有任何 if key == 'b' then draw_rect 这样的逻辑判断。所有的映射关系都是在离线训练过程中学习到的,纯粹由神经网络的权重决定。\n\n系统架构\n\n\n键盘(IRQ1) → 输入历史(32个事件) → 神经网络(256→128→64→32) → 解码(argmax) → VGA/VESA帧缓冲\n\n\n整个内核由三部分组成:启动序列、Q8.8定点数格式的神经网络前向传播实现,以及图形原语。其他一切——按键意味着什么、绘制什么、如何响应——都编码在权重中。\n\n---\n\n分布式确定性:解决神经网络的可复现性难题\n\n对于分布式系统而言,确定性执行至关重要。BootNN 提出了两层抽象来解决神经网络在不同节点上的行为一致性问题:\n\nIAL(输入抽象层)\n\n将连续时间量化为离散时间片,将空间坐标分桶到网格单元中,并对同一时间片的事件进行规范排序。这消除了微秒级抖动、到达顺序差异和传感器噪声带来的不确定性。\n\nNDAL(非确定性抽象层)\n\n将真正的非确定性源(随机数生成器、时钟、网络、硬件)包装在命名预言机(named oracles)中。每个预言机响应都被记录在哈希链式回放日志中。相同的日志 → 相同的执行 → 相同的状态。\n\n\n物理世界\n │\n┌───┴───┐\n│ IAL │ ← 消除偶然性非确定性\n└───┬───┘\n┌───┴───┐\n│ NDAL │ ← 包含本质性非确定性\n└───┬───┘\n │\n确定性令牌流 → 神经基底\n\n\n---\n\n项目演进路线图\n\nBootNN 采用分阶段开发策略,目前已完成Tier 1和Tier 2:\n\n| 层级 | 权重数量 | 模式 | 状态 |\n|------|---------|------|------|\n| Tier 1 | 2,560 | 16位实模式 | 完成(位于legacy/目录) |\n| Tier 2 | 43,008 | 32位保护模式 | 当前版本 |\n| Tier 3 | ~1M | 分页+磁盘交换 | 计划中 |\n| Tier 4+ | 10M-10B | GPU/分布式 | 研究中 |\n\n终极目标:忆阻器交叉阵列\n\n项目的长期愿景是实现基于忆阻器交叉阵列(memristor crossbar arrays)的硬件,其中矩阵乘法以物理方式(欧姆定律)而非计算方式完成。这将从根本上改变计算的能效比,实现真正的"神经形态计算"。\n\n---\n\n技术栈与使用方式\n\nBootNN 的开发工具链非常精简:\n\n- 汇编语言: NASM(用于内核开发)\n- 训练管道: Python + NumPy(Adam优化器,Q8.8感知训练)\n- 虚拟化: QEMU\n- 辅助工具: Rust(IAL和NDAL实现)\n\n快速启动\n\nbash\nsudo apt install nasm qemu-system-x86 python3-numpy\nmake && make run\n\n\n可用命令:\n- make - 汇编+训练+打补丁 → 生成dnos.img\n- make run - 构建并在QEMU中启动\n- make train - 仅重新训练权重\n- make validate - 训练并验证Python与汇编数学一致性\n\n---\n\n意义与启示\n\nBootNN 不仅仅是一个技术演示,它向我们提出了一些根本性问题:\n\n1. 软件的本质是什么? 当传统意义上的"代码"被权重取代,我们是否需要重新定义编程?\n\n2. 可解释性与能力的权衡 神经网络提供了强大的表达能力,但牺牲了传统的可解释性。在系统级软件中,这种权衡意味着什么?\n\n3. 未来的操作系统形态 随着神经形态计算硬件的发展,未来的操作系统是否会越来越像 BootNN 这样,将学习作为核心机制而非附加功能?\n\n4. 最小化设计的价值 在软件工程追求复杂性和功能完备性的今天,BootNN 提醒我们:有时候,极致的简洁本身就是一种强大的表达。\n\n---\n\n结语\n\nBootNN 是一个充满野心的实验,它将神经网络推向了系统软件的最底层。虽然目前它还只是一个概念验证,但它所展示的可能性——一个完全由学习驱动的计算基底——可能会启发未来操作系统和计算架构的全新方向。\n\n对于那些对操作系统、机器学习、或者纯粹的技术美学感兴趣的开发者来说,BootNN 无疑是一个值得深入研究的宝藏项目。它提醒我们:在技术的边界上,仍然存在着等待被探索的未知领域。\n\n---\n\n*"State(t+1) = f(State(t), Input(t))" —— 这就是 BootNN 的全部哲学。*