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 (we have added instructions for ARM Mac users at the bottom of the page).

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/24sp

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 24sp), 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 24sp 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.

Alternate M1/M2/Arm Mac VM installation guide:

1) The first step is to go to this website and make an account and then install VMware Fusion Player for non-commertial use (this shouldn’t cost any money, you just need to make an account).

2) Once you have installed the software and done the necessary setup, as directed by the software (e.g., run the installed .dmg file and take all the setup steps required), you should install the ARM64 (aarch64) version of Rocky Linux or another ARM64 version of a linux distribution you prefer (Rocky is recommended as it is what the actual CSE VM is based on). You should install the DVD version of Rocky 9 because that will come with all the command line features you will want.

3) After installing the DVD .iso file of Rocky 9, you should open VMware and click the plus sign on the top left and add a new VM. Then you should drag your iso file onto the screen that pops up. If this isn’t working one common issue is that you Mac is seeing the iso as an open disk image in finder. To fix this, go to finder and click the eject symbol next to the Rocky-9-3-aarch64 disk image on the Locations section of the left side of finder. That should resolve an issue that causes infinite loading.

4) After putting it in, you should click continue and it will ask you to configure (you can keep the default settings). Just click finish and save the vmware file. You should now be able to open the virtual machine in VMware.

5) The last step before you are up and running is setting up your image in the VM. When opening the VM for the first time, you should be prompted to setup the root password (you can make this whatever you’d like) and set up your user account. When you set up your user account it is crucial that you check the box for making the user an administrator. This is important for using sudo in hw8.

After that you should be good to go. Ask questions on Ed if you run into any issues.