Talk:Virtual machine

From Wikipedia, the free encyclopedia

Contents

[edit] Microsoft Visual Basic

Removed "Actually Visual Basic a widely used programming environment uses as well a virtual machine."

VB does not use a virtual machine. It compiles to p-code, which is not the same thing. The p-code is specific to intel hardware and the windows operating system, so it doesn't qualify as a virtual machine. --Dmerrill


There was an old plan by Microsoft to port Visual Basic to Alpha CPU (Windows NT for Alpha). They plan to use Visual Basic p-code on Alpha CPU.

Is this Microsoft P-code related to UCSD P-Code?

Is this Microsoft P-code related to virtual machine?

Visual Basic FAQ

[edit] CLR

Does the CLR count as a virtual machine? The CLR is certainly not Intel/Windows specific. kibibu 07:41, 18 October 2005 (UTC)

I would say so, in the same way the JVM for java is a virtual machine. Daedae 15:40, 10 October 2006 (UTC)

Additional information we might use somehow: [1] and [2]. Permission to use the second reference directly is under Public_Domain_Resources/Foldoc_license

 --Hannes Hirzel

[edit] SCUMMVM

Is SCUMMVM really a virtual machine? I was under the impression that it was just an emulator.

The article suggests that emulators can be considered as virtual machines. Dysprosia 07:45, 21 Apr 2004 (UTC)
Which article, Dysprosia? Thanks! Stbey 08:18, 21 Apr 2004 (UTC)
This one :) Dysprosia 08:22, 21 Apr 2004 (UTC)
Sorry, I still don't get it! Do you mean this page, Talk:Virtual_machine? Or SCUMMVM? That page doesn't exist yet. And where does 'it' affirm explicitly that emulators of neural networks can be considered virtual machines? Thanks! Stbey 08:32, 21 Apr 2004 (UTC)
The article, Virtual machine. I don't know about neural networks. Dysprosia 08:40, 21 Apr 2004 (UTC)
SCUMMVM is not related to neural networks--it is an opensource emulator/interpreter that executes the proprietary bytecode used by older LucasArts computer games.[3] -- Bovineone 16:04, 10 May 2007 (UTC)

[edit] Neural networks

Question: What do you think: Can a connectionist model, i.e., a neural network, used to solve some specialized task (e.g. pattern matching, such as optical character recognition, voice or face recognition, etc.), running as an emulation on a digital computer, be considered to be a "virtual machine" as well?

Stbey 08:37, 21 Apr 2004 (UTC)

Found an answer. See under
ftp://archive.cis.ohio-state.edu/pub/neuroprose
the two files
bessiere.innc90.ps.Z . . . . . . Oct 8 1991 31k
bessiere.nerves.ps.Z . . . . . . Oct 8 1991 272k,
"A Virtual Machine Model For Artificial Neural Network Programming".
Stbey 07:19, 22 Apr 2004 (UTC)

[edit] List of virtual machines

It would be nice if we annotate all of them and perhaps split the list into two or three groups. A suggestion is to take the distinction in the article mentioned above

  • Emulation of the underlying raw hardware
  • Emulation of a non-native system

Hirzel 14:57, 18 Jun 2005 (UTC)

[edit] Good reference source

A good reference on the topic, recently published, is Smith and Nair's book Virtual Machines: Versatile Platforms for Systems and Processes (ISBN:1558609105), which mentions the dichotomy in the article. However, it calls them process VMs (things that host applications, like the Java Virtual Machine), and system VMs (things that host operation systems, like VMware).

Perhaps this page should be refactored to take this text into account. Currently, it is one of the major works (excluding papers) on the topic.

--EngineerScotty 03:26, 10 October 2005 (UTC)

[edit] Parallel Virtual Machine

The text says "PVM has become the de facto standard for distributed computing world-wide", however I think MPI (particulary MPICH) is far more common. The fact that MPI is not mentioned at all is rather suspicious. PVM has not been officially updated since 1993 and is largely considered to be discontinued. -- Bovineone 18:57, 15 February 2006 (UTC)

I've renamed the section to be "machine aggregation" and improved NPOV by discussing both PVM and MPI. -- Bovineone 03:31, 13 April 2006 (UTC)

[edit] So what is Xen then?

Hi there. Xen is listed as an Operating system virtualization. However, it is also mentioned in Hypervisor. More generally, the hypervisor article largely applies to what are here called "Operating system virtual machines". What's the difference if any? Thanks. PizzaMargherita 13:39, 16 March 2006 (UTC)

The difference, in my opinion, is that several of the entries on hardware virtualization (VMWare, VirtualPC) are referring to things that essentially run on top of another full machine (hardware+OS). Xen in particular runs directly on the hardware and thus has to have a separate OS installed on it to actually run anything. that is, app | guest os | vmware | host os | hardware versus app | OS | xen | hardware. Daedae 19:46, 1 May 2006 (UTC)

[edit] Redundant definitions?

