Summary

  • Course meets Mondays, Wednesdays, and Fridays from 12:35-1:25 PM in Cuneo Hall 109
  • 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
  • Tuesday: 12:15 - 1:15PM
  • Lab Wednesdays: 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
Mon 08/29 Intro; Installing Ubuntu on VMWare GitHub Username Survey
Wed 08/31 Bootloaders & Binary File Format Homework 0: Finish your Ubuntu install
OS Repository
Fri 09/02 Tools: git, make, gcc, vim Homework 0 Due
Debugging Programs (video)
Linux Tools (video)
Further Reading:
Mon 09/05 Labor Day: No Class
Wed 09/07 ASM Intro, BIOS, Bootloaders In-Class Activity:BIOS Calls | GitHub Repo
Homework 1 Assigned: Terminal Driver | rprintf.c rprintf.h
Further Reading: Grad Reading: | Paper Review Format
Fri 09/09 C Refresher In-Class Activity: Write malloc! | GitHub Repo
Further Reading:
Mon 09/12 C Refresher Further Reading:
Wed 09/14 Polling I/O Further Reading: Grad Reading:
Fri 09/16 Intro to Memory-Mapped I/O Homework 1 Due
Homework 2 Assigned | Keyboard Map
In-Class Activity: Writing hexdump
Further Reading:
Mon 09/19 Interrupts In-Class Activity: Input/Output | Polling Code
Homework 3 Assigned
Further Reading
Wed 09/21 Supervisor Mode and Privileged Operations Further Reading:
kernel.ld
Grad Reading
Fri 09/23 Memory & Memory Allocation In-Class Activity: malloc Fun
Further Reading:
Mon 09/26 Memory & Memory Allocation Homework 2 Due
Further Reading:
Wed 09/28 Virtual Memory & Paging In-Class Activity: Paging | GitHub Repo
Further Reading:
Fri 09/30 Virtual Memory & Paging Homework 3 Assigned
Quiz 3 Practice
Grad Reading:
Mon 10/03 Setting up the MMU on the 386 MMU Quiz
Wed 10/05 Syscalls Further Reading: Grad Reading:
Fri 10/07 Filesystems Homework 4: FAT FS Driver | ide.s | ide.h | fat.h
Filesystem Slides
ELF File Format
Mon 10/10 Filesystems Homework 3 Due
Project Ideas
  • Get linux 4 sam or Accelerated Linux running on a microcontroller
  • Linux Kernel Hacking
    • Mod a Linux driver like ftdi_sio to log all data it receives
    • Build Linux for RISCV and add a custom MMU driver
  • PiOS Extensions:
    • Get video working on your Pi
    • Implement writes for your FAT FS driver
    • Write a shell for PiOS and get it to load processes.
    • Do something with the Vuzix M4000 smart glasses
Wed 10/12 The FAT Filesystem Grad Reading:
Fri 10/14 Processes Project Proposals Due | Project Proposal Guidelines
Further Reading:
Mon 10/17 Processes II Homework 4 Due
In-Class Activity: Write a Shell! | shittyshell.c
Further Reading:
Wed 10/19 Scheduling Grad Reading
Fri 10/21 Threads In Class Activity: pthreadexample.c | Coordinate Rotation Threading Lab
Mon 10/24 Threads II
Wed 10/26 Containers Activity: Containers from Scratch
Grad Reading
Fri 10/28 Virtualization
Mon 10/31 Grad Reading
Wed 11/02 Grad Reading
Fri 11/04 Mid-Project Scrum