导学阶段-操作系统理论
  • 操作系统理论
签到人数:73
cover
导学阶段-操作系统理论
  • 课程介绍
  • 学习视频(13)
  • 组队信息(3)
  • 晋级榜单(0)

导学阶段-操作系统理论

一、 阶段定位与目标

本阶段是整个开源操作系统训练营的理论基石。在您动手编写第一行内核代码之前,我们希望帮助您建立对操作系统全局图景和核心设计思想的清晰认知。

根据规划,训练营旨在解决“课程难度曲线大”和“设计思想讲解不足”的核心问题。本阶段正是应对之道:理论先行,思想筑基

主要目标:

  1. 构建全局观:理解操作系统在计算机体系结构中的定位与作用,掌握其核心功能(进程管理、内存管理、文件系统、I/O系统)的设计目标与基本原理。
  2. 理解设计思想:不局限于具体实现,深入理解操作系统设计中的核心思想与权衡,如抽象、隔离、并发、虚拟化、持久化等,为后续理解不同内核形态(宏内核、Unikernel、组件化内核)的演进逻辑打下基础。
  3. 衔接前后知识:帮助学员将已有的编程语言、数据结构、计算机组成原理等知识,与操作系统原理融会贯通,为后续的Rust系统编程与内核实践铺设理论道路。

本阶段内容以自学往期优质录播课程为主,辅以助教灵活的答疑与专题讲解,旨在让不同背景的学员都能顺利入门。

二、 主要内容模块

本阶段课程内容将涵盖操作系统原理的核心主题,参考经典教材与教学体系,主要包括:

  1. 操作系统概述:操作系统的定义、发展历史、功能与角色,用户态与内核态,系统调用接口。
  2. 进程与线程管理:进程的概念、状态与控制,线程模型,进程调度算法,进程间通信(IPC)与同步互斥机制。
  3. 内存管理:地址空间,连续内存分配与分页机制,虚拟内存的概念、实现与页面置换算法。
  4. 文件系统:文件概念、目录结构,文件系统的实现(如磁盘分配方法、目录实现),文件系统实例分析。
  5. 输入输出管理:I/O硬件原理,I/O软件层次结构,磁盘调度算法。
  6. 并发与同步:并发的概念,临界区问题,信号量、管程等同步机制,死锁的原理与处理策略。

以上内容将通过精选的录播视频,系统地呈现给您。

三、 学习方式与建议

  1. 自学核心录播课程:平台将公开往期训练营导学阶段的操作系统原理录播课程。请务必按章节顺序系统学习,这是最核心的学习材料。
  2. 参与助教答疑与专题课:助教团队会根据学员学习情况,灵活安排线上答疑或就某个难点(如“虚拟内存的映射过程”、“进程调度的实现考量”)进行专题讲解。请留意课程公告与群消息。
  3. 结合经典教材阅读:录播课程能够引导学习,但深入理解需要阅读经典教材。推荐教材见下方资料链接。
  4. 理论联系思考:在学习每个概念时,多思考“为什么这样设计?”。例如,学习进程时思考“为什么需要线程?”;学习分页时思考“它如何实现内存隔离和共享?”。这种思考对理解后续内核实验至关重要。

四、 推荐学习资料

以下资料是本阶段学习的深度补充,强烈推荐结合使用:

核心教材:

  • 《操作系统导论》(Operating Systems: Three Easy Pieces, OSTEP):免费、开源、写得极好的入门教材。它以“虚拟化、并发、持久性”三个核心思想为主线,正是我们强调的“设计思想”导向。
  • 《现代操作系统》:Andrew S. Tanenbaum所著,内容全面,适合作为参考书和进阶阅读。
  • 《操作系统概念》:另一本经典教材,内容详实。

公开课程(供参考):

  • MIT 6.S081: Operating System Engineering:世界顶级的操作系统公开课,基于xv6(一个类Unix的教学操作系统)讲授,实践性极强。虽然我们使用Rust和RISC-V,但其课程视频与实验设计思路极具参考价值。
  • 清华大学操作系统课程:清华计算机系本科操作系统课程,与训练营内核实验(rCore)有直接的传承关系,其理论部分视频可作为优质补充。

拓展阅读:

  • 《深入理解计算机系统》:从程序员视角理解计算机系统,其中对异常控制流、虚拟内存等部分的讲解与操作系统原理紧密相关,能帮助理解硬件如何支撑OS设计。
  • 操作系统相关经典论文:对某个主题(如调度、文件系统)感兴趣时,可以搜索阅读相关历史经典论文,追溯设计思想的源头。

五、 关于晋级与要求

导学阶段-操作系统理论部分不设置硬性的“通过”或“晋级”门槛。这意味着您不会被理论考试拦在门外。

然而,这绝非意味着此阶段可选。理论是实践的灯塔。后续在基础阶段,当您开始设计OS内核小组件时;在专业阶段,当您实现rCore的各个模块时;在项目先导阶段,当您思考为何需要Unikernel以及如何组件化时——所有这些实践的背后,都离不开本阶段所建立的设计思想与全局认知

我们希望您能主动学习,并在遇到疑问时积极参与助教的答疑活动,真正将理论知识内化,为成为优秀的系统软件开发者做好准备。

empty image
暂无数据
每支队伍最多 5
序号队伍名称城市学校人数队长队员
Simple Empty
暂无数据
  • 共3条
  • 1
排名姓名学校分数最后提交时间链接
Simple Empty
暂无数据