Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Most probably my boss didn't write a single word on a keyboard in his entire life.

He saw computers and he has a cell phone. He is a smart man.

How can I explain to him what a 'virtual machine' is? (VM as in VMWare + virtual Box, not the VM as in Java, LLVM, .NET)

One of the reasons for asking this is that I want to tell him that having a Linux VM to connect to internet with a Windows host is safer than connecting directly to Windows.

share|improve this question

closed as primarily opinion-based by gnat, MichaelT, Kilian Foth, Michael Kohne, Robert Harvey Mar 3 at 5:10

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

3  
"It's an app (nowadays that's the word after all) pretending to be an entire Computer/Smartphone/..." –  Tobias Kienzler Feb 27 at 12:29
    
More generally, it's a program that runs other programs. –  Blrfl Feb 27 at 12:58
1  
@Blrfl Isn't that the definition of an Operating System? –  svick Feb 27 at 13:02
5  
Just hand him an etch-a-sketch! –  SpYk3HH Feb 27 at 15:05
2  
It is The Matrix! –  Codism Feb 27 at 15:05

4 Answers 4

Well, that depends on why you want to explain it, and in how much details.

A good first attempt could be

A program to simulate a computer inside a computer. It is useful for testing programs that need a separate computer, without actually having a second computer.

Then, you can refine your explanation depending on his questions.

share|improve this answer
6  
"A computer inside a computer"--it's like Inception. :) –  anorton Feb 27 at 14:55
    
How deep can you go before you run out of memory and crash? ;) –  World Engineer Mar 3 at 3:37

There are three possible ways. You may need to use all of them.

By definition.

  • "A virtual machine is a program that simulates a physical computer."

By example

  • A VM is kind of like those Emulators that let you play old NES games on your current PC.
  • Smartphone developers use VM's, so that instead of buying a hundred smartphone models they can just test on a hundred free VM's.

By demonsration

  • Here, this is a virtual machine ("Fire up VirutalBox on your desktop.")

I'm flabbergasted as to why you thinking running Linux through a VM on a Windows host is somehow more secure than just installing it on hardware. Did you mean to say the other way? Or are you testing Linux distributions from unknown companies that may have black-hat backdoors in them?

share|improve this answer

Don't get caught up explaining the technical detail - that's why your boss has hired you.

An explanation of virtualisation in this situation is as simple as "it allows you to run multiple computers inside one".

The benefit your boss will care about, and understand a lot better - is that virtualisation allows you to maximise utility on the servers you already have (ie: potentially lower cost to the business).

There are more comprehensive arguments to this, but from OP it sounds like virtualisation has very little to do with what you're trying to solve (put a security/nat/firewall appliance between the internet and some guests).

share|improve this answer

virtual machine. a self-contained operating environment that behaves as if it is a separate computer, with no access to the host operating system: When an application runs in a virtual machine, there is little chance that it will damage files or applications in the host system.

Also a platform-independent execution environment that itself runs as a normal application inside a host operating system and enables a program written for the virtual machine to execute the same way on any platform:

share|improve this answer
6  
The problem with this answer is that it is plain wrong. a VM is not solely for developer usage and neither does it has to be a type 2 VM. –  dirkk Feb 27 at 13:42
4  
Have to agree with @dirkk on this one. You are WAY off base. I've worked on several contracts, including the one I'm at now, where VM's house, not only the dev enviro, but the main website, databases, and even the backend CRM. and FYI, I would even downvote this, but I don't have enuf points on this stack yet, lol. –  SpYk3HH Feb 27 at 15:06
2  
'Nothing but an executable file' Horribly wrong. And includes 'softwares' - extra bonus wrongness. –  peterG Feb 27 at 16:24

Not the answer you're looking for? Browse other questions tagged or ask your own question.