我用 ai 写了一个文件系统
准确来说,
首先,这个不是从头开发的,不过我感觉影响也不到
为什么?
- 文件系统极其复杂, 内核大多数黑魔法其实都是和文件系统相关,尤其是同步机制
- 我在早期学习 linux 内核的时候,记录了大量关于 fs 的疑问,这些东西始终没有得到解决。
- 这个例子是非常经典的,其实外部约束是非常强的了
第一个阶段
人肉工作,只能完成兼容性的文件,而且还是各种挤压时间才搞的。
部分替换掉 iomap
第二阶段 : 用 qwen cli 工具
升级之后:
出现了 bug ,这个 bug 非常诡异,就是 然后完全无法调试。 我也不会,ai 也不会,而且 ai 在哪里瞎扯。
第三阶段 : kimi + claude code
第一部分 :
- 我发现 kimi 写了 800 行的脚本来运行 xfstests 的测试,我看了之后,简化到 100 行
- 不知道为什么,agents 总是容易忘记 nfs 的配置
claude 4.6 opus 已经感受到 kimi 其实有点不行了。
第四阶段 : slock -> claude + codex
他们真的很棒
总结反思
我学到了什么:
- ai 基本上,人类会的东西,他都是会的,也就是我们现在没必要把时间浪费构建类似的东西上了。
但是,如果是我自己来写的话,当然,我对于 fs 会有更好的理解,但是问题是, 这个问题推进到现在,我一共就花费不到一个小时:
的确,手动写代码会有很多好处,自己悟也会有很多好处,但是随着我完各种游戏的经验 总结,其实抄其他的教程还是最快的。
很多东西似乎没有细看,然后 ai 就直接做完了,我中间都不知道 ai 做了什么:
- fiemap : 这个是做什么的?
- mmap + fallocte : 如果是写 fuse ,需要考虑这个问题么?
- journal 到底如何实现的
- fs 如何处理 scsi_debug
- fs 应该如何创出 dm flakey 的
第一个阶段: 搭建好可以循环的环境是重要的,让 ai 就像人一样(曾经的人)来写代码, 遇到文件,利用现有的知识,解决问题。
我总共花费大约 500$ 的 token ,主要是 claude code
总结反思:
- 类似的扩展: fuse 用户态存储? 对象存储?用户态网络栈? 另一个 qemu 的实现?
- 可以尝试将 dune 移植到 x86 上
- 不要把时间用到 ai 可以做的事情上?
- 调查 bug (尤其是可以复现的 bug ,让活人来调查太慢,太弱)
- 如何减少人的审查量,也就是需要 AI 写的东西是自证明的,自己写测试,或者利用现有的测试
(很奇怪,ai 不会自动的检查环境,为什么可以加速事情推进的工作,但是 ai 不会去做)
不得不说,文件系统的确复杂: 后面的高级功能全部没实现
- 动态扩缩容
- 加密
类似的东西: https://github.com/wangrunji0408/iJiegeOS
本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。