To ensure consistency in project environments, we provide a virtual machine (VM) running versions of Linux and Firefox specially configured to never auto-update. Follow the instructions below, depending on which architecture your computer runs. You must work on all project code within the course VM; we will grade your assignments in the same VM environment.
It is your responsibility to set aside enough disk space on your personal device for all course material, including this VM. If disk space is scarce, you may want to consider migrating your data to the OneDrive or to an external storage medium. Except in the most extenuating circumstances, the course staff are not able to provide accommodations due to a lack of space and/or loss of data.
If you run into any problems while reading this guide, the last section offers some troubleshooting tips. We will update this page as we encounter new problems or parts where students are struggling.
The following setup is intended for Windows, Linux, and Intel-based Macs. If you are using an Apple Silicon Mac (M1, M2, or newer), please instead jump to the UTM Setup.
You will use VirtualBox to run the aforementioned VM. Download the latest version for your host operating system here: https://www.virtualbox.org/wiki/Downloads.
Download the VirtualBox VM appliance from here, and extract it to a directory of your choice. You'll soon see a file CS 4440 VM.ova
—this is the VM appliance. Do not further extract the .ova
file!
In VirtualBox’s menu, navigate to Tools
and then Import Appliance
. Select the VM appliance file (CS 4440 VM.ova
), and continue to click the Next
button until you are no longer prompted. You should not need to modify any settings—just verify that your default settings look like the image below:
The import process may take several minutes. Once complete, click Start
to run the VM. Upon successfully booting, you should be greeted with the Linux login screen.
VirtualBox "snapshots" allow you save the state of a running VM at any point in time. Should you make an irrevocable mistake, you can always revert to this snapshot instead of having to re-setup your VM. Note that any files created or edited in the VM since the last snapshot will be lost.
To take a snapshot, open the VirtualBox VM manager and select Snapshots
as shown in the image below. In the panel that appears, click Take
to save a snapshot.
The following setup is intended for Apple Silicon Macs (M1, M2, or newer).
You'll use UTM to run the VM on an M1/M2 Mac. Download UTM from here: https://mac.getutm.app/ and move the application to your Applications folder (/Applications
) for future use.
Download the UTM VM appliance from here, and extract it to a directory of your choice. After extracting, you should see a file CS 4440 VM.utm
—this is the VM appliance.
Double-click the CS 4440 VM.utm
file, which should open UTM to a screen similar to the following:
The architecture being x86_64
is expected, even if you are on an ARM-based Mac! This reflects the architecture of the VM, which will always be based on x86.
After clicking Run
(any of the three ► buttons in the above screenshot will work), you should see some text flash across the screen. If successful, you will soon be greeted with the Linux login screen.
cs4440
(though we've configured the VM to not require you to enter these on startup). You may need to enter this password when issuing commands as sudo
.
On login, you should be greeted with the UofU Desktop. Notice the Terminal
and File Browser
shortcuts in the bottom task-bar, as well as the Firefox
shortcut on your Desktop.
For some Project exercises, everything you need will be pre-installed in your VM. For others, you'll need to download some files from the CS 4440 web server; you can use Firefox, or wget
in your Terminal
.
Spend some time getting familiar with your new VM—you'll be using it all semester!
See the below suggestions for troubleshooting common VM issues. If you are encountering a different issue (and none of our tips have helped you solve it), please let us know on Piazza!
While we have tried to create the smallest-possible VMs, they are inevitably a few gigabytes in size. We recommend that you download the VMs on a fast internet connection (e.g., UofU campus WiFi).
Depending on your web browser’s configuration such as extensions or add-ons geared towards privacy, the VM Appliance download from may fail in the middle. If this happens repeatedly, we recommend downloading from incognito mode with all extensions disabled, or downloading another web browser.
Generally, rebooting from within the VM (just run sudo reboot
in your VM's Terminal
) will resize your display to a larger resolution. In some cases, you may need to adjust your VirtualBox or UTM settings.
To help make your workflow easier, both VirtualBox and UTM support copying and pasting from host to VM (and vice-versa). To enable this, see the following steps.
VirtualBox: with your VM off, click on Settings
and then then General
. Under the Advanced
tab, make sure that Shared Clipboard
is set to Bidirectional
.
UTM: with your VM off, select your VM and click on the top-right Edit selected VM
button (). Under Sharing
, toggle Enable Clipboard Sharing
.
In some cases, your VM may be using too much or too little memory depending on your host system's resources. This often causes VirtualBox and UTM to either crash on VM startup, or indefinitely hang on a black screen. We recommend that you try adjusting your VM's settings to either increase or decrease the amount of RAM (memory) and/or VRAM (video memory) used. This may require some trial and error!
VirtualBox: first make sure that your VM is turned off, and then click on the Settings
button. Select the System
tab and adjust your RAM (Base Memory
) accordingly:
You can also adjust the VRAM (Video Memory
) within the Display
tab:
UTM: first turn off your VM, and then select your VM and click on the top-right Edit selected VM
button (). From there, click the System
tab and adjust your RAM accordingly:
We've seen RAM / VRAM also affect the VM's Firefox web browser, causing it to unexpectedly crash. We recommend trying to adjust your RAM / VRAM levels using the above steps.
VirtualBox requires an x86(-64) processor with hardware-assisted virtualization; such feature is called VT-x on Intel processors and AMD-V on AMD processors. If you have a Mac, virtualization should be enabled by default in firmware. If you have a PC, chances are the feature will be enabled from the factory, yet this is not always the case.
In order to enable virtualization, you will need to enter the setup menu of your BIOS or UEFI on your PC. The key combination to press immediately after startup differs by PC manufacturer, but oftentimes it is one of F2
, Delete
, F10
, F12
, or Esc
. Consult your manufacturer’s documentation if you are unsure. The location of the setting will also differ by manufacturer. However, the name will almost always include "virtualization" or "virtualization technology".
If you have a previous installation of VirtualBox 6, you may encounter an error saying Invalid value 'WAS' in AudioAdapter/@driver attribute
when importing the VM appliance, causing the import operation to fail. Please update to the latest version of VirtualBox using the download link above.
We've seen some laptops where, upon booting the VM, VirtualBox throws errors such as VERR_ACCESS_DENIED
or VbglR3InitUser
. We recommend just rebooting your computer (not the VM—your entire laptop) and trying again. Alternatively, we've seen some successes where users just clicked-through those errors to get to the working VM. We also recommend trying to run VirtualBox with Administrator permissions, or increasing/decreasing the VM's memory (refer to Crashes or Black Screen on VM Startup for instructions on adjusting your VM's RAM limit).
VirtualBox may prompt you with a message about missing Python Core / win32api
dependencies. You can ignore this as these features are not necessary for the course. See this thread on the VBox forums for more info.
You might have trouble running the VM with VirtualBox on an Intel Mac if you didn't choose the correct security settings when installing VirtualBox. Take a look at the suggested answer here.
On some Windows 11 hosts, VirtualBox may fail to install, asking for Microsoft Visual C++ 2019 to be installed beforehand. You can download this here.