The article has a section on the "Original meaning", which it says is "much better referred to by using the terms virtualization and virtual servers." Then it gives a separate, distinct definition, the "Hardware virtual machine", which it describes as emulation, paravirtualization, OS-level virtualization, etc. Aren't these the same thing? Wmahan. 22:16, 31 May 2006 (UTC)

I agree, I don't see any difference between those two. -- Bovineone 23:00, 31 May 2006 (UTC)
On the other hand, it announces "Software virtualization can be done in four major ways:", but offers only 3 entries in the list which immediately follows. --Jerome Potts 04:20, 11 November 2006 (UTC)

[edit] Bochs?

Doesn't (for example) Bochs qualify as a VM even though it's classed as an emulator? Where do you draw the line? --Thejaka 08:29, 28 July 2006 (UTC)

[edit] Bytecode execution techniques?

This and virtual machine both don't explain any techniques used to execute bytecode. I've sketched some basic thoughts out on a blog entry of mine at KernelTrap; but I don't know how current day ones operate, if there's generally optimization, if instruction ordering counts, etc.

This interests me because I am curious as to how interpreters work. I could imagine something like Python tokenizing the language directly; whereas CIL is a virtual machine target with a specific definition and is compiled to from an abstract, possibly unrelated language. In the case of Python it would be possible to emit machine-like instructions such as ADD, SUB, MUL, MOV, etc and optimize them; but would that be helpful? Could you optimize any further than directly tokenizing a language?

[edit] IBM VM/CMS

I think the old IBM virtual machine system was called VM. CMS was a simple single user OS you could run on the virtual machine, but OS's such as DOS (no relation to MSDOS), MVS, and UNIX were also run on these virtual machines. Any IBM old-timers out there to confirm this?

