The main computers for the course will be the machines of the Undergraduate CS Labs. If you don’t have an CS major’s account, you'll need to talk to Marty Guenther in CSB 735. Machines in the Hylan Lab (room 301) are available to all students in the course. Machines in the Majors Lab (CSB 633) are available only to CS majors. Three of the lab machines (cycle1, cycle2, and cycle3.csug.rochester.edu) are dedicated to use as remote login servers for access across the campus network. If you need access to a Sun machine, you can connect to triumph. For much of the work we will be doing an sshterminal window will suffice. If you need to use graphical tools you'll want to run an X server on your machine. MacOS X includes an X implementation (note that the two meanings of ‘X’ have nothing to do with each other). X implementations are also available for Windows; see for example Cygwin/X.
If you have access to other Unix machines (e.g., in your dorm room, or in the CS research labs) you may elect to work there if you like, but note that (1) course software will be maintained only on the CSUG network, and (2) all projects must be turned in electronically on CSUG machines, and must run correctly on those machines. Do not assume that a program that runs on your desktop will also run fine after you scpit over to CSUG: there are subtle differences among Unix systems that can make porting a many-hour (or even many-day) process.
Be sure to change permissions on any directories in which you are doing class work, to make sure they aren’t readable by others.
All students 252 should read the 252 discussion group in BlackBoard, through which class announcements will be made. Questions may be posted to the discussion group or sent directly to the instructor or the TAs. Any answer deemed useful to the class as a whole will be posted (with identifying information removed) back to the discussion group.
For the second edition, there are a variety of “Web Aside” sections available on-line. You may find several of these enlightening, or helpful for assignments.
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.
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.
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.
gdb. infofilesemacson the csugmachines and type M-x info m gas <ret>. Many of the programming assignments will require that you become an expert user of certain tools, notably the GNU assembler and debugger. These tools will be not be covered thoroughly in class. You are expected to read the manuals and then attend TA office hours for hands-on help.