|
This page contains additional resources for students using the
CS:APP text.
Textbook
C/Unix
GNU/Unix Tools
Pentium Documentation
- Intel Architecture Software Developer's Manual:
- Volume 1: Basic Architecture
(pdf,
ps2up.gz).
Chapters 3--6 contain
useful information. Note that much of this documention is
irrelevant---we are only running in ``flat'' addressing mode, and GAS
does not support conditional moves, MMX, or SSE instructions. The
overall document is 369 pages long. You probably don't want to print
it out.
- Volume 2: Instruction Set Reference
(pdf,
ps2up.gz).
Chapter 3 contains a detailed description of every instruction. Note
that they list the operands in the reverse order from their ordering
in GAS. This manual is 854 pages long. You definitely don't want to
print it out.
- Volume 3: System Programming
(pdf,
ps2up.gz).
Contains lots of useful information on the interface between the
hardware and the operating system, including cache and TLB specs,
virtual memory, exceptions and interrupt handling, and processes.
Chapter 2: Representing and Manipulating Information
Chapter 3: Machine-Level Representation of Programs
Chapter 4: Processor Architecture
- Y86 tools and documentation
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.
|