MIT 6.S081 | 0x00 Introduction
2023-11-24
MIT 6.S081 的全名为“Operating System Engineering”,它的前身是大名鼎鼎的 6.828。这门课程通过十多个实验让我们逐步了解操作系统的组成与原理,而且 MIT 的教授还专门为这们课实现了一个迷你的操作系统 xv6,麻雀虽小,五脏俱全,虽然对真正的操作系统做了很多简化,但操作系统的精髓还是得到了完整的体现。最近想复习一下操作系统的知识,同时久闻 6.828 大名,于是就想跟一跟这个实验
6.S081 这门课程每年的实验任务可能都不太一样。读者请注意,我做的是 2021 年的版本
课程资料
- 课程主页:https://pdos.csail.mit.edu/6.S081/2021/index.html
- 参考书籍:xv6: a simple, Unix-like teaching operating system
难度划分
- 🟩(easy):用时不超过一个小时。通常用来热身
- 🟦(medium):需要 1~2 个小时
- 🟥(hard):2 个小时以上。通常代码量不多,但是需要理解原理或者思路
环境准备
本实验的全部内容均在 linux 操作系统上进行,虚拟机,WSL2 以及实体机都可以。xv6 是一个在 qemu 上跑的 riscv 架构的系统,要提前安装一些必要的组件,如果你使用的是 Debian/Ubuntu,可以按照如下方式下载:
如果你用的是 Arch,可以安装下面的包:
部分包名可能会有区别,可以搜索一个最相似的包进行安装
实验列表
实验名称 | 难度 |
---|---|
0x01 Utilities | 🟩🟩🟩🟦🟦🟦 |
0x02 System calls | 🟦🟦 |
0x03 Page tables | 🟩🟩🟥 |
0x04 Traps | 🟩🟦🟥 |
0x05 Copy on-write | 🟥 |
0x06 Multithreading | 🟦🟦🟦 |
0x07 Networking | 🟥 |
0x08 Locks | 🟦🟥 |
0x09 File system | 🟦🟦 |
0x0a Mmap | 🟥 |