CSC373/406: Computer Systems I (Spring 2011/2012)
James Riely

Important Links


Mailing list

Course online

Code examples


Textbook Errata


Lab descriptions at CMU

Data Lab

(Online copy of the code)

Bomb Lab

(My gdb Notes)
(My Bomb Lab Notes)

Buffer Lab

(My Buffer Lab Notes)

UNIX Tutorial for Beginners

Ubuntu documentation

GNU bash Manual


nano (Recommended)




GNU C Programming Tutorial


An introduction to C

GNU gcc Manual


My gdb Notes

gdb Tutorial

GNU gdb Manual


Gnu Assembler Manual

(See the x86 features)

Intel opcode table for IA32

(Uses intel syntax)

Intel IA32 Documentation

(Uses intel syntax)

x86-64 Machine-Level Programming

This document supplements Chapter 3 of the textbook.

x86-64 Application Binary Interface (ABI)

Specifies the rules for compilers and linkers.

Intel software optimization manual

Descriptions of all Intel architectures (incl. x86-64 and IA32). Latencies and throughputs of assembly instructions.

Smashing The Stack For Fun And Profit

A nice article from 1996. Also available as a PDF.

ELF Format

The Linux Kernel

Lecture Materials
1. Binary Representations; Logic [03/27-29]

Skim CS:APP 1 (ie, chapter 1 of the textbook Computer Systems: A Programmer's Perspective)

Skim Hoover 1 (ie, chapter 1 of the textbook System Programming with C and Unix)

Read CS:APP 2.1

Read Tutorial One:

Skim this C reference:

Slides from class: file:class-01 file:s01-1.pptx file:02-1.ppt

2. Integer Representations [04/03-05]

Read CS:APP 2.1-2.2

Read Hoover 2

Slides: file:class-02 file:02-2.ppt

3. Integer Arithmetic; Floating Point [04/10-12]

Read CS:APP 2.3-2.4

Slides: file:class-03 file:s02-3.pptx

4. Assembly I (Pointers; Arithmetic) [04/17-19]

Read CS:APP 3.1-3.5

Read Hoover 3-4

Read about C pointers:

Slides: file:03-1.ppt

More slides on C: file:class-02

5. Midterm Exam; Assembly II (GDB) [04/24-26]

My gdb Notes My Bomb Lab Notes

6. Assembly III (Control; Procedures) [05/01-03]

Read CS:APP 3.6-3.7

Slides: file:03-2.ppt file:03-3.ppt

7. Assembly IV (Structured Data) [05/08-10]

Read CS:APP 3.8-3.13 file:03-4.ppt file:03-5.ppt

How do buffer overflow attacks work?

8. TBD [05/15-17]
9. TBD [05/22-24]
10. Memory Hierarchy [05/29-31]

Read CS:APP 6

Slides: file:s06-1.pptx file:s06-2.pptx

Memory System Performance Characterization with ECT memperf - Extended Copy Transfer Characterization

Intel's Sandy Bridge Microarchitecture (By: David Kanter)

11. Final Exam [06/07]

Final exam is held Thursday, June 7, 2012 11:45am-2:00pm

Contact Hours
Class Hours: Tue/Thu 1:30-3:00pm in CDM 220 [Section 601]
Online, Anytime [Section 610]
Office Hours: Tue/Thu 3:00pm-4:00pm in CDM 846

The stylesheets used to create this website are based on Corin Pitcher's XSLT stylesheets for lecture slides.