https://404notfixed.vercel.app/posts/feed.xml

MIT 6.S081 | 0x00 Introduction

2023-11-24

MIT 6.S081 的全名为“Operating System Engineering”,它的前身是大名鼎鼎的 6.828。这门课程通过十多个实验让我们逐步了解操作系统的组成与原理,而且 MIT 的教授还专门为这们课实现了一个迷你的操作系统 xv6,麻雀虽小,五脏俱全,虽然对真正的操作系统做了很多简化,但操作系统的精髓还是得到了完整的体现。最近想复习一下操作系统的知识,同时久闻 6.828 大名,于是就想跟一跟这个实验

6.S081 这门课程每年的实验任务可能都不太一样。读者请注意,我做的是 2021 年的版本

课程资料

难度划分

  • 🟩(easy):用时不超过一个小时。通常用来热身
  • 🟦(medium):需要 1~2 个小时
  • 🟥(hard):2 个小时以上。通常代码量不多,但是需要理解原理或者思路

环境准备

本实验的全部内容均在 linux 操作系统上进行,虚拟机,WSL2 以及实体机都可以。xv6 是一个在 qemu 上跑的 riscv 架构的系统,要提前安装一些必要的组件,如果你使用的是 Debian/Ubuntu,可以按照如下方式下载:

sudo apt-get install git build-essential gdb-multiarch qemu-system-misc \
  gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu

如果你用的是 Arch,可以安装下面的包:

sudo pacman -S riscv64-linux-gnu-binutils riscv64-linux-gnu-gcc \
  riscv64-linux-gnu-gdb qemu-arch-extra

部分包名可能会有区别,可以搜索一个最相似的包进行安装

实验列表

实验名称难度
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🟥