CS 5460/6460 — Operating Systems
- Instructor: Anton Burtsev (anton.burtsev@utah.edu)
- Time and place: Tue/Thu, 9:10am – 10:30am, WEB L101
- Canvas: https://utah.instructure.com/courses/1221030
- Piazza (questions): https://piazza.com/utah/spring2026/cs6460001spring2026/home
- Piazza sign up link and code are on Canvas
- Gradescope (homework assignments and quizzes): https://www.gradescope.com/courses/1213502
- Office hours:
- Anton: Tuesdays 11:00am–12:00pm in Anton’s office, MEB 3424
- Thalia: Thursdays 11:00am–12:00pm or by appointment in MEB 2180
- Hanwen: Thursdays 12:00pm–1:00pm or by appointment in MEB 2180 or zoom occasionally
- Manvik: Thursdays 4:00pm–5:00pm or by appointment in MEB 3375
- Poll Everywhere: PollEv.com/antonburtsev
- Previous years: 2025
- xv6 setup instrucitons: xv6-setup
- xv6 Deep Wiki https://deepwiki.com/mars-research/xv6-64
Class Overview
cs5460/6460 teaches the fundamentals of operating systems. You will study, in detail, virtual memory, kernel and user mode, system calls, threads, context switches, interrupts, interprocess communication, coordination of concurrent activities, and the interface between software and hardware. Most importantly, you will study the interactions between these concepts, and how to manage the complexity introduced by the interactions.
To master the concepts, cs5460/6460 is organized as a series of lectures, and homeworks. The lectures (and the book readings) familiarize you with the main concepts. The homeworks force you to understand the concepts at a deep level.
The lectures are based on xv6,
a modern re-implementation of one of the early UNIX operating systems,
specifically, Unix Version 6 which was developed in the 1970s, on the modern hardware.
xv6 is only 9,000 lines of C code, but it can run real processes, and perform many
functions of a traditional operating system, e.g., Windows, Linux, and Mac OS.
Due to its small size, it is possible to read the source code and understand the entire
operating system. Moreover, xv6 is accompanied by a book
describing its architecture and a printout of its source code.
Note, we are using x86 64 bit version of xv6 in this class, not x86 32bit version and not RISC-V.
Homework assignments will help you to deepen the
understanding of the principles and internal organization of a simple, but real
operating system.
You may wonder why we are studying an operating system that resembles Unix v6 instead of the latest and greatest version of Linux, Windows, or BSD Unix. xv6 is big enough to illustrate the basic design and implementation ideas in operating systems. On the other hand, xv6 is far smaller than any modern production operating systems, and correspondingly easier to understand. xv6 has a structure similar to many modern operating systems; once you’ve explored xv6 you will find that much is familiar inside kernels such as Linux.
Grading policy
Homework: 40%, in-class activities: 10%, quizzes 15%, midterm exam: 15%, final exam: 20% of your grade (all grades curved).
Late homework policy
You can submit late homework assignments (not quizzes or in-class activities) 3 days after the deadline for 60% of your grade.
Schedule
Jan 6
- Lecture 0 - Logistics (video)
- Lecture 1 - Introduction (video)
- Reading: OSTEP: 2 Introduction
- Reading (optional, to help you with C): The C Programming Language (look at Chapter 5 Pointers and Arrays) by Brian Kernighan and Dennis Ritchie
Jan 8
- Lecture 02 - OS Interfaces (part 1) (video)
- Reading: xv6: Chapter 0: Operating system interfaces
- Video (optional): AT&T Archives: The UNIX Operating System
Jan 13
Jan 16
- Lecture 03 - x86 Assembly (video)
- Reading: Reading: xv6 Book: Appendix A: PC Hardware
- Reading: Chapter 3 “Machine-Level Representation of Programs”, from Computer Systems: A Programmer’s Perspective by Randal E. Bryant and David R. O?Hallaron, 3rd edition.
- Reading: x86 64bit Assembly Guide (Intel) or x86 64bit Assembly Guide (AT&T)
Jan 20
- Lecture 04 - Calling Conventions (video)
- Reading: PC Assembly Language. Paul A. Carter: Section 4 Subprograms (4.1 - 4.5)
- Reading: Wikipedia: x86 calling conventions
- Homework 1 - Shell
Jan 22
- Lecture 04 - Calling Conventions and Lecture 05 - Linking and Loading (video)
- Source code examples: github
Jan 27
- Lecture 05 - Linking and Loading (video
- Reading: Operating Systems from 0 to 1. Chapter 5. The Anatomy of a Program
- Optional reading: This lecture is mostly based on the material of this book: Linkers and Loaders by John R. Levine
Jan 29
- Lecture 05 - Linking and Loading (part 2, position independent code (PIC)) (video)
- Reading: Position Independent Code (PIC) in shared libraries
- Reading: Position Independent Code (PIC) in shared libraries on x64
Feb 3
- Lecture 06 - Segmentation and Paging (video)
- Reading: Intel 64 and IA-32 architectures software developer’s manual volume 3A: System programming guide, part 1 (Chapter 3: 3.1-3.4.5 and Chapter 4: 4.2-4.3)
Feb 5
- Lecture 06 - Segmentation and Paging (part 2) (video)
- Reading: OSTEP: Chapter 18 Paging: introduction: only Sections 18.1 - 18.3
- Reading: OSTEP: Chapter 20: only Section 20.3 Multi-level Page Tables
- Reading: Intel 64 and IA-32 architectures software developer’s manual volume 3A: System programming guide, part 1 (Chapter 3: 3.1-3.4.5 and Chapter 4: 4.2-4.3)
- Optional videos: Rajeev’s cs6810 Computer Architecture
- Homework 2 - ELF
Feb 10
Feb 12
- Lecture 07 - System Boot (video)
- Reading: Appendix B: The boot loader and Chapter 1: Code: the first address space.
- Reading (optional): How Does an Intel Processor Boot?
- Reading (optional): Intel SGX explained (sections 2.9.1 The Motherboard, 2.9.2 The Intel Management Engine (ME), and 2.13 Platform Initialization (Booting))
Feb 17
Feb 19 -Lecture 08 - System Init (video)
- Reading: Chapter 1: Operating system organization
- Reading: Chapter 2: Page tables
Feb 24
Feb 26
- Lecture 08 - System Init (part3) (video)
- Lecture 09 - Interrupts and Exceptions
- Reading: Chapter 3: Traps, interrupts and drivers
- Homework 3 - Boot Into C
March 3
- Midterm review (video)
- Reading: Exams from previous years
March 5
- Midterm exam (regular time and place)
- Exam rules: paper books and printouts are allowed, kindle devices and calculators are allowed, no other devices.
March 11
- No class (Spring Break)
March 13
- No class (Spring Break)
March 17
April 29
- Final exam 8:00am – 10:00am (same room) official schedule
- Reading: Exams from previous years