The UChicago CS Software Environment

This page describes the software environment provided by UChicago’s CS department, and which you will be using in most of your classes. This page also describes how to access this software environment, as well as some recommended development tools.

The officially supported software environment in UChicago’s CS department is Ubuntu 20.04, a type of Linux/UNIX system, that has most of the tools and software libraries required to complete your CS coursework. However, this does not mean that you need to install Ubuntu on your personal computer: instead, the CS department provides this environment both in our computer labs and through a series of “login servers” that will allow you to access a Linux environment remotely.

Completely new to Linux/UNIX?

If you’re completely new to Linux/UNIX systems, we recommend that you plan to stop by the CSIL computer lab (see below), and work through the Linux Basics tutorial on a CSIL Linux computer. Once you’re comfortable with the basics of using a Linux system, make sure you are able to remotely access the UChicago CS Linux environment from your own computer using SSH (see below).

Accessing a UChicago CS Software Environment

There are several ways of accessing the UChicago CS Linux environment, which we describe below:

CS Instructional Laboratory (CSIL)

The Computer Science Instructional Laboratory (CSIL), located in the first floor of the John Crerar Library, includes two computer labs (CSIL 3 and 4) with Linux machines in them. If there are no classes in progress in those labs, you can sit at any available computer to access the UChicago CS Linux environment (there are also Linux computers outside the labs, which you can use if the labs are occupied by a class).

You can log into these machines using your CNetID and password. If you encounter any issues, you can speak to a CSIL tutor at the tutor desk.

Remote SSH Access

While the CSIL labs provide a convenient way to access a ready-to-use Linux environment, it is also possible to access this same environment remotely (i.e., without having to be physically sitting in an on-campus computer lab).

A common way to do this is with SSH, a system that will allow you to access a Linux terminal from your computer. This means that you will only have access to the text-only command-line terminal of the UChicago CS Linux environment, and won’t be able to launch any graphical programs (like you would if you were physically sitting at a Linux machine in a CSIL lab).

While this may seem like a big constraint, you can still do a lot from a Linux terminal, and most student get by just with SSH access to the UChicago CS Linux environment.

We explain how to use SSH to connect to our Linux servers in the Remote SSH Access page. There you will find instructions on how to set up SSH access from Windows, Mac, or another Linux system.

SSH can also be used to seamlessly edit files that are stored on the UChicago CS Linux systems, while using an editor that is running on your own computer. The exact mechanism for doing this varies from one editor to another, but we provide instructions on how to set this up with one particular editor, Visual Studio Code, in Using Visual Studio Code and SSH.

Virtual Desktop

Another option for working remotely on a CS software environment is to use a Virtual Desktop. This will allow you to connect to a CS server that will give you access to a desktop environment similar to the one you would encounter if you were sitting at a Linux machine in a CSIL lab. This approach, however, requires more bandwidth than using SSH, and can feel sluggish depending on the latency of your connection. We recommend this option only if you are first getting started with Linux, or in cases when you need to use a specific graphical tool in the UChicago CS Linux environment.

The CS Virtual Machine

The CS department also provides a virtual machine (VM) that approximates the software environment found in the CS machines. You can find the latest version of the CS virtual machine on this page, which also includes instructions on how to install and run the VM. Make sure to also check out the VM FAQ, which covers a number of common issues when running the VM (including how to deal with a slow/sluggish VM).

Running the VM will effectively run a full Linux operating system from inside your current operating system, and will feel as if you were logging into one of the Linux machines in the CSIL labs. However, take into account that the virtual machine is a completely standalone machine, and will not have access to the CS filesystem that is available when you SSH into a CS Linux server or log into a CSIL machine.