Here is where we have gathered links to various helpful materials on topics relevant to CS107.
Stanford Unix workstations
- The myth cluster in the basement of Gates is the computing home for CS107; it is a subgroup of the larger Stanford farmshare environment
- Your SUNet ID is your username/account for myth/farmshare
- Available secure login options
- Optionally, you can configure Xwindows to enable graphical windows.
- Using AFS (access, permissions)
General Unix environment
- Overview of UNIX development tools from Nick Parlante
- The cs107 guide to basic unix
- The cs107 guide to unix development tips
Text editors
- Our cs107 guide to choosing an editor
- The bare essentials of emacs
- Our cs107 guide to emacs
- Jam-packed emacs reference card
- Our cs107 guide to vim
C programming language
- Nick Parlante's Essential C
- The cs107 guide to the C standard library functions
- Kernighan and Ritchie's classic text The C Programming Language (requires authentication, accesses Stanford's subscription to Safari Books Online)
Assembly
- The cs107 guide to x86-64 basics
- The one page of x86-64 that lists commonly used instructions and addressing modes.
- There are a lot of additional books/web sites on x86-64 but one quirky thing to note is there are two distinct assembler syntaxes in use so best to stick with resources that use the same syntax we did (that would be GNU/att, not Intel).
The gcc compiler and gdb debugger
- The cs107 guide to gdb
- Jam-packed gdb reference card
- Full gcc manual and gdb manual (from GNU)
- Two gdb articles I wrote long ago for a programming journal: Breakpoint Tricks and gdb's Greatest Hits
The valgrind dynamic analysis tool
- The cs107 guide to valgrind memtool (memory errors/leaks)
- Full valgrind manual
- The cs107 guide to valgrind callgrind (CPU/cache profiling)
Make and makefiles
- The cs107 guide to makefiles
- Full make manual (from GNU)
- No-starch press "Gnu Make Book" (requires authentication, accesses Stanford's subscription to Safari Books Online)
The git revision control system
- The cs107 guide to git
- Guided online tutorial from Try Git
E-books
- Stanford Libraries includes some excellent online book collections, such as Safari Books Online (includes Nutshell books on Linux, programming tools, languages) and Books 24x7 ITPro (includes "for Dummies" series, Sams, Osbourne/McGraw-Hill, MIT Press, Peachpit Press, and Sybex). Search Stanford's online book collection