欢迎访问本站,持续更新中…

Fable 5 38 分钟写了个 Windows 内核

行吧,我看到这个标题的第一反应跟你一样——又一个 PR 稿。

38 分钟写一个 Windows 内核?你让那些在内核团队干了十年的工程师情何以堪。而且 tolmo.com 这域名我也不熟,不是什么大厂博客。搞不好就是个 demo 视频,跑几个 Hello World 级别的 syscall 就敢说自己是内核了。

但我还是点进去了。

冲了一杯咖啡——早上七点,刚醒,脑子还没转起来——然后开始看。

怎么说呢。

Fable 5 不是那种"用 AI 辅助写代码"的工具。它是一个全自动的 AI coding agent,你给它一个任务描述,它自己去写代码、编译、跑测试、修 bug、再编译、再跑——完全自主循环。

类似 Devin、Devin 那种路子,但 Fable 5 这次做的事情确实有点离谱。

任务是:"写一个可以在裸机上启动的 Windows 风格内核,包含基本的内存管理、进程调度、中断处理和文件系统。"

嗯,看到这里我还没觉得有多厉害。 这种需求描述给 GPT-4 也能写个框架出来,对吧?

但 Fable 5 不只是写了个框架。

它写完后自动编译——报错——读错误日志——定位到具体行——修改——再编译——循环。整整 38 分钟,中间 Fable 自己迭代了 40 多次,从最开始的一个空目录,到最后编译通过、可以启动到 QEMU 里。

我原本以为这种 agent 生成的代码会非常"AI味":变量名叫 temp_var1,函数体巨大无比,注释全是废话。后来发现——还真不是。

Fable 5 AI agent 在终端中自动迭代编译代码的画面,显示多个编译日志窗口和代码编辑步骤,深色终端主题,科技感氛围

我仔细看了它生成的代码。内存管理那块,用了分页机制——在内核领域这是标准做法,但关键是你得把所有页表搭对才行。多级页表,一个 bit 错了就 triple fault,机器直接重启。Fable 5 不仅搭对了,而且在第一版里就已经预留了 PAE(Physical Address Extension)的支持,虽然是注释掉的——说明它"知道"这东西以后可能需要。

进程调度那块更有意思。它实现了一个时间片轮转调度器,不是简单的 FIFO,而是带优先级的 multilevel feedback queue。虽然只有三级队列,但对于一个 demonstration kernel 来说,已经比我预期的好太多了。

但也不是没翻车。 中间有一次编译过了但 QEMU 启动直接黑屏,Fable 5 读不到任何输出——因为串口根本没初始化。它折腾了三次才意识到问题出在串口驱动的初始化顺序上。先是怀疑是 GDT(全局描述符表)的问题,重写了;然后又怀疑是 IDT(中断描述符表)的问题,又重写了;第三次才终于发现是串口初始化被放到了内存初始化之后,但那时候串口的 MMIO 区域还没有被正确映射。

这个排错过程是真实的——不是那种"AI 一帆风顺"的演示。

喝了口水继续看。还有一个地方挺有意思的:Fable 5 实现了一个非常基础的 VFAT 文件系统。读目录、创建文件、写文件——基本操作。但让人惊讶的是它居然处理了长文件名(LFN)的兼容性。VFAT 的 LFN 实现挺恶心的——用一系列连续的目录项来存储长文件名,每个项 13 个字符,还要跟短文件名保持同步。稍微算错一个偏移量,整个文件名就变乱码。Fable 5 第一版居然没写对——读长文件名时多读了一个字符——但它在第二次迭代中自己发现并修复了。

说实话,这种 bug 属于你在 stackoverflow 上搜都搜不到答案的问题,因为实在太具体了。

Fable 5 自动编写的内核代码截图,显示关键的内存管理和调度器代码片段,C 语言风格,带注释,IDE 深色主题

那这个项目到底说明了什么?

我觉得不是"AI 要取代内核工程师了"——至少目前还不敢这么说。

Fable 5 写的这个内核,确实能启动、能做任务切换、能读写文件、能响应中断。但距离一个真正的生产级内核还差得远——没有网络栈、没有设备驱动框架、没有安全模型、没有 SMP 支持、没有虚拟内存的换入换出。

但关键是——38 分钟。一个人写这些代码,从零开始到编译通过、能跑,即便是专家也得一两天。Fable 5 用 38 分钟干完了。

这意味着什么?意味着原型验证的成本在急剧下降。以前你要做一个新内核概念验证,得写一周的 boilerplate 才能开始测试核心想法。现在——你给 Fable 5 一个 prompt,半小时后你就有个能跑的东西了。可以开始在上面做实验了。

还有一点——Fable 5 修 bug 的过程其实是公开的。它每一步都有日志。你能看到它是怎么"想"的。最开始以为是 A 问题,改了 A 发现不对,又怀疑 B,改了 B 还是不对,回头发现是 C。这个推理轨迹——虽然不如人类工程师"直觉"那么高效——但胜在全面,它几乎不会漏掉任何一种可能性。

当然了,全自动化也有代价。这 38 分钟里 Fable 5 调用了 200 多次 GPT-5 级别的 API。算了一下成本——大概 40 多美元。写一个 demo kernel 花 40 美元,对于原型验证来说是可以接受的,但如果要做产品级迭代,这个成本还是太高了。

所以我现在对 AI coding agent 的看法是:做原型、做实验、做探索——非常靠谱。但生产环境的代码,至少目前,还是得人来把控质量。

矛盾是吧?但吃过亏的人就懂。

Fable 5 生成内核的 QEMU 启动画面,显示 boot loader 加载过程和内核启动日志,类似真实硬件启动的终端输出,复古绿色字符风格

关于维基框架

维基框架(Wiki Framework)是一套面向复杂业务场景的轻量级开发框架,支持多语言、多协议、多部署形态。适用于企业级应用开发、微服务架构、云原生部署等场景。