The repository includes useful material for learning MIT-6.S081: Introduction to Operating Systems. It consists of the following parts:
- Lecture notes: links to lecture notes (English version) are available at the "Lecture Note" part. Some code details may not be included in the lecture notes. You can refer to the "Xv6-book Notes" and "Xv6 Source code Manual" for details (working in progress).
- Lab source code: You can refer to the corresponding branches for implementation of labs. The master branch aims at merging all the features implemented in labs and presenting an improved version of xv6.
- Lab reports: links to lab reports (Chinese version) are available at the "Lab Progress" part. Different from other bloggers who offer the complete code implementation of labs, our labs reports focus on the high-level implementation and some tricky details we encountered when debugging. You can refer to the lab reports for general ideas. If you want to refer to the detailed code, you should switch to corresponding branches.
Lab Notes (updating)
Lab title | Code | Master branch project | Difficulty |
---|---|---|---|
Lab 01: Xv6 and Unix utilities | Completed | Completed | ☆ |
Lab 02: System calls | Completed | Completed | ☆ |
Lab 03: Page tables | Completed | - | ☆☆☆☆☆ |
Lab 04: Traps | Completed | - | ☆ |
Lab 05: Lazy allocation | Completed | - | ☆☆ |
Lab 06: Copy-on-write fork | Completed | - | ☆☆☆ |
Lab 07: Multithreading | Completed | - | ☆ |
Lab 08: Locks | - | - | |
Lab 09: File system | - | - | |
Lab 10: mmap | - | - | |
Lab 11: Networking | - | - |
Link (updating)
Table of Contents
- Lecture 01: Introduction and Examples
- Lecture 02: (Video missing)
- Lecture 03: OS Organization and System Calls
- Lecture 04: Page Tables
- Lecture 05: RISC-V Calling Convention and Stack Frames
- Lecture 06: Traps
- Lecture 07: Q&A for Labs #1
- Lecture 08: Page Faults
- Lecture 09: Interrupts
- Lecture 10: Multiprocessors and Locks
- Lecture 11: Thread Switching
- Lecture 12: Q&A for Labs #2
- Lecture 13: Sleep & Wakeup
- Lecture 14: File Systems
- Lecture 15: Crash Recovery
- Lecture 16: File System Performance
- Lecture 17: Virtual Memory for Applications
- Lecture 18: OS Organization
- Lecture 19: Virtual Machines
- Lecture 20: Kernels and High-level Language
- Lecture 21: Networking
- Lecture 22: Meltdown
- Lecture 23: RCU
- Lecture 24: Final Q&A