Working at Home

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:

Putting a Unix environment on your computer:

There are several ways you can do this:

  • install Linux on your computer, either as your primary operating system, or as a dual-boot option (most powerful and usable, but can be disruptive to your computer's existing configuration)
  • create a "virtual machine" and install Linux onto that (less risky and disruptive to your computer's current state)
  • install a minimal set of Unix commands within your existing operating system, using Cygwin or Fink (minimally disruptive but not always as powerful or fully compatible with real Unix)

Installing Linux:

To install Linux on your computer, you need a Linux installation CD. The most common way to get such a CD is to download the entire CD's contents from the Linux distributor's web site and burn this onto a recordable CD. Then you reboot your computer with the CD in the drive and you can try out and/or install Linux.

The contents of Linux CDs are distributed as large files called ISO files (ending with extension .iso). Download a Linux ISO from one of the following locations:

You can burn a .iso image file onto a blank CD using many common CD recording programs that come with your computer. Try loading your computer's included CD burning software and looking for an option about "burning" from an "image file" or "ISO 9660 file" or something like that.

Creating a Linux virtual machine:

This option creates a fake simulated computer inside your computer and allows you to install Linux onto that. The disadvantage is that this is slower than actually installing Linux. The advantage is that it is less disruptive to your computer and that you can run Linux inside of Windows 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.).

We recommend and 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. RedHat Fedora) 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. Refer to the UW CSE Home Linux VM Install & Setup for information about how to set up a CSE lab Linux desktop on your computer.

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.

Install Unix commands on your existing operating system:

There are projects that have converted or "ported" a lot of the standard Unix tools and commands to Windows and Mac environments. The links to downloading and installing these projects are below. Cygwin gives Windows a usable Bash Shell. Fink augments Mac OS X's existing Bash shell to contain more of the commands we'll use in CSE 390A.

These are useful applications, but they are not exactly the same as real Unix (not all commands exist, some commands behave differently, not everything is compatible, etc.), so they are less recommended than the previous options above.

Connecting to attu

If you are on a Mac or Linux box, you can connect to the attu server by opening a Terminal window and typing the command:

    ssh attu.cs.washington.edu
  

Otherwise, to connect to attu we recommend that you install the following software:

  • an SSH and SFTP shell / file transfer program for connecting to Linux servers, such as:
    • PuTTy (Windows)
      • The department now recommends using PuTTy as a replacement for SSH Tectia (which is no longer licensed, updated or supported campus-wide). It can be found pre-installed on any recently rebuilt Windows machine, including the machines in the labs.
    • Fugu (Mac)
      • (Macs already have a Terminal application that includes the ssh, sftp, and scp commands)