6.824 - Fall 2001
// Assignments //
Class Machines //
Getting Help //
Lab 1 - Multifinger
Lab 2 - TCP Proxy
Lab 3 - Web Proxy
Lab 4 - Semantic File System
Lab 5 - Distributed Stock Ticker
You'll use a cluster of three machines for the 6.824 labs. The machines are named:
Getting an account
To obtain an account on the class machines send mail to email@example.com. Your
login name will be the user name from which you send the mail
(i.e. the word immediately preceding '@' in the line of your mail
header that starts with "From:").
Logging into the machines
You can log into the class machines from any Athena workstation using
ssh command. For example, if your username
is ``student'', you can run the command:
athena% ssh firstname.lastname@example.org
Last login: Mon Jan 15 18:39:16 2001 from supervised-residence.lcs.mit.edu
student@blood [~] >
It is probably easiest to work from a Athena or another Unix
workstation, but you can also access the servers using Windows SSH
clients such as putty
or the Nifty Telnet client for
Changing your password
Your initial password will be mailed to you when your account is
Please change your password as soon as possible.
If you do not change your password, we will assume you
are not taking the class and will deactivate your account.
Change your password with the
passwd command on
Passwords are copied automatically from
blood to the
other machines every hour.
Finding a lightly loaded machine
If everyone uses the same machine to compile, things will get quite
slow. Use the
w command to check the load on a machine.
benb@blood [~] > w
09:39:18 up 11:45, 2 users, load average: 0.00, 0.04, 0.08
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
fdabek pts/1 :0.0 22:51 10:38m 3.37s 0.03s bash
benb@blood [~] >
The three numbers at the end of the first line of w's output are the
load average. If these numbers are high (> 1.0) try logging into a
Aids for working on labs
There are a number of resources available to help you with the lab portion of this course:
- man pages All of the system calls you will be using (i.e. read, write, select) are documented in section 2 of the manual. Try
man 2 read for example.
- UNIX network programming W. Richard Stevens book is a classic reference for network programming. If you are struggling with the sockets interface it could be a helpful purchase. (see the suggested books list for other helpful references).
- The SFS source code Not all of the features of the SFS async library are documented in the supplied notes. Try browsing the source to resolve any outstanding issues. It's available on the class machines in
/home/to2/sfs or at the SFS project page.
- core files When/If your program crashes it will leave a core file behind (named something.core). Examining core files with gdb is a valuable way to learn what went wrong. To get started with gdb type: "gdb program program.core" and then "(gdb) bt". GDB will return a trace showing exactly where the program crashed. GDB offers many more features. Check out the GDB manual for full documentation.