Summary

  • 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

Grading

  • 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.

Tools

Collaboration

  • 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.

GitHub

Course Schedule

Tenative

Date Topic Details
Tue 01/14 Intro, Policies, Etc.
Installing Gentoo
Slides
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