第30讲 · 课程总结

2026 南京大学《操作系统原理》第三十讲 · 课堂实录重构

主讲 蒋炎岩(Yanyan Jiang)
视频 https://www.bilibili.com/video/BV1q2jh6FEhX/
课程主页 https://jyywiki.cn/OS/2026/
本讲讲义 https://jyywiki.cn/OS/2026/lect30.md
讲义 / 幻灯片作者 蒋炎岩,https://jyywiki.cn/
讲义 / 幻灯片许可 CC BY-NC 4.0
图片来源 书中插图为课堂演示与讲义渲染图;演示类截图为视频画面

对应讲次:第30讲(南京大学 操作系统原理)

制作模型:deepseek-flash(coding-agent / pi;据 ~/.pi/agent/settings.json)

编者说明:本书由课堂录像的语音字幕重构而成,术语、章节骨架与参考链接已按课程官方讲义(lect30.md)校准。讲师的口语风格、类比与案例被尽量保留;编辑性的补充一律以「编者说明」或「编者拓展」标出。


一、应用视角 & 硬件视角的操作系统(回顾)

(参考时间: 00:00)

从应用程序的视角看,操作系统就是一组管理硬件资源、提供应用生态支撑的 API(system calls)。你们写程序时看到的一切——Word、浏览器、VS Code 的插件——都是在虚拟化的环境(进程)里运行,向操作系统发系统调用:

编者拓展|计算机系统的公理:「凡是和应用程序开发相关、合理的事情,就一定有一个办法能做到。」——能在纯粹的计算里完成的(图灵机)就自己做;要和外部世界打交道(比如发射导弹),就必须借助操作系统。

硬件视角说来复杂(Linux 内核上千万行代码),但另一个角度看——硬件也看不到操作系统:

复习的 top-level 提纲:应用视角 + 硬件视角的操作系统

📷 复习的 top-level 提纲:应用视角 + 硬件视角的操作系统
回到原视频 (00:07:00)


二、UNIX Philosophy:小工具的合作

(参考时间: 00:11)

编者拓展|为什么 UNIX 的口碑一直比 Windows 好? 不是 API 的原因(Windows 的 GetProcess... 更符合软件工程规范),而是应用生态的设计哲学:

「这可能和管道得图灵奖也有关系——管道是一个非常干净的机制,实现了进程之间的协作。」「你们看 Linux 命令行会很害怕——因为它给你一个黑框说『这就是世界』。但 UNIX 的设计思想是:每一个小的工具把它做好,让世界上的工具去合作完成更大的事情。」

「Content as Code」:讲师把复习幻灯片做成一份代码——用 UNIX 小工具从原料生成:

find os2026 -name '*.pyc' ...      # 找文件
grep -v 'Review & Comments' ...    # 过滤干扰项
sort -V ...                        # 按版本/序号排序
grep 'os-demo' | uniq | pbcopy     # 去重、送到剪贴板
Content as Code:用 find/grep/sort/管道 把整个学期的 code demo 生成出来

📷 Content as Code:用 find/grep/sort/管道 把整个学期的 code demo 生成出来
回到原视频 (00:17:00)

编者拓展|今天的标准答案:你可以直接告诉 coding agent「帮我 collect 所有的 code demo,去掉重复,写在这里」——「这也是完全可以的。这就是 UNIX 给我们的最大启发:世界上的东西是可以在一起合作的。」而到了今天,「大模型成为了这个管道的终点。」


三、怎么复习(以及这门课真正想教的东西)

(参考时间: 00:07)

编者拓展|「考完就忘」与「留下的印象」:「这门课教给大家的一个精神内核不是那些具体知识点。你们总有一天会把为了考试记得的知识忘掉,但你会留下一些印象——哦,操作系统还可以做这个事;哦,原来还可以入侵另外一个程序的地址空间(这在 JavaScript 的模型里没有,但在进程模型里就是合理的)。」

精神内核就是:每当你想到任何问题,你都可以追问下去。「我说『复习完了,可以下课了』——你也可以不下课,往回走一步问:如果我要更好地复习操作系统课,有没有办法呢?然后去问 AI、和它 battle 几轮。」

用 coding agent 复习:

用 coding agent 复习:为每个知识点生成模拟题,实现近乎 100% 的覆盖

📷 用 coding agent 复习:为每个知识点生成模拟题,实现近乎 100% 的覆盖
回到原视频 (00:20:00)

编者说明:讲师现场让 AI 出了一套题,AI 出的题目「还挺有创意」:关于并发锁的 quick quiz、关于 fork 后文件描述符 offset 的例子、关于进程地址空间、关于 crash consistency……「但我的意志我不知道他读了哪些 lecture——这是他想的。我不会这样出题,我出的会比较严肃一点。」

