Summary

  • Course meets Monday & Wednesday from 4:15-5:30 PM in Dumbach 236
  • 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 Wednesday 6 — 8 PM
    Doyle Makerspace
  • Or by appointment
TA Rushi Shirsat rshirsat@luc.edu

Grade Review Policy

After a graded item is returned in class or in Sakai, any requests for reviewing the grade must be submitted in writing with the graded item within 1 week.

Course Outcomes

  • Explain fundamental Types of OS abstractions: processes, files,
  • Design and implement OS components: libraries, system calls, virtual memory, schedulers, filesystems, and device drivers
  • Assess system performance
  • Explain the impact of algorithms and data structures
  • Make use of concurrency in userland programs

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.
  • Lowest two homework and quiz assignments will be dropped.
  • 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

Why?

I have one main opinion about programming, which is that deeply understanding the underlying systems you use (the browser, the kernel, the operating system, the network layers, your database, HTTP, whatever you’re running on top of) is essential if you want to do technically innovative work and be able to solve hard problems.

-Julia Evans

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
Mon 08/25 Intro; Installing Gentoo on VMware; Bootloaders Homework 0: Finish your Gentoo install | Gentoo Handbook | Apple Silicon Instructions
GitHub Username Survey
Intro Slides
So You Want to be a Wizard
Video: shells
Video: ssh
Wed 08/27 Intro; Installing Gentoo on VMware; Bootloaders OS Repository
In-Class Activity:BIOS Calls | GitHub Repo
Debugging Programs (video)
Linux Tools (video)
Further Reading:
Mon 09/01 Labor Day: No Class
Wed 09/03 Bootloaders & Binary File Format Homework 1 Assigned: Terminal Driver | rprintf.c rprintf.h
Video: Computerphile Subroutines
Mon 09/08 ASM Intro, BIOS, Bootloaders Further Reading
Wed 09/10 C Refresher Further Reading:
Mon 09/15 Polling I/O Further Reading
Wed 09/17 Interrupts Homework 1 Due
Homework 2: Input/Output | Keyboard Map | interrupt.c | interrupt.h | OSDEV
Further Reading:
kernel.ld
Mon 09/22 Supervisor Mode and Privileged Operations In-Class Activity: malloc Fun | GitHub Repo
Further Reading:
Wed 09/24 Memory & Memory Allocation Further Reading:
Mon 09/29 Memory & Memory Allocation Homework 2 Due
Homework 3 Assigned
In-Class Activity: Paging | GitHub Repo
Further Reading:
Wed 10/01 Virtual Memory & Paging Quiz 3 Practice
Video: MMU
Mon 10/06 Fall Break: No Class
Wed 10/08 Virtual Memory & Paging Homework 4 Assigned
Mon 10/13 Setting up the MMU on the 386 MMU Quiz
Homework 3 Due
Further Reading:
Wed 10/15 Syscalls Filesystem Slides
ELF File Format
Mon 10/20 Filesystems
Wed 10/22 Filesystems Further Reading:
Mon 10/27 The FAT Filesystem Further Reading:
Activity: Filesystems 1
Wed 10/29 More FAT Filesystem Homework 5: FAT FS Driver | ide.s | ide.h | fat.h
Homework 4 Due
Activity: Filesystems Part 2
Mon 11/03 More More FAT Filesystem
Wed 11/05 More More More FAT Filesystem Video: Getting Started on the FAT FS Homework
Mon 11/10 Processes In-Class Activity: Write a Shell! | shittyshell.c | GitHub Repo
Wed 11/12 Processes II Homework 5 Due
Mon 11/17 Scheduling Activity: Containers from Scratch
Wed 11/19 Virtualization elf.h
Mon 11/24 Threads II In Class Activity: pthreadexample.c | Coordinate Rotation Threading Lab
Wed 11/26 Containers Activity: Raw Syscalls | GitHub Repo
Mon 12/01 Virtualization
Wed 12/03