Summary

  • 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

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

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.

Course Schedule

Tenative

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/18 Bootloaders & Binary File Format OS Repository
In-Class Activity:BIOS Calls | GitHub Repo
Debugging Programs (video)
Linux Tools (video)
Further Reading:
Tue 01/23 ASM Intro, BIOS, Bootloaders Homework 0 Due
Homework 1 Assigned: Terminal Driver | rprintf.c rprintf.h
Thu 01/25 C Refresher Further Reading Grad Reading: | Paper Review Format
Tue 01/30 Polling I/O Homework 2 Assigned | Keyboard Map
Further Reading:
Grad Reading:
Thu 02/01 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/06 Supervisor Mode and Privileged Operations Further Reading:
kernel.ld
Grad Reading
Thu 02/08 Memory & Memory Allocation In-Class Activity: malloc Fun
Further Reading:
Tue 02/13 Memory & Memory Allocation Homework 3 Assigned
Further Reading:
Thu 02/15 Virtual Memory & Paging Homework 2 Due
In-Class Activity: Paging | GitHub Repo
Further Reading:
Tue 02/20 Virtual Memory & Paging Quiz 3 Practice
Grad Reading:
Thu 02/22 Setting up the MMU on the 386 MMU Quiz
Tue 02/27 Syscalls Further Reading: Grad Reading:
Thu 02/29 Filesystems Activity: Raw Syscalls
Homework 4: FAT FS Driver | ide.s | ide.h | fat.h
Filesystem Slides
ELF File Format
Tue 03/05 Spring Break: No Class
Thu 03/07 Spring Break: No Class
Tue 03/12 Filesystems Grad Reading:
Thu 03/14 The FAT Filesystem Further Reading:
Tue 03/19 More FAT Filesystem Further Reading:
Activity: Filesystems 1
Thu 03/21 More More FAT Filesystem Homework 3 Due
Activity: Filesystems Part 2
Grad Reading
Tue 03/26 More More More FAT Filesystem In Class Activity: pthreadexample.c | Coordinate Rotation Threading Lab
Thu 03/28 Processes
Tue 04/02 Processes II Activity: Containers from Scratch
In-Class Activity: Write a Shell! | shittyshell.c | GitHub Repo
Grad Reading
Thu 04/04 Scheduling
Tue 04/09 Threads Grad Reading
Thu 04/11 Threads II Homework 4 Due
Project Proposals Due
elf.h
Grad Reading
Tue 04/16 Containers interrupt.c | interrupt.h
signal.c
Thu 04/18 Virtualization Final Project Specs
Final Project Demo Signup
Tue 04/23 Peer Evaluation
Thu 04/25