Student Site
Computer Systems: A Programmer's Perspective (CS:APP)

Randal E. Bryant and David R. O'Hallaron

CS:APP Home Page

This page contains additional resources for students using the CS:APP text.

Textbook

C/Unix

GNU/Unix Tools

IA32 and x86-64 Documentation

Chapter 2: Representing and Manipulating Information

Chapter 3: Machine-Level Representation of Programs

Chapter 4: Processor Architecture

Chapter 5: Optimizing Program Performance

  • Text files to benchmark word frequency analysis program

Chapter 6: The Memory Hierarchy

  • Generate your own memory using the ECT memperf tool developed by Tom Stricker (the inventor of the memory mountain) and Christian Kurmann at ETH.
  • A less sophisticated program from the CS:APP book for generating the memory mountain (tar)

Chapter 10: Virtual Memory

  • P. Wilson, M. Johnstone, M. Neely, and D. Boles, Dynamic Storage Allocation: A Survey and Critical Review, International Workshop on Memory Management, Kinross, Scotland, Sept, 1995. (ps).
    Comprehensive reference on storage allocators.

Chapter 12: Network Programming

  • The Tiny Web server (tiny.tar).
    Expands with tar xvf tiny.tar into a directory called ./tiny that contains everything you need to test the Tiny web server, including sample HTML files, GIFS, CGI scripts, and the csapp.c and csapp.h files from Appendix B of the text. Compiled and tested on Linux boxes.
  • The authoritative list of MIME types.

Randy Bryant and Dave O'Hallaron