第30期 | 内存不够时,最早的 Linux 会怎么办?

操作系统 · · 九羲科技

一、只记不忘

一万行代码的内存观:1991 年 9 月 17 日,Linus 把 0.01 放上 FTP 的那天,它的内存管理长什么样?先看 head.s。它在保护模式里干的第一件大事,是打开 386 的分页:页目录表放在物理地址 0x0,正好盖在已经没用的启动代码上,一点不浪费;往下几张页表,把低端物理内存做恒等映射;内核的 C 代码从 0x4000 开始,main() 在那里苏醒。

然后 mm/memory.c 接管。整个内存管理就一本账:mem_map[] 数组,每个 4KB 物理页对应一个字节的计数。想用内存?调 get_empty_page(),去账本里找计数为 0 的页。找到了,计数加一,拿走;找不到呢?返回 0。没有第二条路。

这就是 0.01 的答案:它没有 swap 的概念。内存不够,fork() 就返回 -ENOMEM,新进程直接拒绝出生。fork 成功了呢?copy_mem 把父进程的每一页完整拷贝一份,简单粗暴,一个字节都不含糊。

有意思的是,这恰恰是杨振宁说的"发展性研究":分页是 386 硬件现成的原理,Linus 没发明任何新东西,赢在"先实际后原理"——先把能跑的内存管理做出来。至于"忘记"的艺术,留给后来人。

还有一层错位值得记下来:页,是 4KB 的线性字节块;内存,是线性地址数组。这整套抽象是为顺序指令流设计的——而今天的算力主体是向量阵列。旧抽象与新硬件的张力,从 0.01 的第一天就埋下了。

Linux 0.01 开机后的内存布局,据 boot/head.s 与 mm/memory.c 绘制。

二、AI 先来

内存不是分配,是想起:如果 AI 的操作系统先出现,"内存管理"这个词可能根本不会存在,取而代之的是"记忆管理"。进程的地址空间,变成 agent 的工作记忆;页表,变成注意力的索引。

最大的不同在"忘记"。0.01 相信记住一切就够了;人脑恰恰相反——记住一切是病。金刚经那句"过去心不可得",放在这里是工程箴言:一个健康的智能体,必须知道何者当忘。MemGPT 已经把这条路走了一半:借鉴 OS 的内存分级思想,主存是上下文窗口,外存是外部存储,"中断"变成控制流——大模型的上下文,第一次有了操作系统的样子。

反方向也在发生:PagedAttention(SOSP 2023)把 OS 的分页思想用进大模型的 KV cache。旧抽象在新硬件上借尸还魂,说明分页这个"笔法"是对的,只是"结字"要变——未来的"页",装的不再是 4KB 字节,而是 embedding 块、KV cache 页。内存不再是线性字节数组,而是一片向量空间。

三、今晚就能试

看你的内存在"忘记"什么:手边任何一台 Linux 机器,今晚就能做三个小实验。

第一,看"遗忘能力":cat /proc/meminfo | grep -i swap,SwapTotal 就是这台机器能"忘记"多少——能把多少不常用的页腾到磁盘上。

第二,亲手让系统忘记:sudo -i 之后执行 echo 3 > /proc/sys/vm/drop_caches,页缓存瞬间清空。再跑一遍 find / -name "*.conf",第一次慢,第二次快——你亲眼看见"记住"与"忘记"之间,差了多少毫秒。

第三,看 OOM 的墓碑:dmesg | grep -i "oom"。现代内核内存不够时不再拒绝出生,而是挑一个进程杀掉——第 39 章我们会细讲 OOM killer,今天先看一眼它的"案底"。

落到普遍场景:给 AI 应用配机器时,swap 不是越大越好。SSD 时代,swap 的性能观全变了;而在内存吃紧的边缘设备上,"什么值得记住、什么可以忘记",是部署的第一问。0.01 教会我们先跑起来;今天的工程题,是把"忘记"做成一门手艺——这正是发展性研究干的事:把原理变成能跑的东西。

觉 然 小 注

「过去心不可得,现在心不可得,未来心不可得。」0.01 选择记住一切;三十多年后我们才明白,操作系统的智慧,一半在记住,一半在忘记。

引 用 与 出 处

  1. zavg/linux-0.01 源码解析(DeepWiki,页目录/页表/内存组织,2026-10-21 核实),https://deepwiki.com/zavg/linux-0.01
  2. Packer et al., "MemGPT: Towards LLMs as Operating Systems", https://arxiv.org/abs/2310.08560
  3. Kwon et al., "Efficient Memory Management for Large Language Model Serving with PagedAttention", SOSP 2023
  4. 《金刚般若波罗蜜经》「过去心不可得,现在心不可得,未来心不可得」(鸠摩罗什译本)

· · ·

← 返回资讯中心