第38期 | Linux 的第一个文件系统,为什么是借来的?

操作系统 · · 九羲科技

一、借来的布局

1991 年 8 月的那封帖子里,藏着一句轻飘飘的话

1991 年 8 月 25 日,21 岁的 Linus 在 comp.os.minix 新闻组发帖,宣布自己在写一个操作系统。帖子里有一句,被括号轻轻托着:"my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things)"[1]——"和 Minix 有点像(文件系统用了同样的盘上布局,出于实际原因),还有其他一些地方。"

什么实际原因?那年春天他动手写内核,整个人站在 Minix 的肩膀上:编译器在 Minix 里,bash 在 Minix 分区上,从学校 Unix 主机拨号下载回来的文件,也得存进 Minix 分区。他要解决的第一个问题,根本不是"发明一种文件系统",而是"让新内核能读写旧世界的盘"[3]。没有这一步,内核再漂亮也是孤岛——连自己的 shell 都装不进来。

0.01 一共 88 个文件、10239 行[2],fs/ 目录独占 19 个 .c 文件(super.c、inode.c、bitmap.c、namei.c……)[5],实现的却是 Minix 文件系统的盘上布局。include/linux/fs.h 里有一行暗号:#define SUPER_MAGIC 0x137F[4]。0x137F 是 Minix V1 的"身份证号"——内核读到超级块,先对暗号,对上了,才认这是自己人。

这布局长什么样?超级块打头,后面跟着 inode 位图、数据区位图、inode 表、数据区;目录项固定 16 字节——14 字节名字加 2 字节 inode 号,一行一行排下去,像活字印刷的字盘,一个名字配一个号码,整整齐齐;每个 inode 带 9 个块指针(7 个直接、1 个间接、1 个双重间接);文件名最长 14 个字符,整个卷最大 64MB[5]。

最妙的是帖子末尾的 PS:"Yes, it does not contain any minix code"[6]——借的是布局,不是代码。实现自己重写,格式照抄。兼容而不抄袭,这是 1991 年就立下的分寸。

这里住着杨振宁说的"发展性研究":Minix 文件系统的原理(inode 思想源自 Unix V7)早已成熟,0.01 没有发明任何新原理,赢在工程嫁接——为了能跑起来,直接复用成熟布局。"先实际后原理",赫尔辛基的 21 岁学生用行动写了一遍。对照 GNU Hurd:追微内核的原理完美,1991 年远未可用。

天花板来得很快:14 字符文件名、64MB 卷,在 1991 年(典型硬盘 40–140MB)已经捉襟见肘。1992 年 4 月,法国开发者 Rémy Card 写出 ext,随 Linux 0.96c 发布——第一个"为 Linux 而造"的文件系统:卷最大 2GB,文件名最长 255 字符[7]。借来的房子住了一年,自己盖房了。

老子《道德经》第十一章说:"埏埴以为器,当其无,有器之用……有之以为利,无之以为用"[8]。文件系统的价值不在它的代码(有),而在它能装下什么(无)。0.01 的文件系统之所以伟大,恰恰在于它的"无"——它空出了 Minix 兼容的形状,让现成的世界(bash、gcc、Minix 分区、第一批用户)能装进来。新内核的第一条生存智慧:先别急着盖房子,先学会开一扇旧世界的门。

二、换房子不换门牌:如果 AI 先造 OS,它借的不是布局

如果 AI 的操作系统先出现,它会怎么对待"文件系统"这份遗产?它大概率也不会重新发明盘上格式——第一步同样是"读懂":ext4、NTFS、S3 对象存储,像 0.01 读 Minix 一样,先把人类的盘读懂,再谈自己的格式。兼容是新系统出生的脐带,对 AI 也一样。

但再往深想一层:AI 真的需要"文件"这个概念吗?文件是给人眼浏览的"相":目录树、文件名、扩展名。AI 的 hot path 是"把 embedding 喂给矩阵乘"——它要的不是按名字找文件,而是按意思找记忆:内容寻址、向量索引、快照即版本。

这正是范式之眼要指的地方:今天的文件系统抽象(线性字节流、目录树)是为旋转磁盘和人眼设计的;向量阵列时代,目录树在"语义检索"这种 workload 面前近乎摆设。未来的存储原语,可能更像一个带版本的向量湖:写即索引,读即检索,文件名退化成人类可读的别名。

