学习路径概览
- 基础入门:选择一门系统性强、讲解清晰的中文课程,建立宏观框架。
- 深化理解:观看经典英文课程,深入核心概念,学习英文术语。
- 实践巩固:结合代码和实验,亲手实现操作系统组件,加深理解。
- 拓展视野:了解现代操作系统的发展方向和前沿技术。
第一阶段:基础入门 (中文课程)
这个阶段的目标是快速建立对操作系统的整体认知,了解其核心组件和基本工作原理。

首选推荐:南京大学 - 陈斌《操作系统》
- 课程平台:Bilibili (有官方搬运或UP主上传)、中国大学MOOC
- 课程特点:
- 体系完整覆盖了操作系统的所有核心主题,从进程管理、内存管理、文件系统到I/O管理,逻辑清晰。
- 深入浅出:陈斌老师讲解非常生动,善于用生活中的例子(如“食堂打饭”)来类比抽象的OS概念,非常适合初学者。
- 理论与实践结合:课程不仅有理论讲解,还包含了大量的代码示例和实验指导,让你知道“为什么”和“怎么做”。
- 适合人群:所有希望系统学习OS原理的初学者,尤其是国内学生。
- 如何查找:在Bilibili或MOOC搜索“南京大学 操作系统 陈斌”。
备选推荐:哈尔滨工业大学 - 李治军《操作系统》
- 课程平台:Bilibili (有官方搬运)
- 课程特点:
- 硬核严谨:哈工大的课程以严谨和深入著称,李治军老师的课程非常硬核,对底层原理的剖析非常透彻。
- 侧重实现:课程会引导你思考如何从零开始构建一个简单的操作系统,对实践和动手能力要求更高。
- 经典实验:课程配套的“自制操作系统”实验非常有名,是很多高校的参考范本。
- 适合人群:有一定C语言基础,希望挑战自己,追求深度理解的进阶学习者。
- 如何查找:在Bilibili搜索“哈尔滨工业大学 操作系统 李治军”。
第二阶段:深化理解 (英文经典课程)
掌握了中文课程的基础后,学习英文经典课程可以接触到更前沿的视角、更严谨的论述和更丰富的实践案例。
MIT 6.828: Operating System Engineering
- 课程平台:MIT OpenCourseWare (OCW)、Bilibili (有搬运)
- 课程特点:
- 理论与实践的完美结合:这是OS领域的“圣经级”课程,它不是只讲理论,而是要求你亲手修改一个名为 xv6 的教学操作系统。
- 内容经典:基于Unix V6的设计,涵盖了进程、虚拟内存、文件系统、网络等核心主题,每个实验都直击要点。
- 资料丰富:课程网站提供所有讲义、实验指导、参考代码和往年学生项目,是全球OS学习者的宝贵资源。
- 适合人群:动手能力强的学习者,希望真正“写”出OS组件的同学。
- 如何查找:
- 课程官网:
https://pdos.csail.mit.edu/6.828/ - Bilibili搜索“MIT 6.828”。
- 课程官网:
Berkeley CS162: Operating Systems and Systems Programming
- 课程平台:Bilibili (有搬运)、YouTube
- 课程特点:
- 现代视角:CS162更侧重于现代操作系统和系统编程,内容更贴近当下的技术(如并发、分布式系统、安全等)。
- 项目驱动:课程项目要求用C和Rust编写一个多线程、网络化的应用,并分析其性能和并发问题,实践性极强。
- 讲解清晰:教授的 lectures 非常精彩,善于用图表和实例讲解复杂概念。
- 适合人群:对现代系统编程、并发、网络编程感兴趣的学习者。
- 如何查找:
- Bilibili搜索“Berkeley CS162”。
- YouTube搜索“CS162 Fall 2025”。
Stanford CS140/CS240: Operating Systems
- 课程平台:Stanford Online (YouTube)
- 课程特点:
- 前沿与深度:斯坦福的课程通常走在技术前沿,CS140侧重于操作系统内核,而CS240则更深入到分布式系统。
- 研究导向会结合最新的学术论文,探讨操作系统领域的前沿问题。
- 高质量讲义:课程讲义(Lecture Notes)写得非常出色,逻辑严密,是极佳的阅读材料。
- 适合人群:希望了解OS研究前沿,计划从事系统方向研究或工作的学习者。
- 如何查找:YouTube搜索“Stanford CS140”或“CS240”。
第三阶段:实践巩固 (动手项目)
“Talk is cheap, show me the code.” 看再多视频,不如亲手实践。
- xv6 (MIT 6.828):这是最好的起点,修改一个现成的、简单但功能完整的OS内核,实现进程调度、页表、文件系统等,收获巨大。
- MIT JOS (Just Operating System):另一个经典的教学OS,比xv6更现代一些,使用保护模式,对理解x86架构和内存管理非常有帮助。
- Linux Kernel 内核模块:不修改内核本身,而是编写内核模块来加载和运行,这可以让你安全地探索内核API,实现简单的设备驱动或文件系统。
- 用户态并发库:尝试用C语言和pthread库实现一个自己的线程池、信号量或锁,这能让你深刻理解并发编程的挑战(如死锁、竞态条件)。
第四阶段:拓展视野 (进阶与前沿)
当你掌握了基础后,可以看看操作系统领域正在发生什么。
- 容器技术:深入学习 Docker 和 Kubernetes 的底层原理,这背后是Linux的 cgroups 和 namespaces 等内核技术。
- 云原生与Serverless:了解操作系统如何为云环境服务,以及无服务器计算对OS提出的新要求。
- Rust与操作系统:学习用Rust语言编写安全的系统组件,如
Redox OS或Hubris OS,了解内存安全在OS层面的重要性。 - 分布式系统:阅读相关论文和课程,如MIT 6.824,了解操作系统在分布式环境下的延伸和挑战。
学习建议
- 不要只看不练:视频是输入,代码和实践才是输出,务必跟着课程做实验、写代码。
- 主动思考,多问为什么:不要被动接受,看到一个概念(如进程调度),要想:为什么需要它?有哪些算法?各自的优缺点是什么?
- 结合书籍阅读:视频是动态的,书籍是静态的、系统的,可以配合经典的《操作系统概念》(恐龙书)、《现代操作系统》(汤小丹版)或《深入理解计算机系统》进行学习。
- 画图!画图!画图!:进程状态转换、内存管理、文件系统布局等,用图来表示会清晰得多。
- 组建学习小组:和同学或朋友一起讨论,互相讲解,是最高效的学习方式之一。
希望这份详细的指南能帮助你顺利开启操作系统原理的学习之旅!祝你学习愉快!


