distributed

CSCI 3325
Distributed Systems

Bowdoin College
Spring 2015
Instructor: Sean Barker

The CSCI 3325 Class Server

CSCI 3325 has a dedicated server configured for all students to use in developing and testing your programs in this course. While later projects will involve running programs on multiple machines, the initial projects can be run entirely on a single machine.

Using the Server

The class server runs a standard version of Linux (CentOS Linux to be precise). All work done on the server will be done in a typical Linux command-line environment. If you have limited experience working with the command line, I encourage you to start by consulting a Linux CLI tutorial such as this one. You should also make liberal use of your classmates and myself to fill in any Linux knowledge gaps. Working in the command line is an invaluable skill for all computer scientists!

All of the standard development tools you should need are already installed on the server (compilers, editors, etc). If you have not written code using a command line editor before, I suggest that you start with nano, as it is a simple and easy-to-use editor. More experienced users should consider emacs or vim (my personal preference) for their more powerful features.

If there is any software you would like to use that is not already installed on the class server, email the instructor.

Accessing the Server

You will access the class server remotely via SSH (Secure Shell) using a keypair file that I provide you. Your keypair consists of a private key file (named something like username-keypair) and a corresponding public key file (named something like username-keypair.pub). Keep your private key file safe, as it grants access to your server account. Your account on the server is accessed only using your keypair file and not by a password.

The hostname of the class server is sbarker.campus.bowdoin.edu. You can only access the server when you are connected to the BOWDOIN network (not when you are off-campus and connected to an external wifi network, for instance). If you are on a Mac or Linux machine, you can simply open the Terminal application and issue a command like so to login to your server account:

ssh -i userid-keypair userid@sbarker.campus.bowdoin.edu

Note that the above command requires your key file to be in the current directory.

On Windows, you can login via an application like PuTTY.

If you cannot access the class server for any reason (other than being off-campus), you can also use one of Bowdoin's shared Linux machines, which are dover.bowdoin.edu and foxcroft.bowdoin.edu. These servers are accessed using your regular Bowdoin password instead of a private key. However, these machines may not be as amenable to testing your programs (e.g., allowing your programs to access the network) and may lack some software installed on the class server.

Working in Groups

As you will be working in groups, it is essential that you are able to effectively share your files between group members. Systems such as emailing files back and forth between group members are very inefficient and error-prone! Instead, I strongly encourage you to use a version control system such as Git or Subversion. These systems allow you to easily make changes to files and quickly and easily distribute those changes between group members and multiple machines. Additionally, using a VCS will have the side effect of saving backups of all your project files.

If you are not already in the habit of using a VCS (which I strongly advise), I suggest starting with Subversion, as it is easy to understand. Here is a very brief tutorial on using Subversion (of course, Google can provide many more details and tutorials).

I will be configuring a Subversion repository for each group on the Bowdoin Subversion server. You are welcome (but not required) to use your group's SVN repository. Each group will be assigned a group number (e.g., group6). Assuming you are in group 6, you can checkout your group's SVN directory like so:

svn checkout https://repo.bowdoin.edu/svn/sbarker/3325-s15/group6

When prompted for a password, you should use your regular Bowdoin password.