os-meetup

Operating Systems Meetup 2022

22’ Operating Systems Meetup

https://zoom.us/j/92517386662?pwd=eVVxQjZvbzgvbE5uS2ZRbWxOaDZSUT09

Annoucement

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

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

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

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

    1. What are the contents in trampline page and trapframe page?
    2. How does CPU set the current mode to supervisor mode?
    3. Which part enables the SIE bit in register sstatus after SIE got disabled by CPU?
    4. How does xv6 gets string parameters for a system call?
  • 8/04/2022 📢 Guest Talk

    1. We are more than glad to share that Dr. Lixiang Ao will be speaking at os-meetup on 8/06/2022 :calendar:.
      :technologist: 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.
    2. 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.
  • 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

    1. 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.
    2. 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.
    3. 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

    1. 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?
    2. What are sfence.vma and satp instructions in RISC-V?
    3. Why does bloom filter, an efficient set membership lookup data structure, are not used in page table lookups?
    4. Can you describe, in words, how to walk through the page tables to find the correct physical address?
    5. What are the benefits of direct mapping from VA to PA? (direct mapping examples: PLIC, VIRIO disk, Kernel Text, PHYSTOP)
    6. 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?
    7. 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 and esp 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 and ra, 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 decrements sp and pop increments sp.

    • 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

    1. In the book, it says that every process has a user stack and a kernel stack. Where is user stack defined in proc.h?
    2. What are mret and sret instructions in RISC-V?
    3. How is microkernel different from unikernel? Can you name some examples of monokernel, microkernel, and unikernel? What is microVM?
    4. Can you describe, in full detail, how Xv6 boostraps and runs the first user process?
    5. Explain what are "undefined behaviours" in C language
    6. What is segmentation fault in C program?
  • 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).

Schedule

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
Readings:the Biscuit paper (2018), Lecture: Lec 20
🔴 DUE: Lab lock
TBD TBD
12/17/2022 5:00pm
12/18/2022 9:00am
Readings:Receive Livelock (1996), Lecture: Lec 21 TBD TBD
01/07/2023 5:00pm
01/08/2023 9:00am
Riff Introduction to windows performance analysis TBD TBD
01/14/2023 5:00pm
01/15/2023 9:00am
Readings:Meltdown (2018), Lecture: Lec 22
🔴 DUE: Lab fs
TBD TBD
01/28/2023 5:00pm
01/29/2023 9:00am
TBD TBD
02/04/2023 5:00pm
02/05/2023 9:00am
Readings:RCU paper (2013), Lecture: Lec 23 TBD TBD
02/11/2023 5:00pm
02/12/2023 9:00am
Readings:NASA CALIPSO paper (2006) for background
🔴 DUE: Lab mmap
TBD TBD

Misc

Sponsors

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:

FAQ

  1. Do you have recordings for each meetup?

A: Absolutely yes! you can find all our recordings in this playlist