• Course meets Tuesdays from 4:15-6:45 PM in Cuneo Hall 312
  • This is an upper level course that teaches the basics of computer operating systems.
  • The schedule on this page lists the topics we will cover by date.

Required Materials

  • Laptops will be required in class. Please bring your laptop to class every day. We'll be using them for labs. Minimum system requirements:
    • 8GB RAM
    • Intel CPU
  • Textbook: Operating Systems: Three Easy Pieces, a free online textbook. You can also buy a hard copy for pretty cheap from the website.

Office Hours

  • Doyle 309
  • Tuesday: Noon - 1PM
  • Lab Thursday: 4 - 6 PM
  • Or by appointment
TA Sean Higgins


  • Treat this course like a job where you are trying to get promoted. If you show up and do your work, you will get a good grade.
  • Each person will get five slop days to turn in assignments late. You can use up to two days per assignment.
  • No partial credit for code that does not compile.
    • Homework: 40 %
    • Participation: 10 %
    • Progress: 10 %
    • Final Project: 40 %
    Percentage Letter Grade
    91+ A
    89-90 A-
    87-88 B+
    77-86 B
    75-76 B-
    73-74 C+
    62-72 C
    60-61 C-
    50-59 D
    Below 50 F

Scheduling Conflicts

  • If you have a (legitimate) scheduling conflict with a quiz or exam, it is possible to schedule a makeup session. You must let me know at least two weeks prior to the quiz/exam date. Legitimate scheduling conflicts include religious observances.
  • LUC's academic calendar can be found here.

Mandatory Reporter Statment

  • Each faculty and staff member at Loyola University Chicago is required to report any incidents of gender-based misconduct that they are made aware of, even if it happened in the past. Gender-based misconduct includes discrimination based on actual or perceived sex, sexual orientation, gender expression or identity, or pregnancy or parenting status; dating and domestic violence; sexual misconduct (including sexual assault, sexual harassment, and sexual exploitation); and stalking.



  • No collaboration is permitted on exams or quizzes.
  • Collaboration, but not copying, is encouraged on homework assignments. If you obtain a solution through research, e.g., in the library or online, cite your source completely and write up the solution in your own words.


Course Schedule


Date Topic Details
Tue 01/14 Intro, Policies, Etc.
Installing Gentoo
Homework 0: Finish your Gentoo installation
Further Reading
Tue 01/21 ASM Intro, BIOS, Bootloaders In-Class Activity: BIOS Calls
Homework 1: Writing a boot sector
Debugging Programs (video)
Linux Tools (video)
Further Reading: Grad Reading:
Tue 01/28 Interrupts and I/O In-Class Activity: Input/Output | Polling Code
Further Reading Grad Reading:
Tue 02/04 The C Library & Syscalls In-Class Activity: C Demo
Homework 1 Due
Homework 2: Writing a terminal driver
Further Reading
Grad Reading:
Tue 02/11 Memory and Mem Allocation In-Class Activity: malloc Fun
Homework 3 Assigned
Further Reading
Grad Reading
Tue 02/18 Virtual Memory & Paging In-Class Activity: Paging
Homework 2 Due
Further Reading:
Grad Reading:
Tue 02/25 File Systems Homework 3 Due
In-Class Activity: Fat FS | fat.h
Homework 4: Implement FAT FS
rprintf.c | rprintf.h | ide.h
Further Reading: Grad Reading:
Tue 03/03 Spring Break
Tue 03/10 Processes Homework: Load the init process in your kernel
Sockets Code
Further Reading:
Grad Reading:
Tue 03/17 COVID-19 Video: Getting Started on FAT FS Homework
Tue 03/24 Threads Video: Threads
Threaded Sockets Code
Further Reading
Grad Reading:
Tue 03/31 Threads II FAT FS Homework Due
Threading Lab
Further Reading: Grad Reading
Tue 04/07 Containers Activity: Containers from Scratch
cgroups repo
Further Reading: Grad Reading
Tue 04/14 Virtualization Grad Reading
Tue 04/21 Android & Mobile Grad Reading
Tue 04/28 Final Project Presentations