UB CSE Virtual Machine Images

These virtual machine images are intended to provide a convenient and stable environment for developing code for certain courses in the UB CSE curriculum. The images are provided as Open Virtualization Appliance (OVA) files, in which a single file comprises an entire, working virtual machine image. These images can be used or imported into many VM environments, including VMware Player and VMware Workstation on Linux and Windows, VMware Fusion on Mac, and VirtualBox on all three platforms.


The top-most image on this list is the currently-recommended image. Unless you have a specific reason to download a different image (e.g., reproducing an environment from a previous semester), please use it.

Fall 2021 VM image
(Ubuntu 20.04.3 x86-64)
(1.7 GB)


As you may not be familiar with virtualization technology, here are some helpful terms and their definitions:

A virtual machine running on another computer. If you have a laptop running macOS, and you install a VM image from this page on it, the running image is the guest.
A computer that runs the virtualization software on which a virtual machine runs. If you have a laptop running macOS, and you install a VM image from this page on it, your laptop is the host.
A virtual machine image is a file or folder that represents a virtual machine.
A particular format virtual machine image that allows a VM to be stored in a single file.
Virtual Machine
A “virtual” computer that runs in a software program on another computer.
Virtualization software
A software package (such as VMware or VirtualBox) that allows a virtual machine to be run on a computer.
Virtual Machine

To clarify the relationship between the host and guest, the host is the actual, hardware computer, and the guest is the software-emulated computer running in the virtualization software.

VM Features

As of Spring 2021, this VM image has the following features (among others):

  • Ubuntu 20.04 LTS, x86-64 architecture
  • C and C++ development tools
  • Valgrind and gdb debugging tools
  • Git for source code control
  • Emacs and several flavors of vim
  • Default editor configuration for Emacs
  • The XFCE desktop environment

As it is a standard Ubuntu install, many programs are available in the distribution packages, but may or may not be installed on the image already.

At the top left corner of the screen after logging in, there is a menu that should seem relatively familiar to most users. Of particular interest in this menu will be Terminal Emulator under the Accessories category (although it will show up in Favorites), and Emacs (GUI) under the Development category.

Booting Images

As of the time of this writing, students may use Virtual Box without charge. VMware Workstation, VMware Player, and VMware Fusion may be available to UB students while they are taking a course that uses virtualization.

Instructions for opening OVA images can be found in the respective software documentation. It typically involves “opening” or “importing” a virtual machine into the running application, and then selecting the .ova file as the machine to open. Some brief instructions for VirtualBox, VMware Workstation, and VMware Fusion appear below.

Configuring your VM

The first time you boot the VM, it will ask you to set up a user account. Use your UBITName as your VM username! This will be required for some labs and activities, and you will have to do extra work to use a VM account that has a different username.

You may want to configure shared folders between the VM and your host computer; that is up to you. Shared folders will allow you to access a folder on your host computer from the VM guest.

Enabling Virtualization

Windows and Linux users may need to enable virtualization in their BIOS to achieve good performance in a virtual machine (or even to run a virtual machine at all, in some instances). You should consult your computer’s documentation for how to accomplish this, but it will typically user the following process:

  1. Enter your BIOS configuration (see your machine’s documentation)
  2. Look for a setting to enable “Virtualization”, “VT-x”, “Intel VT extensions”, etc.
  3. Enable the setting, save your changes, and exit

Mac users do not need to worry about this.

Installing an Appliance on VMware Workstation 16

  1. On Windows and Linux machines, check Enabling Virtualization, above.
  2. Install VMware Workstation 16.
  3. Download the appropriate appliance image from the table above.
  4. Start VMware Workstation and select File | Open, then select the downloaded OVA.
  5. Follow the prompts to import and configure the appliance.

Installing an Appliance on VMware Fusion 12

  1. Install VMware Fusion 12
  2. Download the appropriate appliance image from the table above.
  3. Start VMware Fusion and select File | Import, then select the downloaded OVA.
  4. Follow the prompts to select an import location and name. (If you get a message that the OVA “did not pass OVF specification conformance or virtual hardware compliance checks”, press Retry and the installation will continue as normal.)
  5. Click Finish after the appliance has imported. If VMware fusion asks to upgrade the virtual machine, press “Upgrade”.

Installing an Appliance on VirtualBox

Note that VirtualBox is not the recommended virtualization solution if you can use another option. In particular, it is known to have graphics support problems on macOS with certain hardware. If you are registered for CSE 220, you are eligible for a license for VMware Workstation, VMware Player, or VMware Fusion through the University. You will be given more information about this in class.

  1. On Windows and Linux machines, check Enabling Virtualization, above.
  2. Install Virtual Box for Windows, Linux, or macOS as appropriate.
  3. Download the appropriate appliance image from the table above.
  4. On Windows, Mac, or Linux with a supported desktop, you can double-click the OVA file to open VirtualBox and start the appliance import. On other Linux installs, open VirtualBox and select File | Import Appliance, then select the downloaded OVA.
  5. Follow the prompts to import and configure the appliance.

Verifying Images

Verifying the downloaded image is an optional process, but it ensures that your download is un-corrupted and unmodified from the original VM image. You do not need to do anything with the information in this section if you do not understand it.

These images are served via Keybase. If you use Keybase, you can fetch them from KBFS at /keybase/public/elb/buffalo/vm-images. Your Keybase client will verify my signature on the images.

If you do not use Keybase, but are familiar with PGP or GPG, you can use the “signature” link to download a detached signature for the file. Place the signature and the file in the same directory, and run gpg (or whatever PGP client you use) on the .asc signature file. If you wish to verify my public key, come see me and I’d be happy to give you the fingerprint.

If you do not use either Keybase or PGP, you can verify one or more of the checksums in the file behind the “checksums” link.