「计算机世界里没有魔法」:每当感到困惑,就告诉自己——「计算机系统里没有魔法,一定有一个原因。」那个 fork 的例子(拷贝进程的所有状态,包括整个应用程序、library 的状态、所有操作系统对象)——「你的眼睛不能相信你的眼睛。」

AI 出的考题(不代表讲师意志):fork、地址空间、并发、crash consistency……

📷 AI 出的考题(不代表讲师意志):fork、地址空间、并发、crash consistency……
回到原视频 (00:22:30)


四、技术回顾:从数字逻辑到三大主题

(参考时间: 00:33)

起点是数字逻辑电路的模拟器——「你们在 logic sim 里接线接到吐血,应该用一个程序化的方式用代码来接线。」动机的起点是一个管道(把一个程序的输出连给另一个程序作为输入),「之后做的所有事情就是把程序和操作系统的交互一层一层解开」。

logic sim → rv32ima:从数字逻辑到可执行的计算机模型

📷 logic sim → rv32ima:从数字逻辑到可执行的计算机模型
回到原视频 (00:34:00)

进程 / 计算机系统的初始状态:CPU Reset → firmware → OS → 第一个应用程序

📷 进程 / 计算机系统的初始状态:CPU Reset → firmware → OS → 第一个应用程序
回到原视频 (00:40:00)

非递归汉诺塔 / simple-c:每一个 stack frame 记住执行到哪里,system call 是优化边界

📷 非递归汉诺塔 / simple-c:每一个 stack frame 记住执行到哪里,system call 是优化边界
回到原视频 (00:37:00)

三大主题:

部分 核心
Virtualization 进程树、地址空间(Malloc Lab)、Everything is a file、文件描述符、execve/动态链接(LD_PRELOAD 变速齿轮)、从零构建应用生态
Concurrency 从 spawn 打开魔鬼的盒子、互斥/同步/条件变量、并发 Bugs;操作系统本身就是世界上最早的并发程序
Persistence I/O 设备(LED → 核弹发射器 → webcam)、存储设备的抽象、在 block device 上实现文件系统(append-only + random read = 任何数据结构)、crash consistency、overlayfs/FUSE
设备驱动:从 LED 灯、核弹发射器到 webcam——都是 struct file_operations

📷 设备驱动:从 LED 灯、核弹发射器到 webcam——都是 struct file_operations
回到原视频 (00:50:00)

Virtualization 主线:进程树、地址空间、Everything is a file、从零构建应用生态

📷 Virtualization 主线:进程树、地址空间、Everything is a file、从零构建应用生态
回到原视频 (00:48:00)

编者拓展|Systems 的关键词:抽象:「操作系统世界底下的硬件非常复杂,但当你有了一个好的抽象,应用程序只要看到 system call,就不用看到硬件的复杂性。」「硬件的复杂性没有消失(比如 ioctl 依然非常复杂),但我们可以在绝大部分时候都工作在一个非常干净的模型上。」「每一层抽象都是:屏蔽底下非常复杂的东西,并且把底下的能力尽可能暴露给上面。这就是 systems。」


五、未来会发生什么?

(参考时间: 00:55)

编者拓展|「Teaching is a powerful way to learn」:讲师说这是他第 9 年上操作系统课——「每一年我都会想,也许我之前所有的理解和讲法都错了。所以每一年都会和上一年有一点不同,有些地方开倒车,但相当多地方在进步。」他还透露:去年有一个想法拿了 UCAS 的 best student paper,下一份工作 release 后你会发现「我在操作系统课上讲过它」。

Teaching is a powerful way to learn:每一年都重新思考该怎么做

📷 Teaching is a powerful way to learn:每一年都重新思考该怎么做
回到原视频 (00:56:00)

Scaling Law:

Scaling Law:从深蓝到 AlphaGo,再到 GPU / 大模型的指数级增长

📷 Scaling Law:从深蓝到 AlphaGo,再到 GPU / 大模型的指数级增长
回到原视频 (00:57:00)

编者拓展|大模型的三个 scaling 维度:Pretrain-time scaling(更多数据/更好的书——「据说 Anthropic 买了很多绝版书当语料,然后把书烧了」)、Post-train scaling(有强反馈信号的地方——代码就是这样的领域,所以 Anthropic 在代码上取得成功)、Test-time scaling(reasoning:做完再检查一遍、再检查一遍……「你们中学学过这个技能」)。

「大模型的参数量和最佳训练 token 的比值不是几万几百,而是几十——也就是说,理想情况下大模型应该几乎记住了训练数据。」

Post-train scaling:有强反馈信号的地方(如代码)能显著提升基础模型能力

