Virtualization is technology to run operating systems within other operating systems.  For developers, this has many convenience, security, and efficiency advantages.

  • Convenience.  Virtual machines are easy to use to try a new technology.  Installing an operating system is far simpler in a virtual machine than directly on your system.  With snapshot tools, it is easy to try something and roll back to a previous known state if it does not work as desired.
  • Security. Running experimental or developer software often involves installing thousands of packages maintained by unknown authors.  Installing packages directly on your system exposes your system to any security flaws those packages have, whether introduced intentionally or unintentionally.  Developing on a virtual machine isolates those packages vulnerabilities from the outside world, including your host operating system.
  • Efficiency. Installing multiple versions of packages for different projects and courses can lead to impossible configuration conflicts.  Keeping versions isolated into virtual machines means those problems no longer exist. Working with others with different operating systems makes collaborations much harder, as does having consistent results compared to a classroom instructor for unknown OS / package / install reasons.  And the snapshot feature can save many painful hours of reinstall and cleanup when a misstep happens.

The two main choices for laptop / workstation virtualization that are cross-platform are VMWare and VirtualBox.  Here is a trade-off summary of the two options:

VMWare

VirtualBox

cost

Free for academic use for CSE students and faculty through VMWare Academic Program, which requires license renewal every 18 months.  Commercial license is about $250.

Free for personal and academic use.  Commercial license for the extension pack, which provides very basic features like USB 3, is $5000 ($50 license with minimum 100 order).

convenience

VMWare is a mature product and easy to use, relative to the features it provides.  Virtual machines are maintained in folders which can be copied and shared, with only the network (mac) address of the interface requiring updates if the same virtual machines are on the same network.

Keeping the licensing updated through the VMAP program is inconvenient.

VirtualBox’s use after configuration is pretty easy, but installs can be hard and updates are frequent.  VirtualBox uses a global unique identifier model for resources, which means copying virtual machines will eventually break everything, and must be correctly imported and exported instead (which loses snapshot information).

network

The default NAT network of virtual machines can see each other, the outside network, and the host system.  This is usually a great way to test systems while protecting them from the outside network.

The NAT network of virtual machines can see each other, the outside network, but not the host machine.  Additionally at CMU, the default NAT network address conflicts with the network address scheme on campus.  This means the NAT network must be customized, and an additional host-only interface must be configured for host-vm communication.

compatibility

Works fine along with VirtualBox but not Hyper-V (Windows Virtualization) which must be disabled.  

Works fine with VMWare, but not Hyper-V (Windows Virtualization) which must be disabled.


Use this form to request access to the VMAP portal (these get processed slowly), where you can download VMWare licenses.  VirtualBox is available from Oracle directly.