《金刚经》里有一句:"如来说世界,即非世界,是名世界"[9]。化用一下:"所谓文件系统,即非文件系统,是名文件系统。"Minix 布局的盘,跑着 Linux 的代码——它到底算 Minix 文件系统,还是 Linux 文件系统?名相而已。AI OS 的第一步也是破相:不问"文件存在哪",问"我要的东西以什么形态存在"。

照见可能性:一个 AI-native 的存储层,完全可以把"兼容旧格式"做成可插拔的解析器——ext4 解析器、NTFS 解析器、S3 解析器,像 0.01 的 Minix 兼容层一样薄。旧世界是数据源,不是包袱。

三、亲手读一个 1991 年的超级块:0x137F 就躺在源码里

今晚就能动手。在手边任何一台 Linux 机器上,下载 0.01 源码包,一条 grep 就能看见 35 年前的暗号:

wget https://www.kernel.org/pub/linux/kernel/Historic/v0.01/linux-0.01.tar.gz

tar xzf linux-0.01.tar.gz && grep -rn "0x137F" linux-0.01/include/

你会看到 include/linux/fs.h 里那行 #define SUPER_MAGIC 0x137F[4]。对着它想一想:1991 年一个 21 岁学生写下的四个十六进制字符,定义了新旧两个世界如何握手。

还可以亲手摸一下"魔数认亲"这个设计的寿命:dumpe2fs /dev/sda1 | grep -i magic,你会看到 0xEF53——ext4 的身份证。1991 年的思路,今天还在每一块 Linux 盘的超级块里活着。

另一个可观察的现象:找一个文件,stat 它,记下 inode 号,再 ls -i 对比。文件名只是目录项里的一行字,inode 才是文件的真身——删除删的是名字,不是数据。这个"名实分离",就是 1991 年那 16 字节目录项教的第一课。

落到普遍的工程实践:企业做私有化迁移,第一步永远是"读懂旧格式"——旧系统的数据库、历史数据的编码、沿用多年的命名规则。Linux 0.01 教的是:新系统落地的第一行代码,往往是旧世界的解析器。先兼容,再超越,顺序不能反。

觉 然 小 注

借来的不是将就,是让世界装得进来的形状。0x137F 四个字符,是 Linux 对旧世界说的第一句"我懂你"——而所有伟大的新系统,都是从听懂旧世界开始的。

引 用 与 出 处

  1. [1] Linus Torvalds. "What would you like to see most in minix?" comp.os.minix 新闻组帖文, 1991. 转引自 UMBC 计算机系存档报道. https://www.csee.umbc.edu/news-events/post/6304/
  2. [2] "The First Linux Kernel Is Released Online." todayonce.com 历史纪念页, 年份不详. https://www.todayonce.com/en/sep-17/the-first-linux-kernel-is-released-online.html
  3. [3] Linux Collective. "Linux History & Evolution." 开源文档站, 2026. https://linuxcollective.github.io/docs/linux-history/
  4. [4] Seiya. "Exploring the internals of Linux v0.01." 个人技术博客, 2023. https://seiya.me/blog/reading-linux-v0.01
  5. [5] mariuz. "File System | mariuz/linux-0.01." DeepWiki 源码解析(引 fs/Makefile、fs/bitmap.c、fs/namei.c), 年份不详. https://deepwiki.com/mariuz/linux-0.01/7-file-system
  6. [6] PCL Publications. "The History of Linux." 引 Linus 1991 年帖文 PS, 2024. https://www.pclpublications.com/the-history-of-linux/
  7. [7] 维基百科. "Extended file system." ext 由 Rémy Card 设计,1992-04 随 Linux 0.96c 发布,为克服 Minix 文件系统局限而造, 2025. https://en.wikipedia.org/wiki/Extfs
  8. [8] 老子. 《道德经》第十一章"埏埴以为器,当其无,有器之用;有之以为利,无之以为用". 王弼注本(通行本). (经典原文引用,无网址)
  9. [9] 鸠摩罗什译. 《金刚般若波罗蜜经》第十三章"如法受持分":「如来说世界,即非世界,是名世界。」(经典原文引用,无网址)

· · ·

← 返回资讯中心