LL9 Virtualization

In this lab we will install a virtual machine on our host OS and then install Ubuntu as a guest OS in this virtual machine.  Note this will require everything we’ve learned to date which includes our ability to locate, assess and apply information (manuals, Internet search and even YouTube) as being able to locate, assess and apply information is critical for our success in this discipline.  There are 2 required screenshots denoted as “exercises” as in previous labs where the 2 screenshots must show the running Ubuntu VM and the Ubuntu GUI desktop and the cryptographic hash computation. 

1. You may and probably will have to review previous material as necessary.

2. Please read this page and all sub-pages in this lab to get a full understanding prior to beginning.  You may wish to print out the instructions and highlight them as you complete the steps. Should you need assistance please adhere to the email requirements presented in LM1 and consistent with previous labs, please provide your platform (Windows, Mac, Linux and their versions), the virtualization software you have chosen, the exact step you are on (#number) and screenshots.

3. Do not install Ubuntu directly on your system as we will install the Ubuntu Desktop OS into a Virtual Machine (VM). To this extent, please read this and all subsequent pages in their entirety before proceeding so that you understand the big picture. 

Virtualization & Virtual Machines (VM) Background

A VM appears to the end-user to be complete physical machine. What this means is a VM abstracts the hardware components up a level as it is itself a process running on a machine and provides this hardware abstraction to guest operating systems.  Ok, let’s see if I can distill this further.  A VM is a process running on a system (i.e. it is an application being run by an OS on a computer).  We will call the actual physical computer the “Host” computer and the VM will be called the “Guest”.  The host has an architecture (e.g. Intel) and the host OS (e.g. Windows, Mac or Linux) abstracts the details of the host architecture to provide a consistent platform for its applications (e.g. MS Word, Google Chrome, etc.).  You know this as you can install and update applications on your computer and then later add a new printer or some other hardware device as the OS manages the interface.  When you added the new hardware device everything still works and as an example, you did not have to update your word processor to work with the new printer.  The host OS handled this interface.

Ok, so now we install a VM (the VM is an application running on the host OS just like MS Word) and this VM provides an exact architectural replica so that we can install a guest OS in the VM.    Now once we install a VM on a host OS, and install a guest OS in the VM, we can install applications in the guest OS.  In the guest instance, neither the OS nor the applications realize they are in a VM as they simply see the normal interface (i.e. the OS sees the architecture and the applications see the OS).  Now if the word processor installed in the guest OS wants to print a file, it asks the guest OS to print the file exactly as presented above.  The guest OS uses the interface as presented by the VM to print the file.  The guest OS is unaware the VM is actually an application running on the host OS so the VM asks the host OS to print the file using the same system call that a word processor running on the host would use. Hardware Virtualization speeds this process up by creating hooks allowing the guest VM residing in application space on the host VM to access the host’s hardware directly.

http://www.intel.com/content/www/us/en/virtualization/virtualization-technology/hardware-assist-virtualization-technology.html

For further reading on VMs please see: http://en.wikipedia.org/wiki/Virtual_machine

Virtual Machine Uses

So why do we do use VMs?  They offer many advantages that include:

Isolation – if a VM or a program in a VM crashes, it does not compromise other processes running on the host OS.  To provide an example you are familiar with, if you are running a system with no VMs and your MS Word crashes, your Chrome Browser should not crash.  A VM is simply another application on the host OS so if the guest VM, its guest OS or one of its programs crashes, your system should remain intact.  Microsoft Windows was probably not a good example – 🙂

Security – see isolation description above but consider if your guest VM/OS/Browser were to get a virus.  The VM/OS is simply an application (i.e. just another file) with no access to your host system so the threat is sand-boxed.

Greener or less power consumption – our computers are powerful and can multi-task so we can use computing resources more effectively.

Software development – see isolation above.

Uniform desktop support – this is my favorite as every client is running the same architecture.  Honestly, this is the only way I can teach the this CISS 100 Ubuntu component but there are still slight variations.

Here is a very general overview… not as good as the previous YouTube video from another faculty that was recently taken down but it is nice to hear it from someone else sometimes. Also this video uses Oracle’s free Virtual Box so it is nice to show this option.

 

Installation Background & Overview

Please read through all documents in their entirety before you begin your installation but first the big picture – you will do the following in sequence.

1. Install or setup your VM software/environment on your host system/OS.  Virtual Machine software directions located in the submenu.

2.  Download Ubuntu (download directions in submenu)

3. Verify the the Ubuntu download’s MD5/SHA Hash (verification directions in submenu)

4. Install the guest Ubuntu OS in your VM (installation directions in submenu)

5. Explore your new VM

So without further ado, let’s jump in.

Again, most problems come from rushing through this installation, not following the instructions or a lack of attention to detail.  To this extent it is a good idea to print out this page and its sub-pages and crossout/checkoff/highlight components after you complete them.

Again, please read through all documents in their entirety before beginning.  I can’t emphasize this strongly enough. You may want to perform your downloads in the background (while making coffee, dinner, overnight, before you leave for the night or go skiing, etc.) as they can take some time depending on your connection speed.  Having said this you may wish to quickly read through this document and get some downloads going as you encounter them.  Also, it may be beneficial to download at the College or Library if their download speeds exceed your home download speed.  To this extent I provide the Ubuntu Download instructions here so that you can begin the download and the Ubuntu download is common component for all installations (e.g. all Virtual Machines and USB installations).

Again, note we are installing Ubuntu in a VM not directly on your Hard Drive as installing on your Hard Drive will erase your system.

Getting Help

Note that per LM1 and the Course Introduction, I will not respond to emails that do not adhere to the “Contacting your Professors” email convention. Again I know this email policy may be misconstrued as harsh however we must transform ourselves into Information Systems professionals and this is a necessary step.  To this extent, students are responsible for rereading LM1 to find this information (and any or all previous coursework) as some students have requested that I simply resend this information. This also is a very important aspect of our development as CIS is foundational and we must frequently review previously covered material.  In the future, if you continually ask your boss to resend information they previously sent, you will probably not last long in that position.

To assist, the faculty need to know the specifics about your system (32 vs. 64 bit, OS version, etc.), your chosen VM software and version (VMWare, VirtualBox, Hyper-V, etc.), the exact step number you are on ( or last completed step) and screenshots of all relevant steps and errors.  Without these I can only guess at what is going on and therefore  I cannot properly assist you. Also, I stated we must be precise with our terminology and our academic and professional success will depend on this. I know this is new to everyone as I continually receive questions that demonstrate a lack of necessary specificity (VB is a VM, Ubuntu is Linux, snapshot vs. screenshot, etc.).

Again and lastly, Internet Search is your best friend as it is available 24/7 and I cannot foresee every situation with everyone’s heterogeneous system.  As previously presented, learning to search for, assess and apply this information is an outcome of this course and necessary skill of today’s Comp Sci professional. If you get an error message, try searching the Internet/YouTube for the error message appended to the words “VMWare or Virtual Box” or whatever your implemented VM is and possibly your system (e.g. Mac, Win7, Win10, etc.). Please treat it as a necessary learning experience and note you should be researching any unknown term or concept.