• Course meets Tuesday & Thursday from 10:00-11:15 AM in Cuneo Hall 117
  • 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.

Office Hours

  • Doyle 309
  • Lab Tuesday: 4 - 6 PM
  • Or by appointment
TA Victor Rakotondranoro


  • 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 %
    • Quizzes: 20 %
    • 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/17 Intro; Installing Gentoo on VMWare; Bootloaders Homework 0: Finish your Gentoo install | Gentoo Handbook | Mac M1 Instructions
GitHub Username Survey
Further Reading
Thu 01/19 Bootloaders & Binary File Format OS Repository
In-Class Activity:BIOS Calls | GitHub Repo
Debugging Programs (video)
Linux Tools (video)
Further Reading:
Tue 01/24 ASM Intro, BIOS, Bootloaders Homework 0 Due
Homework 1 Assigned: Terminal Driver | rprintf.c rprintf.h
Thu 01/26 C Refresher Further Reading Grad Reading: | Paper Review Format
Tue 01/31 Polling I/O Homework 2 Assigned | Keyboard Map
Further Reading:
Grad Reading:
Thu 02/02 Interrupts Homework 1 Due
In-Class Activity: Input/Output | Polling Code
Extra Credit: Implement Interrupts in your OS | interrupt.c | interrupt.h | OSDEV
Further Reading
Tue 02/07 Supervisor Mode and Privileged Operations Further Reading:
Grad Reading
Thu 02/09 Memory & Memory Allocation In-Class Activity: malloc Fun
Further Reading:
Tue 02/14 Memory & Memory Allocation Homework 3 Assigned
Further Reading:
Thu 02/16 Virtual Memory & Paging Homework 2 Due
In-Class Activity: Paging | GitHub Repo
Further Reading:
Tue 02/21 Virtual Memory & Paging Quiz 3 Practice
Grad Reading:
Thu 02/23 Setting up the MMU on the 386 MMU Quiz
Tue 02/28 Syscalls Further Reading: Grad Reading:
Thu 03/02 Filesystems Activity: Raw Syscalls
Homework 4: FAT FS Driver | ide.s | ide.h | fat.h
Filesystem Slides
ELF File Format
Tue 03/07 Spring Break: No Class
Thu 03/09 Spring Break: No Class
Tue 03/14 Filesystems Grad Reading:
Thu 03/16 The FAT Filesystem Further Reading:
Tue 03/21 More FAT Filesystem Further Reading:
Activity: Filesystems 1
Thu 03/23 More More FAT Filesystem Homework 3 Due
Grad Reading
Tue 03/28 More More More FAT Filesystem In Class Activity: pthreadexample.c | Coordinate Rotation Threading Lab
Thu 03/30 Processes
Tue 04/04 Processes II Activity: Containers from Scratch
In-Class Activity: Write a Shell! | shittyshell.c | GitHub Repo
Grad Reading
Thu 04/06 Scheduling
Tue 04/11 Threads Grad Reading
Thu 04/13 Threads II Homework 4 Due
Project Proposals Due
Grad Reading
Tue 04/18 Containers
Thu 04/20 Virtualization
Tue 04/25 Peer Evaluation
Thu 04/27