The main computers for the course will be the machines of the
Undergraduate CS Labs.
If you don’t have a 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.
For much of the work we will be doing an ssh
terminal window
will suffice. If you need to use graphical tools you’ll want to run
an X11 server on your machine. MacOS X includes an X11 implementation
(note that the two meanings of ‘X’ have nothing to do with
each other). X11 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 scp
it 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 board in BlackBoard, through which class announcements will be made. Questions may be posted to the discussion board 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 board.
If you don’t expect to log into your CSUG account every day, you should
forward your mail to an account that you do read every day. To forward
an account under Linux, put the email address at which you want to
receive your mail into a single-line file named
The textbook for the course is the Second Edition of
Bryant and O’Hallaron’s Computer Systems:
A Programmer’s Perspective [Prentice Hall, 2011].
Copies are available from the River Campus bookstore or online.
A copy has also been placed on reserve at Carlson library.
The textbook includes a variety of practice exercises, intersperced with
the rest of the material. You should plan to do these exercises as you
go along, and to check your answers against the solutions in the back of
the book.
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.
CSC 252 is not a course you can coast through. It’s also not a course
with a whole lot of “hand-holding.” You will need to take
responsibility for your own success. Do not wait until you’re
drowning before you ask for help.
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.
.forward
,
and place this file in your home directory.
Lecture Notes
Textbook
Also on Reserve at Carlson:
Web Pointers
NB: these are the classic 1999 edition, which includes all features
you’ll be using in the assignments.
If you’re interested in the current versions, which include
information on the 64-bit instruction set, you can find them at
Intel’s
corporate web site.
gdb
.
info
files
Alternatively, start up emacs
on the
csug
machines and type
M-x info m gas <ret>
.
gprof
.
Getting Help
Past exams