ICS 45C Spring 2022
Installing VMware and the ICS 45C VM (ARM64)

Knowing that ARM64 is the right version

The only circustmance in which you're likely to want the ARM64 version of the ICS 45C VM is if you're running macOS on an Apple Silicon processor (such as an M1), in which case you'll want to follow these instructions. In any other circumstance, you'll want the x64 version and will be using VMware instead.

Installing UTM

The first thing you'll need is a hypervisor. As of this writing, VMware Fusion is not generally available for M1-based Macs, so you'll instead want to download and install a tool called UTM, which you can download free of charge at https://mac.getum.app/. (It's also available for $9.99 through the Apple Store, though there's no difference between the paid version and the free one.) Clicking the Download link on UTM's page, you'll have obtained a file named UTM.dmg, a disk image that contains the UTM application. Drag the application into your Applications area in Finder and you're ready to go.

The current version of UTM, as of this writing, is 3.1.5.

What is the ICS 45C VM?

The ICS 45C VM is a complete installation of an operating system and the necessary software that we'll be using in this course (and little else). The operating system is Ubuntu Server 20.04.3 (ARM64 version), with a graphical user interface called XFCE, which provides a look-and-feel similar to what you might get on Windows or macOS. You'll nonetheless spend a lot of your time at the command line within your VM's GUI.

In addition to the operating system, the ICS 45C VM has a set of software already installed and configured for our use. You may not find that you need all of these software packages, but some of these are going to be vital, and others are available if you do.

Along with this preinstalled software, the ICS 45C VM also includes an environment for the course, which consists of a set of commands and scripts that you can execute to perform common tasks, and templates from which you can start new project work without having to worry about detailed setup of things like makefiles. Over the course of the quarter, we'll update the environment, and updating yours is a single command away. (More on that later.)

Downloaidng the ICS 45C VM (ARM64)

You can download the ARM64 version of the ICS 45C VM at the following link. Before you do that, please bear three things in mind:

The ICS 45C VM is available here.

The file is a compressed file in a format that's sometimes called a tarball, within which is a virtual disk (i.e., the contents of the hard disk of the virtual machine we'll be creating). With everyone starting with the same virtual disk, we'll all be starting with the same version of the operating system, the same versions of all of our tools, and so on.

Be aware that the download may take a fair amount of time; it's several gigabytes. (So much the better that you get a copy from someone else who's already downloaded it!) Once you have a complete copy, you can move on to the next step.

Being sure you have a complete copy of the ICS 45C VM before you proceed

In past quarters, we've experienced a number of problems with students receiving only partial copies of the ICS 45C VM, given that it's such a large download. Before proceeding, be sure that the size of the file you downloaded is exactly 6,408,689,868 bytes. (Your operating system may show you a shorthand, like 6,258,487 KB or 5.96 GB, but you'll want to verify it all the way to the byte.) If not, you've got a corrupt copy of the file and will need to download it again.

Some students have asked me in the past for an MD5 checksum for this file, as well. This quarter's VM has the following MD5 checksum: cc29d015c5efce4294fc6562add79948.

What to do if you've taken the course before

If you've taken this course before, you're still going to need to download this quarter's ICS 45C VM. The VM changes every quarter, in ways that sometimes change whether or not code will run the same way (or, in some cases, will even compile at all); furthermore, a previous quarter's VM will only support the previous quarter's assignments, notes, and so on.

You may also need to upgrade UTM, if you've installed an older version during a previous iteration of this course. You'll need to be running the same version as everyone else this quarter; see above.

Importing the ICS 45C VM into UTM

After you've download the ics45c-2022spring-arm64.tar.gz file, you'll want to uncompress it. The easiest way to do that is to double-click the file in Finder. After it's been uncompressed, another file named disk-0.qcow2 will have been extracted from it. That's the virtual disk, which forms the basis of your ICS 45C VM.

Next, you'll need to create the ICS 45C VM. To do that, open the UTM application and either click the large Create a New Virtual Machine button or select the File menu and then New.

Either way, a dialog box will appear that starts the process of setting up your new virtual machine.

At this point, you should see your new VM listed in UTM's main window. (It's worth noting that, at this point, it's got a copy of disk-0.qcow2 in it, and anything you do to this VM will affect only that VM.)

Starting the ICS 45C VM and logging into it for the first time

Once you've imported the ICS 45C VM into UTM, you're ready to start it up and log into it for the first time. Click your VM in the list in the left-hand side of the UTM window, then click the "play" button (the one with an arrow pointing to the right) to start it running. You'll see another window pop up, which is the console of your VM.

Logging into the ICS 45C VM

Once you've booted up your VM, you'll see a dialog box before too long asking you to specify a username and a password. The username is selected from a dropdown list; ics45c will probably already be selected, but make sure it's selected if it's not already. In the text field below that, type the password ics45c — which you'll want to change (see below) — and click the Log In button.

Having logged in, you should eventually see a desktop, much like you would see on Windows or macOS. In the bottom-left corner is a small icon that can be used to start common applications or edit operating system settings. One of the most important of these, for us, is the Terminal application, which will give you a shell prompt. Find the Terminal application (which might also be listed as Terminal Emulator) and start it. A window should pop up and contain a prompt that looks like this:

ics45c@ics45c-2022spring-arm64 : ~ $

If so, you're off and running! Go back to the Project #0 write-up and pick up where you left off.

(Note: You might find the default font and colors not to your liking, though it's easy enough to change them. From the Edit menu in your Terminal window, select Preferences.... A dialog will pop up allowing you to configure whatever you'd like; when you're done, click Close, and subsequent uses of the Terminal application will respect the changes you made.)