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:

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. 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.

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.

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.

[Windows 10 Users Only] Enable the Windows 10 Subsystem for Linux (WSL):

For Windows 10 users, Microsoft has provided a way to enable a full Linux distribution from within Windows, the Windows Subsystem for Linux. The WSL will allow you to run native Linux binaries directly on Windows, without the need for virtualization software (like VMWare) or a compatability layer (like Cygwin). However, note that Microsoft is mainly focused on supporting a command-line Linux interface (bash.exe) and is not prioritizing supporting Linux graphical applications.

To begin, follow Microsoft's instructions for enabling the WSL here. If you have a slightly older version of Windows 10 and cannot upgrade to the newer version, you might need to follow these instructions instead.

Note that the WSL is still fairly new (although it is technically out of beta). There are still some bugs, some limitations, and quirks you need to be aware of. For example, you must not modify files under the root of your Linux file system (%localappdata%\lxss) from within Windows. Instead, if you want both Linux and Windows tools to share files, place them under your mounted Windows directory (e.g. /mnt/c/Users/...).

From some limited testing on our end, WSL seems to work pretty well, almost similar to a real Linux distribution. But, if you encounter any issues, we recommend you switch over to working on attu. At a minimum, by installing WSL, you will get access to command-line ssh, sftp, and scp, which means you can work from attu and should not need to install PuTTy at all.

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 391.

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 have a CSE account, you can connect to the CSE departmental server 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:


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