I'm not an IBM old-timer, but I know a fair amount about this, and have fixed all this (and created an article for VM, which was an interesting system). I left out this line:
This also enabled IBM to upgrade the hardware, install a new version of the CMS VM,
and thereby allow user programs to take advantage of the new hardware
without being rewritten.
...because I'm not sure if it's true. My impression is that that the basic 360 architecture is what the user code sees, and it hasn't really changed. I don't think VM emulates the fine details (the kind an OS would notice) of an older IBM mainframe on the newer ones, though, which is kind of what this text implies. Noel 14:23, 9 Sep 2003 (EDT)
You're right, that's what it implies, and it's incorrect. What made hardware swapouts work was the continuous upgrade path from the S/360s on up to today's machines, not some magical layer in CMS (or in CP, as noted correctly below). RossPatterson 23:14, 11 November 2006 (UTC)
IBM's VM was made up of several components primarily, CP - the control program, and CMS, a single user environment (CMS in of itself is a full blown operating system, though eventually it became tied to running under CP and could not run natively).
CP is really the component that provides the virtual machine environment. While there is some emulation of CPU instructions, for the most part CP did not "emulate" the instruction set. CP's primary areas of emulation were the I/O environment, and simulating privileged CPU instructions. Current versions of VM rely on hardware virtualization support to assist in the processing of privilaged instructions. For the most part, as long as the "external state" of the guest system doesn't change, the hardware virtualization support handles processing the guests instructions at native speed. It is only when the state of the guest system changes in areas that require simulation (such as certain I/O instructions, page faults at the virtual machine level, etc.) or when the guest "ends its timeslice" does CP get involved. —Preceding unsigned comment added by 65.102.209.174 (talk) 05:57, 18 January 2006
You can run on VM any OS which is able to run on IBM mainframe hardware. So, no Unix (for example, you cannot IBM's AIX), except Linux, which has been ported to such HW. --Jerome Potts 05:27, 11 November 2006 (UTC)

Isn't VM for IBM OS/390 the one that can be used to run Linux on a mainframe? And wasn't it this VM (according to an article on - I think it was - Slashdot) that they got 30,000 Linux's running at the same time, on a single mainframe? And isn't this the ideal solution for web hosting, minimizing administration costs and yet offering a separate Linux host with its own root password to each client? Stbey 08:51, 21 Apr 2004 (UTC)

VM and OS/390 are two separate IBM mainframe OSes. The one which can run Linux as a guest OS is VM. Incidentally, you can also run OS/390 as a guest on VM, but not the other way around. Yes, you can run many many Linuces on a VM, depending on how big and powerful a computer you're running VM on. --Jerome Potts 05:27, 11 November 2006 (UTC)
According to IBM AIX (operating system), you can not only run AIX/370 under VM, this is the only way to run it. Notinasnaid 15:23, 20 November 2006 (UTC)

[edit] Correct Definition??

"In computer science, a virtual machine is software that creates a virtualized environment between the computer platform so that the end user can operate software."

--This sentence does not make sense. Between the computer platform and what exactly??

--You are right, the definition didn't make a lot of sense. The whole "definitions" section was quite confused and imprecise. I have re-written it to be in line with the scientific literature, and have attempted to define the terms clearly. Someone who knows PVM and MPI better than me should check that their description is correct.

I removed Plan 9 (has nothing to do with this) and gCore (which is *hardware*, just the opposite of virtualization). Heiser 06:44, 21 October 2007 (UTC)

[edit] Virtual machine and portability

Comments above assert that an (application) virtual machine must be platform independent, and that, for this reason, the environment for executing Visual Basic p-code (for example) would not count as a virtual machine. I do not think this is accurate; such environments have been considered virtual machines for decades. The fact that a given virtual machine is localized in a particular hardware or software environment does not reduce its 'virtualness' (though it can certainly make it less interesting). Most interpreter-based systems, and in particular p-code systems and state machines, can be regarded as defining (application) virtual machines. Platform-independence is of course an important aspect of such systems. But their salient characteristic is reliance on an abstraction layer that hides or encapsulates implementation details. One can define such a layer, and implement its behavior, in either portable or non-portable ways.

The progenitor of virtual machine environments, IBM's CP/CMS, was of course hardware-specific, as are any x86 virtualization efforts; but that's a different topic. Trevor Hanson 06:05, 21 November 2006 (UTC)

[edit] VMs and interpreters

I just reverted a change that removed this text: The application is run on the computer using an interpreter or Just In Time compilation with User:Hackwrench's comment "A virtual machine is fundamentally different from an interpreter." However, the cited example (Java VM) is implemented with an interpreter, as have been many other VMs such as Smalltalk and p-code platforms.

This is of course a different use of the term virtual machine from the one most typically used today (hence the label "application virtual machine"). However, for decades the term has been applied to abstracted platforms like those just mentioned. I think that this issue isn't fully addressed in the current article text; but the topic should probably be discussed here before removing text. Trevor Hanson 19:01, 5 February 2007 (UTC)

That's just it. Using the Dragon books as a guide, the definition of interpreted in a technical sense is different from what it is as used in a colloquial sense and Java is interpreted only in the colloquial sense. Having that line there only serves to confuse people regardless of what your personal take on what "interpreted" means. The use of the term "interpreted" is inaccurate at p-code as well. Furthermore, the article at interpreter doesn't address the duality. Hackwrench 03:06, 6 February 2007 (UTC)

See the replies to http://pinderkent.blogsavy.com/archives/48 Hackwrench 03:16, 6 February 2007 (UTC)

[edit] VMWare workstion on fedora Core 6

I tried to install VMWare workstion on fedora Core 6, It cannot open because there is a xen file missing how do I correct this problem—The preceding unsigned comment was added by 66.176.27.91 (talk • contribs).

Wikipedia is not suitable for asking technical support questions. -- Bovineone 16:06, 10 May 2007 (UTC)

[edit] Uses

Perhaps a section (in layman's terms) explaining what VM's are for and perhaps a paragraph or two given a simpler explanation as the article is rather technical. 89.240.13.111 18:51, 3 July 2007 (UTC)

--Better now? Heiser 06:45, 21 October 2007 (UTC)

[edit] ARM

I just undid the change someone did (they replaced the TrustZone reference with one to Jazelle). Jazelle provides support for executing Java bytecode, which is a form of language support, not VM support. TrustZone provides a (very limited) form of system virtuzliation (only a single VM). -- Heiser (talk) 23:04, 30 January 2008 (UTC)

[edit] Microsoft Hyper-V

I think the page should be updated with references to Microsoft Hyper-V technology shipped with Windows Server 2008. 213.203.130.231 (talk) 08:46, 10 April 2008 (UTC)

[edit] Two separate meanings

As usual with compsci vs. market, the article covers two different - but overlapping - topics. I've never ever heard in compsci that "machine" should refer to "computer environment", but instead to "processor", "CPU". Now we have a classic computer confusion, one real academic meaning, well defined and practical, and a fuzzy market meaning covering anything that entails at least partial replacement of some bytes of code here and there before executing the executable... Now, if accepting the marketroid fuzzification as "virtual machines", what is it in a normal jump address relocation performed at ELF loading, that makes the ELF-loader not being a "virtual machine"? If accepting non-academic definitions on this-or-that compsci concept, then we'll end up in a situation when "virtual machine, anything is a virtual machine"; not very helpful!

Now, my compsci whining aside, the article should be parted into virtual machine, and environment virtualization in the long run. We should try to find and document the original definition, and reflect around deviant meanings and market buzz "meanings", in order to treat the topic more concizely. In the List of virtual machine software the subsection OS-level virtualization software does absolutely not belong. The subsection is good and fine, but should be elsewhere to not cause confusion. It might occur that the two meanings are so intertwined that the article can't be split into two, but either way, the contents become more clarified. Said: Rursus 06:30, 6 May 2008 (UTC)

And the current definition is incorrect and malfunct, because of what I said in next-to-prev para. Said: Rursus 07:42, 6 May 2008 (UTC)