9

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.

gnat
  • 21,442
  • 29
  • 112
  • 288
John Thomas
  • 216
  • 1
  • 5
  • 3
    "It's an app (nowadays that's _the_ word after all) pretending to be an entire Computer/Smartphone/..." – Tobias Kienzler Feb 27 '14 at 12:29
  • More generally, it's a program that runs other programs. – Blrfl Feb 27 '14 at 12:58
  • 1
    @Blrfl Isn't that the definition of an Operating System? – svick Feb 27 '14 at 13:02
  • @svick: Operating systems "run" programs in the sense that they load, start, supervise and stop them. Actual execution of the program instructions is done by the same CPU that executes the OS. A VM in the pure sense of the word never tells the host system's CPU to jump to any of the instructions it's running and instead does an emulation itself. The definition has been co-opted to include running native programs, including operating systems, in separate contexts using the host CPU, so there are plenty of hairs to be split. – Blrfl Feb 27 '14 at 13:29
  • 5
    Just hand him an [***etch-a-sketch***](http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/20000/0000/900/20939/20939.strip.gif)! – SpYk3HH Feb 27 '14 at 15:05
  • 2
    It is The Matrix! – Codism Feb 27 '14 at 15:05

4 Answers4

28

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.

sleske
  • 10,095
  • 3
  • 29
  • 44
5

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?

DougM
  • 6,361
  • 1
  • 17
  • 34
4

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).

bly
  • 606
  • 7
  • 6
-8

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:

Saroj
  • 9
  • 1
  • 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 '14 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 '14 at 15:06
  • 2
    'Nothing but an executable file' Horribly wrong. And includes 'softwares' - extra bonus wrongness. – peterG Feb 27 '14 at 16:24