COMS 4995 Advanced Systems Programming

Spring 2024 Course Overview

HW Due Dates

Date Assignment
F 1/19 HW0 due
R 2/8 HW1 due
F 3/1 HW2 & HW3 due
W 4/3 HW4 due
W 4/17 HW5 due
M 4/29 F 5/3 HW6 due (hard deadline)

Course Schedule

1/17

Course overview and logistics

Git Overview and Internals

1/24

GitHub

Introduction to Memory Allocators


HW1: malloctopus


1/31

Caching, Memory Mapping, and Advanced Allocators

Processes

2/7

Processes (continued)

Signals

File I/O


HW2: greptile

HW3: cowchat


2/14

POSIX threads

Synchronization

2/21

Interprocess Communication in UNIX

Nonblocking I/O and I/O multiplexing

2/28

UNIX domain sockets

Threads 2

3/6

Midterm

3/13

Spring Break – no class

3/20

Threads 2 (continued)

x86-64 Assembly


HW4: ladebug


3/27

Interrupts

Introduction to ELF


HW5: seald


4/3

Linking

4/10

Linking 2

UNIX Filesystem

Intro to Linux Containers


HW6: zookeeper


4/17

Intro to Linux Containers (continued)

HW6 Overview

Course Wrap-up

4/24

The XZ Utils Backdoor

Guest lecture presented by Denzel Farmer, current ASP TA

On March 29th, a developer from Microsoft published that he had discovered a backdoor built into XZ Utils, a compression package included with nearly every major Linux distribution. If gone unnoticed, this backdoor could have provided its authors with root-level access to millions servers across the internet. Interestingly, the core mechanism the backdoor uses to compromise host machines is something we just finished studying — dynamic linking and loading of ELF objects. This lecture will explore implementation details of the XZ Utils backdoor and describe the novel multi-year effort to put it in place–along with its consequences for the larger world of open source software development.


Last updated: 2024-04-24