第86期 | 文件名只有 14 个字,够吗?
第八章讲完翻译表,第九章换一个问题:文件系统这三十年,第一步不是变聪明,是先装得下。
一、14 个字,装不下世界
Linux 最早只有一个文件系统可选,就是 Minix 文件系统。按 Card、Ts'o、Tweedie 当年的论文,Minix 文件系统有两个硬伤:块地址只用 16 位整数存,整个文件系统最大 64 MB;目录项定长,文件名最长 14 个字符¹。14 个字符是什么概念?my-notes-1991.txt 数一数是 16 个字,已经超了。一台机器的硬盘还没装满,名字先不够用了。
1992 年 4 月,Rémy Card 的第一个 Extended File System(ext)进了 Linux 0.96c:最大 2 GB,文件名 255 个字符¹。两道天花板一下子抬高了。但 ext 也有自己的毛病:一个文件只有一个时间戳,访问、改内容、改 inode 分不清;空闲块和空闲 inode 靠链表记,链表越用越乱,文件越写越散¹。
1993 年 1 月,Xia 和 ext2 同时以 Alpha 版面世¹。Xia 脱胎于 Minix 代码,起步更稳;ext2 脱胎于 ext 代码,改动更大。赢的是 ext2,赢的理由写在论文里只有一句话,却很关键:它在设计时就留了扩展的余地,新功能进来不用重新格式化¹。同一张表里,ext2 的最大文件系统标到了 4 TB,文件名 255 个字符,块大小可变,还给 root 预留了 5% 的块¹——系统被普通用户写满时,管理员还能进来收拾。
这就是发展性研究的样子:没有发明新原理,Unix 的 inode、目录、链接都在;赢在把一副能长大的骨架先立起来,后来的日志、区段,都是在这副骨架上长出来的。孙过庭《书谱》里那句“贵能古不乖时,今不同弊”²,放在这里正好:不守着 Minix 的旧规矩,也不追一时的新花样,留余地,才走得远。
从装不下,到装得下:Minix、ext、ext2 三步。程序绘制概念示意图。
二、文件系统,该学会自己纠错
2026 年 10 月 19 日,Aurélien Desbrières 向 Linux 内核邮件列表提交了 BeamFS 的 18 个补丁³。这是一个还在提议阶段的文件系统,思路却把第九章的问题翻了个面:每个块里都存 Reed-Solomon 纠错码,读到坏块时不靠第二份副本,直接在原地把数据纠回来³。它的出身很具体:卫星上的单块硬盘装不下第二份副本,放疗室里的中子会把比特打翻——在这种地方,悄悄读错一个字节,比干脆读失败更危险³。
对照一下就看得出三十年的位移。ext2 的年代,问题是装得下吗;BeamFS 的年代,问题是读回来的是真的吗。Google 的 GFS 早就立过一条规矩:别信磁盘,每个 64 KB 块都带校验和,巡检发现坏块就靠副本补⁴。BeamFS 把这条规矩再往前推一步:校验只能发现,纠错码才能修好。代价也摆在明面上:每个块都要多花空间、多算一次,信任不是免费的。BeamFS 目前只在虚拟机和 U 盘上用模拟翻转测过,还没进真实辐射环境³——提议归提议,成色要说清楚。
落到原生 AI 操作系统,这一步的意义不在卫星上。智能体读到的每一段记忆、每一份记录,如果底下悄悄错了一位,上面所有的推理都会跟着错。文件系统给智能体的,不该只是一串字节,还该是一句保证:要么给你对的,要么明确告诉你读失败了,绝不把错的当成对的交出去。旧抽象与新硬件的张力在这里换了个样子:线性字节流只管存取,不管真假;而向量阵列算出来的东西,错一位可能整个意思都变了。
三、先看一眼,你的盘是什么文件系统
手边任何一台 Linux 机器,先问三个问题:
df -T /
lsblk -f
getconf NAME_MAX /
第一条告诉你根目录挂的是 ext4、xfs 还是 btrfs;第二条把每块盘的文件系统类型都列出来;第三条在 ext4 上一般会回 255——三十三年前 ext 定下的那个数,今天还在。想再往里看一层,ext 系的盘可以跑:
sudo dumpe2fs -h /dev/sda1 | grep -E 'Block size|Inode count'
把 /dev/sda1 换成你自己的盘符。Block size 是块大小,Inode count 是 inode 总数,顺带看一眼 Reserved block count——那 5% 的预留,今天还在不在。
还有一个今晚就能试的小实验:在 /tmp 里先建一个 255 个字符的文件名,再建一个 256 个字符的,看第二个报什么错。报错信息一般是 File name too long。亲手撞一次上限,比背一百遍 255 更记得住。
落到常见的四类部署,同一层皮能套出四种底下。本地模型服务上,权重文件动辄几十 GB,文件系统先要装得下、读得快;边缘设备上,断电是常事,文件系统要扛得住突然断电;视频 AI 平台里,视频片段和推理结果来来去去,文件系统要分得清哪些值得留、哪些可以扔;企业私有智能中心里,每家企业的文档、记录、权限挂在同一棵树的不同枝上,文件系统要保证读回来的那一份就是当初存进去的那一份。装得下是第一步,读得准是下一步。
觉 然 小 注
天花板撞出来的那一下,往往就是路口。装不下,逼出了 ext2;读不准,逼出了 BeamFS。墙换个方向看,就是下一段路的起点。
引 用 与 出 处
- [1] Card, R., Ts'o, T., Tweedie, S. Design and Implementation of the Second Extended Filesystem. Proceedings of the First Dutch International Symposium on Linux. http://e2fsprogs.sourceforge.net/ext2intro.html
- [2] 孙过庭. 《书谱》. (思想化用)
- [3] Desbrières, A. BeamFS: Reed-Solomon-protected filesystem proposal. Linux kernel mailing list, 2026-10-19. https://itsfoss.com/news/beamfs-linux-filesystem-proposal/
- [4] Ghemawat, S., Gobioff, H., Leung, S.-T. The Google File System. SOSP, 2003. https://doi.org/10.1145/945445.945450
· · ·