Skip to content

Learning materials including 11 minilabs with lab reports, lecture notes and paper notes for Introduction to Operating Systems 2020, MIT

License

Notifications You must be signed in to change notification settings

Kristoff-starling/MIT-6.S081-xv6

Repository files navigation

MIT-6.S081 Introduction to Operating Systems

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 Progress

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 - -

Lecture Notes

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

About

Learning materials including 11 minilabs with lab reports, lecture notes and paper notes for Introduction to Operating Systems 2020, MIT

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published