• Course meets Tuesdays and Thursdays from 3:00-4:15 PM in Cuneo Hall 311
  • 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

  • Raspberry Pi Development SystemYou are required to buy and build the development systemfor this class. Parts are available from
  • 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 %
    • 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/19 Intro; Installing Gentoo
Thu 01/21 More Gentoo fun! Homework 0: Finish your Gentoo install
Tue 01/26 Tools: git, make, gcc, vim Homework 0 Due
Debugging Programs (video)
Linux Tools (video)
Further Reading:
Thu 01/28 Raspberry Pi OS: Intro Homework 1: Clearing the bss segment in your kernel
Grad Reading: | Paper Review Format
Tue 02/02 Assembly Language Refresher Further Reading:
Thu 02/04 Execution Level and Privileged Operations In-Class Activity: Writing hexdump
Homework 1 Due
Further Reading: Grad Reading:
Tue 02/09 C Refresher Homework 2: Pi OS Serial Driver | rprintf.c rprintf.h
Further Reading:
Thu 02/11 Intro to Memory-Mapped I/O
Tue 02/16 Spring Break: No Class In-Class Activity: Delays using system timer
Thu 02/18 Polling I/O In-Class Activity: malloc Fun
Homework 3 Assigned
Further Reading
Grad Reading:
Tue 02/23 Interrupts Homework 2 Due
Further Reading:
Thu 02/25 Memory & Memory Allocation In-Class Activity: Paging
Further Reading: Grad Reading
Tue 03/02 Virtual Memory & Paging
Thu 03/04 Setting up the MMU on the Pi Grad Reading:
Tue 03/09
Thu 03/11 Spring Break: No Class Grad Reading:
Tue 03/16
Thu 03/18 Grad Reading:
Tue 03/23 Project Ideas
Thu 03/25 Grad Reading:
Tue 03/30 Project Proposals Due | Project Proposal Guidelines
Thu 04/01 Grad Reading
Tue 04/06
Thu 04/08 Grad Reading
Tue 04/13
Thu 04/15 Grad Reading
Tue 04/20
Thu 04/22 Grad Reading
Tue 04/27
Thu 04/29