What’s a Virtual Machine?

A “Virtual” machine is a program that runs on a computer that emulates another computer.  For example, there’s an arcade game emulator called MAME (Multiple Arcade Machine Emulator) that can pretend to act like one of the computers inside a coin operated arcade machine.  People have used special hardware to copy the ROM images off the chips in the arcade machines and have made them available for download over the internet.  Anyone that downloads one of the ROM image files can load it up in MAME and run the actual coin operated game on their home computer.  The game program that’s running in the virtual machine has no idea that it’s NOT running on a real arcade machine.  It runs exactly as if it were in the arcade.  It even expects you to drop quarters in it.

image

image image

This game, “Pac-Man Plus” is NOT a PC game and was not written for PC operating systems or for PC hardware.  It’s completely incompatible with it.  But, as you can see, it’s running on a Windows machine.  It’s because of the MAME software which is emulating a completely different machine.  The Emulator (or “Virtual Machine”) is looking at the instructions in the game code and interpreting them, one at a time, and figuring out what that game is intending to do on the arcade hardware, and doing is instead doing it the Windows way.

There are many different types of emulators.  There are emulators for all the old game consoles like the old Atari 2600, Colecovision, Intellivision, Nintendo, Nintendo 64, GameCube, PlayStation, Sega GameGear handheld, Nintento DS, GameBoy, even emulators for the old Commodore 64 and Apple // and Macintosh (the old 6800 version, the PowerPC version, and now the Intel version with OSX).

But, when you emulate a desktop computer, the term “Virtual Machine” is usually used rather than the term “emulator”, though, they’re both the same thing, technically speaking… They both use a piece of software to emulate another computer.

Today, virtual machine software is fairly common in the business environment for servers.  Some popular VM programs are VMWare, Virtual PC, Xen, and Parallels.  There are others, but these three are, by far, the most popular.  They all emulate a computer.  But, they usually emulate a computer that’s similar.  In other words, you run these on an Intel based PC (like any Windows machine or any modern Mac or Linux) and the VM software emulates another computer that’s also an Intel based computer.  Check out this screen shot of VMWare running under Windows 7, but running Ubuntu Linux 8.10 inside of it:

image

As you can see, the frame of the VMWare program is clearly a Windows application.  Inside the window, you can see a Linux desktop.  This is not a remote control session.  This version of Linux is actually running at the same time, on the same machine as Windows 7.  The Linux that’s running inside that window has no idea that it’s not the primary operating system on the computer.  As you can see on the left, I have several different virtual machines that I can run.  I can actually run several of them at the same time.

This is a great way to try out different operating systems without having to commit to one or reformat my hard drive to install one.  It also lets me test software in a sandbox environment without putting my real computer at risk.  Big companies use this type of software to consolidate multiple servers onto fewer machines.  They can also crank up a new server in a matter of minutes without having to deploy new hardware.  Each virtual machine thinks it’s a whole computer on the network and other computers on the network can talk to these virtual machines as if they actually are whole computers on the network.  Each one can get assigned a unique IP address, just like a real computer.  As a matter of fact, many web sites you visit are actually hosted inside of virtual machines.  Other computers on the network cannot tell that they computer they’re talking to is not a real machine.

Ubuntu Linux: Upgrade to 9.10 Karmic Koala Experience (Part 1)

…from a Windows user’s point of view.

I’m writing this as I’m upgrading.  Keep checking back for progress.

I’m a Windows guy at the moment, but am attempting to see if I can make Linux my primary desktop.  I’m starting off with the Linux distro Ubuntu 8.10 “Jaunty Jackalope” from a VMWarevirtual appliance” that had Ubuntu 8.10 already installed.  All I had to do was download it and start running (no installation needed).  Obviously, I’m running this in a VM (virtual machine) with VMWare.  Tonight, I decided to get back into IM (Instant Messaging… I do this about once a year and end up uninstalling it after a month or so because it’s too distracting).  I redownloaded Pidgen for Windows, got it configured with AIM, Yahoo, MSN, Google, ICQ, & Facebook.  Then I decided to do the same in Ubuntu.  Turns out this distro already has Pidgen installed.  Cool.

I then wanted to make sure I was upgraded to the latest version of Pidgen.  This is where the differences between Windows and Linux really slap you in the face.  For example, here’s how to upgrade to the latest Pidgen for Windows version via the Pidgen website:

image

Couldn’t be simpler (unless, Pidgen auto-updated itself).  Here’s how to update Pidgen for Linux (same website):

image

As much as I’d love to see Linux take off with the masses, this is why it won’t any time soon.  No, not because of this particular Pidgen upgrade, but this seems to be a constant theme for working in Linux.  Normal computer users (those that aren’t Geeks, like us) won’t put up with this or can’t put up with it.

Anyway, that was just a diversion from the primary task here of upgrading to 9.10.  Ubuntu notified me that it had found a new version (I didn’t have to go looking).  I told it to go ahead and update, while I was in the middle of chatting with a friend with Pidgen.  It finished downloading while we were still chatting, so I had it start the upgrade.

image

Wow!  12 hours?!?!?  It kept changing from 7 to 14 hours.  It’s currently estimating 9 hours now (about 15 or 20 minutes after I took that snapshot).  Anyway, that’s a LOOOOONG time.  To be fair, this is in a VM, which is expected to be slower that running it natively.  I’ll continue the article after it finishes this 9 hour task…

Here’s part 2 of my upgrade experience:

Ubuntu Linux: Upgrade to 9.10 Karmic Koala Experience (Part 2)