Getting Started


To complete the assignments, you will need access to a Unix development environment. If you do not already have a native Unix installation, you will need to configure a “Virtual Machine (VM).” The short version is that a VM is just another application that your native operating system runs, where this application is another operating system. Think Inception.

Do I need a Virtual Machine?


Not everybody needs to setup a Virtual Machine.

Configuring the Virtual Machine (VM)


Suggestion

Campus internet is exceptionally fast, if you live off campus you should consider downloading the VM before leaving.

1. Install the Tools

Install VirtualBox (current version is 5.1.14).

  1. First, install the “VirtualBox platform” (this is the application).
  2. Next, install the “VirtualBox Extension Pack” (make sure you download the same version of the extension pack as you did the platform package).
    • This allows you to setup connecting a USB stick as well as various other features, but isn’t strictly speaking necessary.

2. Select a VM

If you don’t want to read anymore, just select the Ubuntu VM and enjoy.

Both VMs should be fully functional, and you can always switch or install both and delete one. It depends on how much space you have available. The below comparison is more relevant if you were to install one of them natively, you shouldn't run into problems over the duration of the course.

In this day and age there are a lot of different Linux distributions. Many of them are very similar, but the list grows out of various special needs for different organizations and platforms. In my experience, the two most commonly used "flavors" of Linux are Debian-based and RPM-based. From there, the general trend seems to be that

  • Most independent developers tend to use Debian-based (typically Ubuntu) Linux
    • Ubuntu is a common choice because it has a huge user-base, and therefore a lot of community support.
  • Corporations (and institutions) tend to use RPM-based Linux.

As such, I have prepared Virtual Machine for each category. Ubuntu is the obvious choice for Debian-based Linux, and I have chosen to provide Fedora as the RPM-based Linux choice. This article explains how Fedora, RHEL, and CentOS relate. I personally develop in both Mac OSX and Fedora, but I also have Ubuntu and Windows installed for compatibility testing.

Fedora 25

  • Has more of the "latest and greatest" tools.
  • Kernel updates from the package manager are thedefault.
    • Good: newer hardware support / security updates / bugfixes.
    • Bad: these updates can break things.
  • Relatively short support cycle.

Ubuntu 16.04 LTS

  • Has an extremely vast user-base (aka more support online).
  • Kernel updates from the package manager must be requested.
    • Good: stable — kernel changes can have unexpected impacts.
    • Bad: older kernels can impose limitations on development.
  • LTS means long term support!

Using a Tablet / Netbook / "Weak" Computer?

You are welcome to try using my VMs, but they are probably too "heavy" for your machine to handle. Instead, follow the instructions in the 32bit Alternative section at the bottom.

Fedora 25 Hosts

File: cs2043-fedora.ova
Size: 3.2 GB (3,182,565,376 bytes)
md5:  b20180b838c76c9d26b48a558387e536
Download Mirrors:

Ubuntu 16.04 Hosts

File: cs2043-ubuntu.ova
Size: 2.4 GB (2,402,733,568 bytes)
md5:  c4b29fa6c10d9316917f53accf8c2023
Download Mirrors

3. Install the Virtual Machine

What you just downloaded is an archive of a Virtual Machine (think of it like a .zip file). All you need to do is have VirtualBox extract it.

  1. Launch VirtualBox.
  2. From the menubar, choose “File->Import Appliance”.
  3. Navigate to where you downloaded the .ova file from step 2 and select it.
  4. Click continue.
  5. Check the box that says “Reinitialize the MAC address of all network cards.”
  6. Click import, and let VirtualBox take over.

If you are having this issue, then you need to enable something in the BIOS called "VT-x". This exists to provide "security", and is usually disabled by default. Refer to this article for the solution. You can also search for "enable VT-x (insert computer model)" to find a solution. For example, if you had a Dell Inspiron, you would search for "enable VT-x Dell Inspiron (model number)". Use the model number to get better results.

Lastly, be very careful in the BIOS. Do not change anything you do not need to, as this can produce adverse problems and may make it so that you cannot start your operating system (depending on what you did).

If you are having trouble enabling virtualization in your BIOS, it may be easier to instead follow the instructions for the 32bit Alternative section at the bottom.

4. Run it!

For both VMs, the username is student and the password is student. You are encouraged to change your password to something else.

The root password is also root. Basically, for the sake of convenience, the VMs are not secure. So don’t store sensitive data on them.

5. Customize the Virtual Machine

32bit Alternative


If you are running a Tablet, netbook, cannot get your BIOS configured to enable hardware virtualization, etc, let’s use a 32bit VM instead. For greatest support, I have chosen Lubuntu in order to give the widest support for different hardware / problems you may be having.

2-4. Download the VM Archive, Extract, and Install

The folks over at OSBoxes do an excellent job of preparing many different options. In the video that follows I show you how to configure their Lubuntu 16.04 32bit VM, but of course you could go browse around and choose one of the other many options they provide.

Please refer to the comments in the video for the links you will need to follow to download, extract, and install the VM.


Steps 2-4 of https://cs2043-sp17.github.io/getting_started.html

If you are running a tablet / netbook / not-as-strong computer, or are having trouble configuring your BIOS to enable 64bit virtualization, use the 32bit version instead.

The 32bit VM courtesy of OSBoxes: http://www.osboxes.org/lubuntu/#lubuntu-1604-vbox

This will download a .7z file:

You can now proceed with step 5. As the end of the video describes, you are encouraged to create a “Snapshot” in case things don’t work out. For Lubuntu, the instructions posted for step 5 of the Ubuntu VM should work for you.