Tools
CS 240 Computing Environments
- CS Linux machines are available in the SCI microfocus lab and SCI 173.
- A CS account is required. If you do not have one, request an account while on campus.
- The wx appliance is a self-contained GNU/Linux environment for your computer.
Use a CS 240 computing environment.
We support two computing environments for CS 240. Unlike your earlier CS courses, CS 240 is a low-level systems course where the low-level system details matter. It is difficult, error-prone, or impossible to complete CS 240 assignments elsewhere1 (e.g., on Mac or Windows). We do not support environments other than ours. Do not waste time trying to use a different environment.
General Tools
- GNU/Linux Skills (← start here), Scott Anderson, Wellesley College (Ignore
drop
.)- Remote login with
ssh
. - Bash commands, Ruth Anderson, University of Washington
- Some useful Unix commands, Tia Newhall, Swarthmore College
- Remote login with
- Emacs Basics (← start here)
- Reference Card (pdf)
- Tour, Manual, Wiki
- Mercurial (
hg
) and Bitbucket for version control of CS 240 assignments.
C and x86
- The C Programming Language (a.k.a. K&R), Kernighan and Ritchie, classic book
- Stanford CS Library C resources
- C resources, Tia Newhall, Swarthmore College
- Duane’s Incredibly Brief Introduction to the C Programming Language, Duane Bailey, Williams College
- GCC manual (
gcc --version
) - Using
make
and writing Makefiles, Tia Newhall, Swarthmore College- Make manual (not easy reading)
- CS 240 GDB reference sheet (pdf, txt):
gdb ./executable
- Valgrind Memcheck manual:
valgrind ./executable
- x86-64: CSAPP Chapter 3 (draft)
- CS 240 x86-64 exam reference sheet
- exhaustive x86 manuals from Intel and AMD
- x86 Assembly WikiBook
- CSAPP textbook resources
-
If you already use Linux on your personal computer, I am happy to share the list of tools we need or point you to our RPM package repository, but I will not have time to help you figure out how those map to packages on Linux distributions other than Fedora. ↩