COMP 730: Schedule

This schedule is also available as an ical file that you can subscribe to.

Unless otherwise noted, you only need to review the first paper listed for each day.

Note that optional readings are available for those with more interest in a topic, and are not required reading for any exams or homework assignments.

Papers are only accessible to hosts in the unc.edu domain, although most are available elsewhere online.

Marking a paper as "Light" is not a criticism, but rather that you need not tease out every low-level detail. It is there to provide extra context and you should come to class prepared to discuss its main points.

Date Topics Notes Readings Optional Readings
Wed 01/20 Introduction
No review due on the first day of the course. Don's Notes. Jamboard. How (and How Not) to Write a Good Systems Paper (Levin and Redell, SIGOPS OSR, 1983). Towards a Model of Computer Systems Research (Anderson, WOWCS '08).
Part 1: OS Design
Mon 01/25 Monolithic OS Design
Don's Notes. Introduction and Overview of the Multics System (Corbato and Vyssotsky, FJCC, 1965)
Wed 01/27 Monolithic OS Design
Don's Notes.
  1. The UNIX Timesharing System (Ritchie and Thompson, SOSP, 1974).
  2. The Rise of "Worse is Better" (Richard Gabriel, Lisp: Good News, Bad News, How to Win Big, 1989).
  1. The Structure of the "THE"-Multiprogramming System (Dijkstra, CACM '68).
  2. A fork() in the road (Baumann, Appavoo, Krieger, and Roscoe, HotOS '19)
  3. A File is Not a File: Understanding the I/O Behavior of Apple Desktop Applications (Harter, Dragga, Vaughn, Arpaci-Dusseau, and Arpaci-Dusseau, SOSP '11)
Mon 02/01 Microkernels
Don's Notes. Mach: A New Kernel Foundation for UNIX Development (Accetta, Baron, Bolosky, Golub, Rashid, Tevanian, and Young, USENIX Summer '86).
  1. Improving IPC by kernel design (Liedtke, SOSP '93)
  2. On Micro-Kernel Construction (Liedtke, SOSP '95)
  3. Unix as an Application Process (Golub, Dean, Forin, and Rashid, USENIX, 1990).
Wed 02/03 Research vs. Product
In reading the second paper, feel free to skim the technical details about RCU; focus instead on the history and lessons.
Don's Notes.
  1. The Linux Edge (Linus Torvalds, Open Sources: Voices from the Open Source Revolution 1999).
  2. Introducing Technology Into The Linux Kernel:A Case Study (McKenney and Walpole, 2009, originally OSR 2008).
  1. Tanenbaum-Torvalds Debate Summary
  2. Tanenbaum-Torvalds Debate: Part II (Tanenbaum 06).
Mon 02/08 Exokernels
Review the Exokernel paper. In your review, apply the end-to-end argument to 3 Exokernel design decisions.
Don's Notes.
  1. Operating System Support for Database Management (Stonebraker, CACM 1981).
  2. End-to-end Arguments in System Design (Saltzer, Reed, and Clark, TOCS 1984).
  3. Exokernel: An Operating System Architecture for Application-Level Resource Management (Engler, Kaashoek, and O'Toole Jr., SOSP, 1995)
  1. Application Performance and Flexibility on Exokernel Systems (Kaashoek, Engler, Ganger, Briceno, Hunt, Mazieres, Pinckney, Grimm, Jannotti, and Mackenzie, SOSP, 1997).
  2. iJournaling: Fine-Grained Journaling for Improving the Latency of Fsync System Call (Park and Shin, ATC, '17)
Wed 02/10 High-Performance User I/O
Review the second paper.
Don's Notes.
  1. (Light) Arrakis: A Case for the End of the Empire (Peter and Anderson, HotOS '13)
  2. Arrakis: The Operating System is the Control Plane (Peter, Li, Zhang, Ports, Woos, Krishnamurthy, Anderson, and Roscoe, OSDI '14)
  1. IX: A Protected Dataplane Operating System for High Throughput and Low Latency (Belay, Prekas, Klimovic, Grossman, Kozyrakis, and Bugnion, OSDI '14)
  2. PTask: Operating System Abstractions To Manage GPUs as Compute Devices (Rossbach, Currey, Silberstein, Ray, and Witchel, SOSP 2011)
  3. Dandelion: a Compiler and Runtime for Heterogeneous Systems (Rossbach, Yu, Currey, Martin, Fetterly, SOSP 2013)
  4. GPUfs: Integrating a File System with GPUs (Silberstein, Ford, Keidar, Witchel, ASPLOS 2013)
  5. The Multikernel: A New OS Architecture for Scalable Multicore Systems (Baumann, Barham, Dagand, Harris, Isaacs, Peter, Roscoe, Schupbach, and Singhania, SOSP 2009).
  6. An Analysis of Linux Scalability to Many Cores (Boyd-Wickizer, Clements, Mao, Pesterev, Kaashoek, Morris, and Zeldovich, OSDI 2010)
Mon 02/15 Wellness Day, Class Canceled
Wed 02/17 Virtual Machines (part 1)
Read through the end of Section 6.1. Jamboard. Bringing Virtualization to the x86 Architecture with the Original VMware Workstation (Bugnion, Devine, Rosenblum, Sugerman, and Wang, TOCS, 2012)
  1. Disco: Running Commodity Operating Systems on Scalable Multiprocessors (Bugnion, Devine, and Rosenblum, SOSP, 1997).
  2. The Evolution of an x86 Virtual Machine Monitor (Agesen, Garthwaite, Sheldon, and Subrahmanyan, OSR, 2010)
Mon 02/22 Virtual Machines (part 2)
Read Sections 6.2--11. You do not need to submit a second review.
Don's Notes.
Bringing Virtualization to the x86 Architecture with the Original VMware Workstation (Bugnion, Devine, Rosenblum, Sugerman, and Wang, TOCS, 2012)
  1. Memory Resource Management in VMware ESX Server (Waldspurger, OSDI, 2002).
  2. Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor (Sugerman, Venkitachalam, and Lim, USENIX 2001)
Wed 02/24 Paravirtualization
Don's Notes.
  1. Xen and Art of Virtualization (Barham, Dragovic, Fraser, Hand, Harris, Ho, Neugebaur, Pratt and Warfield, SOSP 2003).
  2. (Light) Are Virtual Machine Monitors Microkernels Done Right? (Hand, Warfield, Fraser, Kotsovinos, and Magenheimer, HotOS 2005).
  3. (Light) Are Virtual Machine Monitors Microkernels Done Right? (Heiser, Uhlig, and LeVasseur, SIGOPS OSR, 2006).
Dune: Safe User-Level Access to Privileged CPU Features (Belay, Bittau, Mashtizadeh, Terei, Mazieres, and Kozyrakis, OSDI 2012)
Mon 03/01 Library OSes and Unikernels
Rethinking the Library OS from the Top-Down (Porter, Boyd-Wickizer, Howell, Olinsky, Hunt, ASPLOS, 2011)
Wed 03/03 Safe Operating Systems: Singularity
Don's Notes.
  1. Singularity: Rethinking the Software Stack (Hunt and Larus, SIGOPS OSR 2007).
  2. (Light) The Many Faces of Systems Research - And How To Evaluate Them (Brown, Chanda, Farrow, Fedorova, Maniatis, Scott, HotOS 2005)
  1. Helios: Heterogeneous Multiprocessing with Satellite Kernels (Nightingale, Hodson, McIlroy, Hawblitzel, and Hunt, SOSP 2009)
  2. Safe to the Last Instruction: Automated Verification of a Type-Safe Operating System (Yang and Hawblitzel, PLDI 2010)
Mon 03/08 Safe Operating Systems: RedLeaf
Review the second paper.
Don's notes.
  1. RedLeaf: Towards An Operating System for Safe and Verified Firmware (Narayanan, Baranowski, Ryzhyk, Rakamaric, and Burtsev, HotOS '19)
  2. RedLeaf: Isolation and Communication in a Safe Operating System (Narayanan, Huang, Detweiler, Appel, Li, Zellweger, and Burtsev, OSDI '20)
  1. Thunderstrike: EFI firmware bootkits for Apple MacBooks (Hudson and Rudolph, SYSTOR '15)
  2. RustBelt: Securing the Foundations of the Rust Programming Language (Jung, Jourdan, Krebbers, and Dreyer, POPL '18)
Part 2: File Systems
Wed 03/10 Distributed File Systems: AFS
Email your rough project interest to Don Porter by midnight, EST.
Don's Notes.
Scale and Performance in a Distributed File System (Howard, Kazar, Menees, Nichols, Satyanarayanan, Sidebothiam, and West, TOCS 1988).
  1. Design and Implementation of the SUN Network Filesystem (Sandberg, Goldberg, Kleiman, Walsh, and Lyon, USENIX 1985).
  2. Flat Datacenter Storage (Nightingale, Elson, Fan, Hofmann, Howell, and Suzue, OSDI 2012)
  3. LBFS: A Low-bandwidth Network File System (Muthitacharoen, Chen, and Mazieres, SOSP 2001)
Mon 03/15 Distributed File Systems: Ceph
Don's Notes. Ceph: A Scalable, High-Performance Distributed File System (Weil, Brandt, Miller, Long, and Maltzahn, OSDI '06)
  1. CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data (Weil, Brandt, Miller, and Maltzahn, SC '06)
  2. File Systems Unfit as Distributed Storage Backends: Lessons from 10 Years of Ceph Evolution (Aghayev, Weil, Kuchnik, Nelson, Ganger, and Amvrosiadis, SOSP '19)
Wed 03/17 Log-structured File Systems
Don's Notes.
  1. The Design and Implementation of a Log-Structured File System (Rosenblum and Ousterhout, TOCS, 1992).
  2. Ousterhout's critique of Seltzer's 1993 paper
  3. Ousterhout's critique of Seltzer's 1995 paper
  4. Seltzer's response to Ousterhout's critiques
  5. Log-structured file systems: There's one in every SSD (Aurora, LWN 2009)
  1. A Log-Structured File System for UNIX (Seltzer, Bostic, McKusick, and Staelin, USENIX 1993)
  2. Logging versus Clustering: A Performance Comparison (Seltzer, Smith, Balakrishnan, Chang, McMains, and Padmanabhan, USENIX 1995)
  3. F2FS: A New File System for Flash Storage (Lee, Sim, Hwang, and Cho, FAST '15)
Mon 03/22 Dependence Tracking
Don's Notes. Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem (McKusick and Ganger, USENIX, 1999)
  1. Generalized File System Dependences (Frost, Mammarella, Kohler, de los Reyes, Hovsepian, Matsuoka, and Zhang, SOSP 2007)
  2. Soft Updates Made Simple and Fast on Non-volatile Memory (Dong and Chen, ATC '17).
  3. Disks from the Perspective of a File System (McKusick, Queue 2012)
Wed 03/24 Write-Optimization and BetrFS
Review the second paper. Project Proposals Due by midnight
  1. An Introduction to Be-trees and Write-Optimization (Bender, Farach-Colton, Jannen, Johnson, Kuszmaul, Porter, Yuan, and Zhan, login Oct. '15)
  2. Optimizing Every Operation in a Write-Optimized File System (Yuan, Zhan, Jannen, Pandey, Akshintala, Chandnani, Deo, Kasheff, Walsh, Bender, Farach-Colton, Johnson, Kuszmaul, and Porter, FAST '16)
Mon 03/29 File Systems for Fast Storage
Don's notes. Performance and Protection in the ZoFS User-space NVM File System (Dong, Bu, Yi, Dong, and Chen, SOSP '19)
  1. NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main Memories (Xu and Swanson, FAST '16)
  2. SplitFS: Reducing Software Overheadin File Systems for Persistent Memory (Kadekodi, Lee, Kashyap, Kim, Kolli, and Chidambaram, SOSP '19)
Part 3: Concurrency
Wed 03/31 OS Design and Synchronization
Don's Notes.
Queue Slides.
Threads and Input/Output in the Synthesis Kernel (Massalin and Pu, SOSP 1989)
  1. The Design and Implementation of an Operating System to Support Distributed Multimedia Applications (Leslie, McAuley, Black, Roscoe, Barham, Evers, Fairbarns, and Hyden, JSAC 1997).
  2. Chapter 6 of Massalin's Thesis
Mon 04/05 Wellness Day, Class Canceled
Wed 04/07 Scaling the OS and Applications
Don's Notes. The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors (Clements, Kaashoek, Zeldovich, Morris, and Kohler, SOSP '13)
  1. Experiences with Processes and Monitors in Mesa (Lampson and Redell, Communications of the ACM 23, 2, 1980).
  2. Programming with Threads (Birrell 1996).
  3. Event-driven Programming for Robust Software (Dabek, Zeldovich, Kaashoek, Mazieres, and Morris, SIGOPS, 2002)
  4. Why Events Are A Bad Idea (for high-concurrency servers) (von Behren, Condit, and Brewer, HotOS, 2003)
  5. Why Threads Are a Bad Idea (for most purposes) (Ousterhout, USENIX, 1996).
Part 4: Correctness
Mon 04/12 seL4
Don's notes. seL4: Formal Verification of an OS Kernel (Klein et al, SOSP '09) From L3 to seL4: What Have We Learnt in 20 Years of L4 Microkernels? (Elphinstone and Heiser, SOSP '13)
Wed 04/14 File System Verification
Don's notes. Push-Button Verification of File Systems via Crash Refinement. (Sigurbjarnarson, Bornholt, Torlak, and Wang, OSDI '16)
Part 5: Debugging
Mon 04/19 Finding Bugs
Don's Notes.
  1. Klee: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs (Cadar, Dunbar, and Engler, OSDI 2008)
  2. A few billion lines of code later: using static analysis to find bugs in the real world (Al Bessey, Ken Block, Ben Chelf, Andy Chou, Bryan Fulton, Seth Hallem, Charles Henri-Gros, Asya Kamsky, Scott McPeak, Dawson Engler, Communications of the ACM archive Volume 53, Issue 2, February 2010)
Weird things that surprise academics trying to commercialize a static checking tool (Chou, Chelf, Hallem, Hanri-Gros, Fulton, Unangst, Zak, and Engler, SPIN, 2005)
Wed 04/21 Statistical Debugging
Don's notes Debugging in the (Very) Large: Ten Years of Implementation and Experience (Glerum et al., SOSP '09)
Part 6: Security
Mon 04/26 Reasoning about System Security
Don's Notes.
  1. Logical Attestation: An Authorization Architecture for Trustworthy Computing (Sirer, Bruijn, Reynolds, Shieh, Walsh, Williams, Schneider, SOSP 2011)
  2. (Light) 17 Mistakes Microsoft Made in the Xbox Security System (Steil 2005)
  1. Authentication in Distributed Systems: Theory and Practice (Lampson, Abadi, Burrows, and Wobber, TOCS 1992)
  2. A Logic of Authentication (Burrows, Abadi, and Needham, TOCS 1990).
Wed 04/28 The Trusted Computing Base
Don's Notes.
  1. Shielding Applications from an Untrusted Cloud with Haven (Baumann, Peinado, and Hunt, OSDI '14)
  2. Reflections on Trusting Trust (Thompson, Turing Award Lecture, 1984)
  1. Native Client: A Sandbox for Portable, Untrusted x86 Native Code (Yee, Sehr, Dardyk, Chen, Muth, Ormandy, Okasaka, Narula, Fullagar, Oakland 2009)
  2. Leveraging Legacy Code to Deploy Desktop Applications on the Web (Douceur, Elson, Howell, Lorch, OSDI 2008)
Mon 05/03 Project Presentations
Wed 05/05 Project Presentations
Final project report due via email to Don Porter by 5pm EDT.

Copyright Notice: These lecture notes, homeworks, and lab assignments are part of a graduate course on operating systems. You must ask me permission to use these materials. I do not grant to you the right to publish these materials for profit in any form.
Donald Porter, The University of North Carolina at Chapel Hill


Last updated: 2021-05-06 11:14:08 -0400 [validate xhtml]