CS 6465 - Advanced OS Implementation

cs6465 teaches the advanced topics in operating systems. The idea is that you can learn enough about modern commodity operating systems like Linux, hypervisors like KVM, Xen and VMware, container technologies and a range of cutting edge research topics that you can either get a job in this area or start working on competitive research.

You will study, in detail, organization of modern commodity kernel like Linux, commodity hypervisors like KVM and Xen, understand performance and security problems of modern operating systems. You will further understand major research directions in the areas of security, performance and reliability of operating systems. We will cover ideas of microkernels, exokernels, unikernels and library kernels, ideas of retrofitting isolation into commodity kernels, modern hardware isolation mechanisms, software fault isolation and WASM, basics of software verification and its potential for development of formally correct operating systems.

To master the concepts, cs6465 is organized as a series of in-class presentations that most often are structured around an assigned research paper. The homeworks will follow the lectures, e.g., build a memory allocator for xv6 that follows design of the Linux memory allocator. The final project will be structured as a short (5-6 pages) research paper that we ideally prepare and submit for one of the cutting edge research workshops (yes, you will hopefully get a paper out of it).



Aug 19
Lecture 01 - Linux Memory Management (video)

Aug 21
Lecture 01 - Linux Memory Management (part 2) (video)

Aug 26
Lecture 02 - Linux Process Memory Management (video)

Aug 28
Lecture 02 - Linux Process Memory Management (part 2) (video)

Sept 2
No class (Labor Day Holiday)

Sept 4
Lecture 02 - Linux Process Memory Management (part 3) (video)

Sept 9
Lecture 03 - Linux Buffer Cache (video)

Sept 11
Lecture 04 - Recap of Linux Virtual Memory Subsystem (video)

Sept 16
Lecture 05 - Linux Device Drivers (video)

Sept 18
Lecture 06 - Synchronization
Reading: Non-scalable Locks Are Dangerous

Sept 23 No class (Anton is traveling)

Sept 25 Lecture 06 - Synchronizatioin (part 2)
Reading: RCU Usage In the Linux Kernel: One Decade Later

Sept 30 Lecture 06 - Synchronizatioin (part 3)

Oct 2 Lecture 07 - Virtualization
Reading: A Comparison of Software and Hardware Techniques for x86 Virtualization

Oct 7 No class (Fall Break)

Oct 9 No class (Fall Break)

Oct 14 Lecture 07 - Virtualization (part 2)

Oct 16 Lecture 07 - Virtualization (part 3, hardware supported virtualization)

Oct 21 Lecture 07 - Virtualization (part 4, efficient I/O)
Reading: Safe Hardware Access with the Xen Virtual Machine Monitor

Oct 23 Lecture 07 - Virtualization (part 5, migration, checkpoints, replication)
Reading: Parallax: Virtual Disks for Virtual Machines

Oct 28 Lecture 08 - Class project discussions

Oct 30 Lecture 09 - Kernel Vulnerabilities Reading: SoK: Eternal War in Memory