CS 5965 - Advanced OS Implementation

cs5965 teaches advanced topics in operating systems through a hands-on engineering approach. As a student in this class you will build a small but functional operating system kernel. In contrast to cs6465 this is an implementation-heavy class (i.e., mostly working on the code).

We will use Rust (well, this is the language the industry will be using for building new systems code) to boot into main(), implement core pieces of the operating system: memory allocator, ELF loader, page table and address spaces, processes and finally context switching and scheduling. We will spend some time on learning the tools that are needed for quick prototyping and debugging of a new kernel.

This class is for students who plan to stay in the systems field, not just building new OS kernels and hypervisors, but working on parts of modern cloud and datacenter infrastructure, be an expert in low-level systems security, be able to work on cycle-level code optimizations for warehouse scale AI and big data systems, etc. I.e., you will have a rare skill to work with the teams developing macOS and iOS kernels, XNU, Windows and Linux kernels, novel hypervisors like Amazon Nitro and Firecracker, etc. This is a rare and potentially well-compensated skill.

This class is different from cs6465 taught in 2024. In the future the idea is to have two versions of this class. This class (cs5965) focused on development and implementation and another cs6465 focused on research topics in the systems field.

Grading policy

Homework: 90%, in-class activities: 10%



Schedule

Aug 18

Aug 20

Aug 25

Aug 27

Sept 1

Sept 3

Sept 8

Sept 10

Sept 15

Sept 22

Sept 24

Sept 29

Oct 1

Oct 6

Oct 8

Oct 13

Oct 15

Oct 20

Oct 22