Tools
Documentation of software tools used in CS 240:
CS 240 Computing Environments
CS 240 supports computing with:
- The CS GNU/Linux workstations in the SCI microfocus lab or by remote access with SSH.
- The csenv appliance, a self-contained GNU/Linux environment for your computer.
CS 240 code assignments require a CS 240 computing environment.
CS 240 code assignments are designed, tested, and graded in the CS 240 computing environment, since low-level system details matter in this course. We guarantee support (help with provided tools) and consistency (our grading and your testing use the same environment) only for work on the lab workstations and the csenv appliance.
First-Time Setup
A CS account is required for all computing options. Request one if needed (on campus only).
Follow the instructions for the environment you are using:
-
CS GNU/Linux lab workstations:
Completing these steps on one workstation sets up the account that you use on all workstations (and cs.wellesley.edu).
-
Start with the lab activities on the Linux command line, Emacs, and C if you did not finish those during lab.
-
To configure your CS account permanently1 to find CS 240 tools, open a terminal and run the command:
source /home/cs240/live/env/init/account.sh
-
Complete the Account Setup tasks for Git and CodeTub.
-
-
- Install the csenv appliance on your computer.
- Try the lab activities on the Linux command line, Emacs, and C if you did not finish those during lab.
- Complete the Account Setup tasks for Git and CodeTub.
General Tools
- GNU/Linux Skills (← start here) for the command line (ignore
drop
), Scott Anderson, Wellesley College- Remote access with SSH:
ssh wendy@cs.wellesley.edu
- Bash commands, Ruth Anderson, University of Washington
- Some useful Unix commands, Tia Newhall, Swarthmore College
- Remote access with SSH:
- Emacs Basics (← start here) for text editing
- Emacs Reference Card (pdf), Tour, Manual
- A Visual Guide to Emacs – fun illustrated guides, by Sacha Chua
- lots more…
- Git and CodeTub (← start here) 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
- C for Python programmers
- GCC manual (
gcc --version
) - Using
make
and writing Makefiles, Tia Newhall, Swarthmore College - GDB Basics for CS 240 (pdf, txt):
gdb ./executable
- Valgrind Memcheck manual:
valgrind ./executable
- **x86-64 Basics Machine Diagram for CS 240
- CSAPP Chapter 3 (copies in lab, draft online)
- exhaustive x86 manuals from Intel and AMD
- x86 Assembly WikiBook (GAS syntax)
- CSAPP textbook resources
-
If you prefer to use the CS 240 tools only in the current shell session, then run the command
source /home/cs240/live/env/init/session.sh
instead; run this command in each shell session where you want to use the CS 240 tools. If you need to remove the permanent account configuration, edit~/.bash_profile
to remove the lines marked as related to CS 240. ↩