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).
- Instructor: Anton Burtsev (anton.burtsev@utah.edu)
- Time and place: Mon/Wed, 3:00pm - 4:20pm, JTB 120
- Canvas: https://utah.instructure.com/courses/973814
- Piazza (questions): https://piazza.com/utah/fall2024/cs6465/home
- Gradescope (homework assignments and quizzes): https://www.gradescope.com/courses/850859
- Office hours: Wed 2-3pm Anton’s office, MEB 3424
- List of potential class projects
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