跳转至

Lecture Companion

Lecture Companion 是面向同学们的一组补充读物。它的定位不是替代实验讲义,也不是必须完成的固定作业,而是帮助你把课堂 PPT 里的概念和仓库中的真实代码对应起来。

阅读定位

本栏目下的内容属于选读型补充材料

  • 不要求所有同学都必须逐篇完成;
  • 不作为实验的硬性提交项;
  • 更适合在你已经能编译、运行并初步调试 NexOS 后使用。

适合哪些学生

如果你属于下面任意一种情况,这个栏目会比较有帮助:

  • 你能跟上课堂概念,但看到代码时还不清楚这些概念具体落在什么位置;
  • 你做实验时经常“会改代码,但讲不清原理”,希望把实现路径串起来;
  • 你想把 PPT 中的章节内容和 NexOS 代码仓库建立一一对应关系;
  • 你打算进一步阅读内核实现细节,为后续实验、复习或面试准备打基础;
  • 你对操作系统课程本身比较感兴趣,希望比实验要求再多走一步。

不太适合什么时候看

如果你当前还处在下面这些阶段,建议先不用急着读这里:

  • 还没有完成基础环境配置,暂时不能正常运行 NexOS
  • 还在熟悉最基本的实验流程,例如编译、打包、启动和调试;
  • 当前主要目标是先把必做实验要求完成。

建议的使用方式

最好的使用方式不是从头到尾“刷读物”,而是带着问题来读。例如:

  • 课堂上听到 forkexectrap 这些词时,想知道它们在代码里分别出现在哪里;
  • 做实验时改到了某个系统调用,想顺着用户态到内核态完整追一遍;
  • 复习时希望把某一章 PPT 压缩成一条更接近真实实现的代码阅读路径。

当前内容

目前本栏目已经提供的内容如下:

  1. CH2: OS Structure and System Calls
  2. CH3: Process Concepts & Operations
  3. CH4: Threads
  4. CH5: IPC

后续还会继续加入更多“PPT 章节 + 代码阅读路径”对应的补充读物。

阅读前提

建议在阅读前至少完成以下准备:

make
make fsimg
make qemu

并确保你已经能够:

  • 进入系统 Shell
  • 运行基础用户程序;
  • 大致知道用户态代码和内核态代码分别位于哪些目录。

阅读时的边界提醒

请结合当前仓库实现理解

Lecture Companion 的内容会尽量贴合当前课程仓库,但它解释的是“当前实现里已经存在或能够观察到的部分”,不是对操作系统理论章节的完整覆盖。

当前仓库里还存在一些尚未完全接入或尚未实现的部分,阅读时需要注意(后续也会说明)。