You will need to gain access to a Linux or other Unix environment for working on your homework for this course. There are several ways to do this, but CSE 391 only supports two approaches. This restriction is to simplify things on the course staff’s end when supporting all students. You are welcome to deviate from our suggestion if you prefer, but we can’t promise support if something doesn’t go as expected!

  • Connect to a remote Linux server
    • students with CSE accounts may remotely log in to the CSE department’s attu.cs.washington.edu server using SSH
    • students taking CSE 351 have access to cancun.cs.washington.edu or calgary.cs.washington.edu
    • students with EE accounts may use their departmental servers
    • all UW students may use UW Linux servers (e.g. vergil.u.washington.edu). Here is how to activate your account.
    • students with CSE accounts may go to an Allen Center lab (e.g. 002, 003, 006) or a Gates Center lab (e.g. 110, 124, 129) and log in to a Linux box there
  • Install the CSE departmental Virtual Machine (VM) image on a computer of your own
    • All students have access to this image - although currently students with a Mac with a M1 or M2 chip may not be able to run the VM.

Connecting to attu/cancun/calgary/linuxNN/vergil

If you have a CSE account, you can connect to the CSE departmental server attu. If you are on a Mac or Linux box, or a Windows box with the Windows Subsystem for Linux (see below), you can connect to the attu server by opening a Terminal or command window and typing the command:

ssh your_cse_id@attu.cs.washington.edu

To access a different server (such as calgary or cancun, or linuxNN for EE majors or vergil), use a similar command, but replace the hostname (attu.cs.washington.edu) with the name of the server you are connecting to.

If you are using Windows, you won’t necessarily have a terminal to ssh from. We recommend installing PuTTy which is an application that lets Windows users use ssh (Direct link to the exe is here). Use attu.cs.washington.edu for the hostname and click “open”.

To transfer files from attu (or calgary or cancun, or linuxNN or vergil) to your local machine, use the following command from your Terminal application (NOT from within an ssh session connected to attu)

scp your_cse_id@attu.cs.washington.edu:~/foo.txt .

Be careful not to forget the . at the end, which copies the file to your current directory on your local machine. In this example, ~/foo.txt is the path to the file you want to copy from attu, which is foo.txt located in your home directory.

scp syntax

scp is a lot like the cp command we will learn in class, except it lets you copy files to/from a remote server. The general syntax is

scp <from> <to>

Unlike cp, <from> or <to> can be a path to a file on a remote server! The syntax to specify a path on another computer is:

username@hosturl:filepath

So for example, to copy a file named foo.txt from your home directory on attu to a file named bar.txt on your computer, you could type

scp username@attu.cs.washington.edu:~/foo.txt bar.txt

As another example, if an instructor wanted to upload a file to the 391 course website, they would type:

scp some_file.html username@attu.cs.washington.edu:/cse/web/courses/cse391/23sp

Using the CSE Linux Virtual Machine

This option creates a fake simulated computer inside your computer and allows you to install Linux onto that “virtual machine” (or VM). The advantage of using a VM is that it is less disruptive to your computer and that you can run Linux inside of Windows/Mac at the same time, so you won’t get “stuck” as easily (can switch back to Windows to Google for help if you have a problem, etc.). There is a slight disadvantage of using a VM is that it is slightly slower than doing a fresh install of Linux directly on your computer, but this is a worthy tradeoff for the simplicity of not messing up your native OS installation.

We support the installation of the CSE lab-provided virtual machine. If you choose this option you will essentially end up with a CSE lab Linux desktop (i.e. CentOS) that you own, implemented as software, running as an application on your system. Since this is closest to what you would find in the CSE labs, free to students, and is relatively simple to setup, this is the recommended option if you decide to go the virtual machine route. Please note that currently (as of 23sp), Macs with the M1 or M2 chip will not be able to run this VM.

Refer to these simplified instructions for installing the UW CSE Home Linux VM Install & Setup for information about how to set up a CSE lab Linux desktop on your computer. Be sure to use the latest available image, which is the 23sp release. After installing and starting the VM, run the following commands in the terminal there to make sure you get all the most recent updates.

sudo yum clean metadata
sudo yum update

You can also run different versions of Linux as a virtual machine on your computer, but we will not support or give instructions about those options.