📷 Post-train scaling:有强反馈信号的地方(如代码)能显著提升基础模型能力
回到原视频 (01:08:00)

GPU/AI OPS 与 CPU 的性能 scaling:对数坐标下是一条直线(即指数级增长)

📷 GPU/AI OPS 与 CPU 的性能 scaling:对数坐标下是一条直线(即指数级增长)
回到原视频 (00:59:00)

「从需求出发去解构问题」:这才是这门课真正想教的——

编者拓展|「大学和人类其实都很危险」:讲师说他越来越相信 AGI 迟早要来。「老登们以他们的方式统治的大学/社会将进入一个不平衡的状态——如果给你配一个有 test-time scaling 的 agent,你可以在任何一个方面都做得比老人更好(你会用 AI 他不会)。」「坐牢式的服从性教学,会在 scaling law 底下崩塌。」

AGI 与教育的未来:agent + test-time scaling 可能瓦解「服从性教学」

📷 AGI 与教育的未来:agent + test-time scaling 可能瓦解「服从性教学」
回到原视频 (01:10:30)

5.1 Vibe OS:世界上第一个「完全靠幻觉」的操作系统

(参考时间: 01:12)

讲师放了一段极其惊艳的演示(The world's first completely hallucinated operating system)——所有东西都是 AI 实时幻觉出来的,没有一行代码:

编者拓展|Vibe OS:一个自称「改变一切」的新操作系统——它是一个真实的系统(一个 .vhdx 文件,1.3GB,可以裸机启动,主持人用 Hyper-V 启动)。界面上跑着经典的 Notepad、Calculator、Internet Explorer,而「这些应用里没有任何代码——没有按钮、没有事件处理器、没有逻辑,一切都是 AI 实时幻觉的」(比如 5 ÷ 3 = 1.6)。「在你用的那些无聊的操作系统里,人们总在问『它是不是 AI』——在 Vibe OS 里这个问题不用问,因为答案永远是『是』。」它还能实时生成搜索内容、生成任意 App(「Commander X」、Microsoft Money 95……),甚至层层嵌套地模拟另一个操作系统。「Scott Hanselman 有自己的维基百科页面了……」——「这是我这辈子见过最伟大的东西。」

Vibe OS 还能层层嵌套:在幻觉操作系统里再模拟一个操作系统

📷 Vibe OS 还能层层嵌套:在幻觉操作系统里再模拟一个操作系统
回到原视频 (01:19:00)

Vibe OS:完全由模型实时幻觉出来的操作系统——没有一行代码

📷 Vibe OS:完全由模型实时幻觉出来的操作系统——没有一行代码
回到原视频 (01:14:00)

编者拓展|课程的未来:「恭喜大家上到了绝版的真人操作系统课——从明年开始我就没有这个 physical 的了(我们一直是『非法的』:共享课程号但不同的考试题)。」讲师说他会试着让这门课「有永生」:所有内容都是 code,可以持续更新,变成 public & open source;下学期会开一门新课——原想叫 vibe coding,但觉得过时太快,取名为 Generative Engineering(预计全部用一线国产模型),带大家实现各种「一开始觉得很疯狂、实现出来发现其实不需要多少 prompt」的东西。


结语

编者拓展|给每个同学的话:讲师最后说——「知识可能总是有边界的,但你们的梦想其实是可以没有边界的。」「你们每一个同学都可以去想一想:在这个时代里会找到一个什么样的位置——未必一定要成为算法哥去做 AI infra,也许你的兴趣在另一个可能很人文的领域……你们每个人都可以去追求一下自己的梦想。」


附:官方参考与延伸阅读

本讲的讲义见课程主页,以下链接按书中出现顺序整理:

主题 链接
课程主页(2026) https://jyywiki.cn/OS/2026/
Vibe OS(完全幻觉的操作系统) https://www.youtube.com/watch?v=QhH1bDA5K7A
Kryder 定律(存储 scaling) https://en.wikipedia.org/wiki/Mark_Kryder
Sutton, The Bitter Lesson http://www.incompleteideas.net/IncIdeas/BitterLesson.html
OSTEP:Operating Systems: Three Easy Pieces https://pages.cs.wisc.edu/~remzi/OSTEP/
git 对象模型(Pro Git: Git Internals) https://git-scm.com/book/en/v2/Git-Internals-Git-Objects

阅读材料:用 coding agent 穷尽复习每一个知识点;把本课程当作「从需求出发解构问题」的练习。

版权说明:本讲讲义与幻灯片作者为蒋炎岩,采用 Creative Commons BY-NC 4.0 许可,来源于 https://jyywiki.cn/OS/2026/。视频画面与字幕版权归原作者所有。本书为课堂内容的学习性重构。