https://zoom.us/j/92517386662?pwd=eVVxQjZvbzgvbE5uS2ZRbWxOaDZSUT09
- 2/21/2023 We have officially ended our OS meetup 🎉🎉🎉! Thank you, for staying with us, on this incredible adventure!
- 02/18/2023 📢 This will be our last meetup on our adventure to MIT 6.S081! Come and learn more about meltdown, and celebrate with us on finishing the course together!
- 01/13/2023 📢 We are back to our MIT 6.S081 course! This week, Mossaka will cover lecture 20: kernels and high-level-languages. Please check our calendar for reading materials and join us on 01/14/2023 for the meetup.
- 12/05/2022 📢 We are excited to share that Michael Qiu will cover lecture 23: RCU at os-meetup on 12/10/2022. Please notice that we will cover lecture 23 instead of lecture 20 on 12/20/2022.
- 10/29/2022 We have finished more than half of the course! Please help us evaluate our performance and collect feedback by filling out this short survey (about 2 minutes).
- 10/08/2022 Hey there, we will delay our discussion on Filesystem (lecture 14) to next week. Have a great weekend!
- 9/23/2022 Lab 5: Cow has been updated. please use this link to clone your private repo. Please remember that NEVER share code publically and NEVER make the repo public. The first lab is due on 📅 Saturday 10/08/2022. You can directly
git push
to your repo to submit your lab assignment. - 9/09/2022 📢 We are excited to announce that Hongwang Li is going to cover lecture 9: interrupt at os-meetup on 9/10/2022 .
- 8/26/2022 Lab 4: Traps has been updated. please use this link to clone your private repo. Please remember that NEVER share code publically and NEVER make the repo public. The first lab is due on 📅 Saturday 9/17/2022. You can directly git push to your repo to submit your lab assignment.
Past Announcement
-
8/20/2022 📢 We have extended the deadline for Lab 3 pgtbl to Aug 27th. As usual, we will release the next lab, lab 4 Traps, by EOD today, which is now due at Sep 17th.
-
8/19/2022 📢 Guest Demo
- We are delighted to announce that Michael Qiu is going to giave a demo on setting up GDB for xv6 on Mac and WSL at os-meetup on 8/20/2022 .
- We are delighted to announce that Michael Qiu is going to giave a demo on setting up GDB for xv6 on Mac and WSL at os-meetup on 8/20/2022 .
-
8/19/2022 📢 Schedule Update
- There will be no meetup on 8/27/2022 due to schedule conflicts. We are sincerely sorry and will try our best to avoid conflicts in the future.
- There will be no meetup on 8/27/2022 due to schedule conflicts. We are sincerely sorry and will try our best to avoid conflicts in the future.
-
8/11/2022 📢 Guest Demo
- We are more than glad to share that Fei Hu is going to give a demo on GDB in VS Code at os-meetup on 8/13/2022 .
- We are more than glad to share that Fei Hu is going to give a demo on GDB in VS Code at os-meetup on 8/13/2022 .
-
8/11/2022 ❓Below are some questions you can think about before the Saturday meetup
- What are the contents in
trampline
page andtrapframe
page? - How does CPU set the current mode to supervisor mode?
- Which part enables the
SIE
bit in registersstatus
afterSIE
got disabled by CPU? - How does xv6 gets string parameters for a system call?
- What are the contents in
-
8/04/2022 📢 Guest Talk
- We are more than glad to share that Dr. Lixiang Ao will be speaking at os-meetup on 8/06/2022 📆.
🧑💻 Dr. Lixiang Ao is a software engineer at Databricks. Before joining Databricks, Lixiang obtained PhD from University of California, San Diego. His research interests are cloud computing, and distributed systems with an emphasis on serverless infrastructure and video processing. - The guest talk is about FaaSnap: FaaS Made Fast Using Snapshot-based VMs. Please check our calendar for reading materials and join us on 8/06/2022 for the guest talk.
- We are more than glad to share that Dr. Lixiang Ao will be speaking at os-meetup on 8/06/2022 📆.
-
7/30/2022 📅 Reminder: Lab 2 Syscalls is due on this Saturday 7/30/2022 at 5:00 P.M. PST. We had canceled today's meetup. Mossaka will hold an 1-hour office hour to answer questions related to lab 2 syscalls.
-
7/24/2022 📢 Code Sharing Agreement
- In order to help meetup attendees understand the labs, we will cover labs in meetup lectures. We will also share different answers from Github Classroom.
- If you are using Github Classroom for your labs, which means your granted us the permission to share your lab solution during meetup. Please let us know by email if you have any question on this.
- We also encourage meetup attendees to share their solutions during the meetup.
-
7/22/2022 ❓Below are some questions you can think about before the Saturday meetup
- Can you name some pros and cons for the 3-layer page table design? How does Translation Look-aside Buffer mitigate some of the issues that 3-layer page table brings?
- What are
sfence.vma
andsatp
instructions in RISC-V? - Why does bloom filter, an efficient set membership lookup data structure, are not used in page table lookups?
- Can you describe, in words, how to walk through the page tables to find the correct physical address?
- What are the benefits of direct mapping from VA to PA? (direct mapping examples: PLIC, VIRIO disk, Kernel Text, PHYSTOP)
- If Xv6 is written in a memory-safe programming language, like Rust, does it still need to worry about strong isolation between processes? Does it still need seperation of kernel and user mode?
- Why does Xv6 emulate page table look ups, isn't this supported by the RISC-V hardware?
-
7/17/2022 Lab 2: Syscalls has been updated. please use this link to clone your private repo. Please remember that NEVER share code publically and NEVER make the repo public. The first lab is due on 📅 Saturday 7/30/2022. You can directly
git push
to your repo to submit your lab assignment. -
7/17/2022 Thanks for joining our second OS meetup! Here is a brief summary of the post-meetup discussion:
- Here are some examples of unikernels.
- Redox OS is a new microkernel based operating system written in Rust
- A process has a user stack and a kernel stack. The user stack is addressed by some special stack registers.
-
In X86,
ebp
is the base pointer for the current stack frame andesp
is is the current stack pointer. -
Typically you would see something like
push EBP mov EBP, ESP sub ESP, <some_number>
-
In RISC-V, there are
sp
andra
, which stands for stack pointer and return address. RISC-V stack always grows downwards, and it always points to the last used place on the stack.Push
decrementssp
andpop
incrementssp
.
-
- C undefined behaviors are C programs that may output unexpected results. For example, if you access out-of-bounds array, or dereference a null pointer, the program may crash, or may output unexpected results.
- Process address space is divided to different segments: text, data, heap, stack, and so on. A segmentation fault occurs when the program tries to access an address that is not in the segment, or attempt to write to an read-only segment.
-
7/15/2022 Wen Lin and Mossaka will hold an office hour for answering lab 1 questions! Come and talk about Xv6! Zoom link.
-
7/15/2022 ❓Below are some questions you can think about before the Saturday meetup
- In the book, it says that every process has a user stack and a kernel stack. Where is user stack defined in
proc.h
? - What are
mret
andsret
instructions in RISC-V? - How is microkernel different from unikernel? Can you name some examples of monokernel, microkernel, and unikernel? What is microVM?
- Can you describe, in full detail, how Xv6 boostraps and runs the first user process?
- Explain what are "undefined behaviours" in C language
- What is segmentation fault in C program?
- In the book, it says that every process has a user stack and a kernel stack. Where is user stack defined in
-
7/14/2022 📅 Reminder: Lab 1 Util is due on this Saturday 7/16/2022 at 5:00 P.M. PST. We will hold a post-lab happy hour 🎉 on Saturday at the end of our meetup.
-
7/10/2022 Lab 1 Util Github Classroom has been updated. Please click here to get a fork. Please remember that NEVER share code publically and NEVER make the repo public. The first lab is due on 📅 Saturday 7/16/2022. You can directly
git push
to your repo to submit your lab assignment. -
7/10/2022 Thanks for joining our first OS meetup! Here are the links we shared:
- [Mossaka]: recommends a textbook alternative: Operating Systems, Three Easy Pieces
- [Mossaka]: this is a good article to learn more about how high-level programming languages like Rust makes cross-platform stdlib.
- [Morgan Wu]: mentioned POSIX which is quiet an interesting work.
- [Mossaka]: Check out WASI (WebAssembly System Interface) to learn how to build a POSIX-like system for WebAssembly that lives on the browser.
- Post-meetup, we talked about a system interface for the cloud is a missing piece in the modern cloud-era. It would greatly benefit those who want to migrate one cloud to another, or to build cloud-native systems that use both cloud and on-premise, or simply don't want to be locked in to a particular cloud provider (AWS, Azure, GCP, etc.).
- go-cloud is an interesting work that provides a "stable, idiomatic interfaces for common uses like storage and databases".
- Change Data Capture (mentioned in DDIA Chap 11) is another great example of building abstraction on heterogeneous database systems to extract logs out and process them as events.
- [David]: mentioned Debezium, which is an open source distributed platform for change data capture, and it's associated paper DBlog Next week, Mossaka will present Lecture 2: OS Organization and System Calls. Our lab util is due on Saturday 7/16/2022. We will go through some of the hard questions during the meetup.
-
7/5/2022: Our first meetup will be presented by Mossaka and Wen Lin on July 9th, 2022 at 5:00pm PST! We will introduce our org, the os-meetup and the schedule. The second half of the meetup, we will introduce operating systems, and discuss lecture 1 and our reading material chapter 1! We call for vonlunteer meetup presenter signups!
-
6/27/2022: Our schedule is updated!
-
5/31/2022: Our first meetup is scheduled to be held on the July 9th, 2022 🎉! We will be learning and discussing MIT 6.S081 Fall 2021 together! The schedule, zoom link and other info will be posted soon.
Note: Starting Fall 2020, MIT 6.828 is offered as two courses: 6.S018 (intro to OS) and 6.828 (research focused).
Datetime: PST & BJ | Presenter | Topic | Material | Slides | Recording |
---|---|---|---|---|---|
07/09/2022 5:00pm 07/10/2022 8:00am Zoom |
Mossaka & Wen | Administrative and Intro to OS | Readings: Chapter1; Lecture: Lec 1 |
Slide Deck | Recording |
07/16/2022 5:00pm 07/17/2022 8:00am Zoom |
Mossaka | OS Organization | Readings: Chapter 2 and xv6 code: kernel/proc.h, kernel/defs.h, kernel/entry.S, kernel/main.c, puser/initcode.S, user/init.c, skim kernel/proc.c, kernel/exec.c; Lecture: Lec 3 🔴 DUE: Lab util |
Slide Deck | Recording |
07/23/2022 5:00pm 07/24/2022 8:00am Zoom |
Mossaka | Page Tables | Readings: Chapter 3 and kernel/memlayout.h, kernel/vm.c, kernel/kalloc.c, kernel/riscv.h, and kernel/exec.c; Lecture: Lec 4 |
Slide Deck | Recording |
07/30/2022 5:00pm 07/31/2022 8:00am Zoom |
Mossaka | Office Hour for Lab Syscalls | Office Hour for Lab syscall & Open discussion on questions left from Page Tables 🔴 DUE: Lab syscall, Please accept the lab using this link | / | / |
08/06/2022 5:00pm 08/07/2022 8:00am Zoom |
Lixiang Ao | FaaSnap: FaaS Made Fast Using Snapshot-based VMs | FaaSnap: FaaS Made Fast Using Snapshot-based VMs Firecracker: Lightweight Virtualization for Serverless Applications |
Slide Deck | Recording |
08/13/2022 5:00pm 08/14/2022 8:00am Zoom |
Fei Hu & Wen | System Call Entry & Exit | Readings: Chapter 4 except 4.6 and kernel/riscv.h, kernel/trampoline.S, and kernel/trap.c; Lecture: Lec 6 |
Slide Deck | Recording |
08/20/2022 5:00pm 08/21/2022 8:00am Zoom |
Michael Qiu & Mossaka | xv6 GDB Demo & Office Hour for Lab Pgtbl | Demo on xv6 in GDB. Office Hour for Lab Pgtbl & Open discussion for tech questions |
/ | Recording |
08/27/2022 5:00pm 08/28/2022 8:00am |
GAP | GAP | 🔴 DUE: Lab pgtbl | / | / |
09/03/2022 5:00pm 09/04/2022 8:00am Zoom |
Wen | Page Fault | Readings: Section 4.6; Lecture: Lec 7 |
Slide Deck | Recording |
09/10/2022 5:00pm 09/11/2022 8:00am Zoom |
Hongwang Li | Interrupts | Readings: Chapter 5 and kernel/kernelvec.S, kernel/plic.c, kernel/console.c, kernel/uart.c, kernel/printf.c Lecture: Lec 9 |
Slide Deck | Recording |
09/17/2022 5:00pm 09/18/2022 8:00am Zoom |
Mossaka | Locking | Readings:"Locking" with kernel/spinlock.h and kernel/spinlock.c, Lecture: Lec 10 🔴 DUE: Lab traps |
Slide Deck | Recording |
09/24/2022 5:00pm 09/25/2022 8:00am Zoom |
Mossaka | Lab 4 and Scheduling I | Readings:"Scheduling" through Section 7.4, and kernel/proc.c, kernel/swtch.S, Lecture: Lec 11 | Slide Deck | Recording |
10/01/2022 5:00pm 10/02/2022 8:00am Zoom |
Mossaka | Readings:remainder of "Scheduling", and corresponding parts of kernel/proc.c, kernel/sleeplock.c, Lecture: Lec 12 | Notes | Recording | |
10/08/2022 5:00pm 10/09/2022 8:00am |
GAP | GAP | / | / | |
10/15/2022 5:00pm 10/16/2022 8:00am Zoom |
Wen | File System I | Readings:kernel/bio.c, kernel/fs.c, kernel/sysfile.c, kernel/file.c and "File system" (except for the logging sections), Lecture: Lec 14 🔴 DUE: Lab cow |
Slide Deck | Recording |
10/22/2022 5:00pm 10/23/2022 8:00am Zoom |
Wen | File System II Crash Recovery | Readings:kernel/log.c and the logging sections of "File system", Lecture: Lec 15 | Slide Deck | Recording |
10/29/2022 5:00pm 10/30/2022 8:00am Zoom |
Mossaka | Linux EXT3 Filesystem | Readings:Journaling the Linux ext2fs Filesystem (1998), Lecture: Lec 16 🔴 DUE: Lab thread |
Slide Deck | Recording |
11/05/2022 5:00pm 11/06/2022 8:00am Zoom |
Mossaka | Guest Talk: A new Kind of Cloud System Interface with WebAssembly | / | Slide Deck | Recording |
11/12/2022 5:00pm 11/13/2022 9:00am Zoom |
Wen | The Virtual Memory Primitives in User Programs | Readings:Virtual Memory Primitives for User Programs (1991), Lecture: Lec 17 🔴 DUE: Lab net |
Slide Deck | Recording |
11/19/2022 5:00pm 11/20/2022 9:00am Zoom |
Mossaka | Microkernels | Readings:The Performance of micro-Kernel-Based Systems (1997), Lecture: Lec 18 | Slide Deck | Recording |
12/03/2022 5:00pm 12/04/2022 9:00am |
Wen | Virtual Machine | Readings:Dune: Safe User-level Access to Privileged CPU Features (2012), Lecture: Lec 19 | Slide Deck | Recording |
12/10/2022 5:00pm 12/11/2022 9:00am |
GAP | GAP | / | / | |
12/17/2022 5:00pm 12/18/2022 9:00am Zoom |
Michael Qiu | Read Copy Update | Readings:RCU paper (2013), Lecture: Lec 23 🔴 DUE: Lab lock |
TBD | TBD |
01/07/2023 5:00pm 01/08/2023 9:00am |
Riff | Introduction to windows performance analysis | TBD | Recording | |
01/14/2023 5:00pm 01/15/2023 9:00am Zoom |
Mossaka | Writing UNIX kernel in a high-level language | Readings:the Biscuit paper (2018), Lecture: Lec 20 | Notes | Recording |
02/04/2023 5:00pm 02/05/2023 9:00am Zoom |
Mossaka | Networking | Readings:Receive Livelock (1996), Lecture: Lec 21 🔴 DUE: Lab fs |
Notes | Recording |
02/11/2023 5:00pm 02/12/2023 9:00am Zoom |
Wen | An Introduction to Service Mesh with Istio | N/A | TBD | Recording |
02/18/2023 5:00pm 02/12/2023 9:00am Zoom |
Meltdown | Readings:Meltdown (2018), Lecture: Lec 22 | TBD | TBD |
- Labs
- Join Slack for async discussion
- If you wish to join 微信 (WeChat), please scan
- MIT 6.S081 website
- Textbook: xv6
- The C programming language (second edition) by Kernighan and Ritchie. Prentice Hall, Inc., 1988. ISBN 0-13-110362-8, 1998.
- Operating Systems, Three Easy Pieces
- Alternative courses
- Berkeley cs162
- Stanford cs140e. A course about Operating Systems with all labs in Rust 🦀
- Distributed Systems Meetup
- Database Systems Meetup
The organizers spent a lot of time and effort to make this meetup possible. If you would like to sponsor this meetup, please contact us at
systemsgossip at gmail dot com
We would like to thank the following sponsors for their support:
- Do you have recordings for each meetup?
A: Absolutely yes! you can find all our recordings in this playlist