Tufts CS Virtual Machine

Overview

A virtual machine (VM) is a software computer that, like a physical computer, runs an operating system and applications. Say that your laptop runs Mac OS X, you can run a version of Windows as a virtual machine (the "guest") on top of Mac OS X (the "host"). To run a virtual machine, you will need a hypervisor, also known as a Virtual Machine Manager (VMM).

What Are the Values of Using a Virtual Machine?

  1. Logical separation between machines. Theoretically, a virtual machine is isolated from the host. That is, mistakes made on a guest (e.g., malware) will not escape to host --with a few exceptions including file sharing between host and virtual machine.
  2. Eliminate the hassle of installing required software for some courses. Asking TAs or instructors for help on installing software is not a good use of time for anyone. We would much rather you learn how to use the tools than learn how to install the tools. Especially on Windows, some development tools are either not available or difficult to set up.
  3. A fantastic learning environment, make mistakes, without affecting host. Hypervisors provide a very handy feature: take snapshots of running virtual machine, and roll back to a snapshot when necessary (i.e., when mistakes are made). Worse comes to worst if the virtual machine is completely broken, delete the virtual machine file and redownload the VM.
  4. Install any software that you want without affecting host. Currently, you cannot install and run any software that you want on the Tufts CS computing environment. This will be a problem if you need to create and run a server --which is a no-no on the Tufts CS computing environment.
  5. Help scale courses. A constraint for some courses is physical lab space and the number of computers in the labs. What if this constraint could be elimated? Currently, CS50 at Harvard has scaled to over 1000 students by having students use a virtual machine. (thanks to Mark Hempstead for this idea)

Step 1: Download a Hyperviser

Choose one of the following options:

QEMU (open source) and Parallels (commercial) are not supported at this time.

Step 2: Download a Virtual Machine

Notice

This virtual machine does not log anything that you type in (e.g., command line commands, program outputs, source code that you create and/or save inside of the appliance) and then send the data to a server somewhere. The Harvard CS50 appliance does for research purposes. This may be implemented in the future.

Virtual Machine Information and Default Settings

Usernames and Passwords

Software Installed

How To Update The Software On The Virtual Machine

You should do this occassionally. Run: sudo apt-get update followed by sudo apt-get upgrade in Terminal as tuftscs user. If an update to the Linux kernel is available, run sudo apt-get dist-upgrade.

Frequently Asked Questions

Q: Can I SSH into homework.cs.tufts.edu from the VM?

A: Yes. Make sure that your host has Internet access first before turning on VM.

Q: Why is Debian used and not Ubuntu?

A: Ubuntu is now loaded with crapware including Amazon search results.

Q: Why is the VM using a 32 bit processor and not a 64 bit processor?

A: It is the safest option. Not everyone is using a 64 bit PC. Also, I've seen many Windows users have trouble opening up 64 bit VMs.

Q: How do I installed software (e.g, Dropbox) on the VM?

A: Try sudo apt-get install <name of software package> first. If that does not work, consult with software's website.

Q: Where can I learn Linux commands?

A: Google "linux commands cheat sheet"

Q: What if I do not have enough hard disk space for the VM?

A: Delete old stuff off of your hard disk.

Q: What if I do not have enough memory (RAM) for the VM?

A: There is no excuse for you to not have 1 GB of RAM for the VM. At the very least, close unused running applications on your computer.

Q: Can I drag-and-drop files between guest and host?

A: Yes. If you are using VMware, download and install VMware Tools for the VM.

Last updated on January 2, 2016