1 / 11

Virtual machine

Virtual machine. In general terms, a virtual machine in computer science is software that creates a virtualized environment between the computer platform and the end user in which the end user can operate software. Definitions.

masao
Télécharger la présentation

Virtual machine

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Virtual machine In general terms, a virtual machine in computer science is software that creates a virtualized environment between the computer platform and the end user in which the end user can operate software.

  2. Definitions • Specifically, the term virtual machine has several distinct meanings: • Original meaning • The original meaning of virtual machine is that of a number of different identical execution environments on a single computer, each of which exactly emulates the host computer. • This provides each user with the illusion of having an entire computer, but one that is their "private" machine, isolated from other users, all on a single physical machine. • This is nowadays much better referred to by using the terms virtualization and virtual servers. The host software which provides this capability is often referred to as a virtual machine monitor or hypervisor.

  3. Application virtual machine • The second, and now more common, meaning of virtual machine is a piece of computer software that isolates the application being used by the user from the computer. Because versions of the virtual machine are written for various computer platforms, any application written for the virtual machine can be operated on any of the platforms, instead of having to produce separate versions of the application for each computer and operating system. The application is run on the computer using an interpreter or Just In Time compilation. • One of the best known examples of an application virtual machine is Sun Microsystem's Java Virtual Machine.

  4. Hardware virtual machine • The term virtual machine is now also used to refer to the environment created by an emulator, where software is used to emulate an operating system for the end user. This is done to allow applications written for one OS to be executed on a machine which runs a different OS; or to provide execution "sandboxes" which provide a greater level of isolation between processes than is achieved when running multiple processes on the same instance of an OS. • This can be done using three major ways: • full virtualization — the virtual machine simulates the complete hardware, allowing an unmodified OS for a completely different CPU to be run. • paravirtualization — the virtual machine does not simulate hardware but instead offers a special API that requires OS modifications. • native virtualization — the virtual machine only partially simulates enough hardware to allow an unmodified OS to be run in isolation, but the guest OS must be designed for the same type of CPU.

  5. Machine aggregation • A less common use of the term is to refer to a computer cluster consisting of many computers that have been aggregated together as a larger and more powerful "virtual" machine. • In this case, the software allows a single environment to be created spanning multiple computers, so that the end user appears to be using only one computer rather than several. • PVM (Parallel Virtual Machine) and MPI (Message Passing Interface) are two common software packages that permits a heterogeneous collection of Unix and/or Windows computers hooked together by a network and used as a single large parallel computer. • Thus large computational problems can be solved more cost effectively by using the aggregate power and memory of many computers.

  6. Emulation of the underlying raw hardware (native virtualization) • Since each user can run whatever operating system they want, this type of virtual machine allows users to do things like run two different operating systems (sometimes referred to as "guests") on their "private" virtual computers. • Also, experimental new versions of operating systems can be run at the same time as older, more stable, versions, each in a separate virtual machine. The process can even be recursive; IBM debugged new versions of its virtual machine operating system, VM, in a virtual machine running under an older version of VM. • One early user of this concept was the IBM VM/CMStime-sharing product, which used a relatively simple interactive computing single-user operating system, CMS, which ran on top of VM. In that way, CMS could be written simply, as if it were running alone, and the VM operating system quietly provided multitasking and resource management services behind the scenes. • Not all VM users had to run CMS, though; some preferred to run some form of OS/360 (or eventually MVS) in one or more virtual machines, to provide traditional batch processing services to those users who wanted that. VM is still used today on IBM mainframes, and in some which are used as Web servers, the operating system running in each of many virtual machines is Linux. • The VMware, Parallels Workstation, and SVISTA packages do the same thing on modern PCs, trapping all hardware accesses and simulating all of a motherboard except for the processor. • On the other hand, plex86 can run only Linux under Linux using a specific patched kernel. • It does not emulate a processor, but uses bochs for emulation of motherboard devices. • The x86processor architecture as used in modern PCs does not actually meet the Popek and Goldberg virtualization requirements. • Notably, there is no execution mode where all sensitive machine instructions always trap, which would allow per-instruction virtualization. As a result, VMware and similar virtualization software for the x86 must dynamically recompile privileged mode code. This technique incurs some performance overhead as compared to a VM running on a natively virtualizable architecture such as the IBM System/370 or Motorola MC68020. Intel and AMD have each announced plans to add x86 virtualization capabilities to future x86 processors (see Vanderpool).

  7. Emulation of a non-native system • Virtual machines can also perform the role of an emulator, allowing software applications and operating systems written for another computer processor architecture to be run. • Some virtual machines emulate hardware that only exists as a detailed specification. For example: • One of the first was the p-Code machine specification, which allowed programmers to write Pascalprograms that would run on any computer running virtual machine software that correctly implemented the specification. • The specification of the Java virtual machine. • The Common Language Infrastructure virtual machine at the heart of the Microsoft .NET initiative. • This technique allows diverse computers to run any software written to that specification; • only the virtual machine software itself must be written separately for each type of computer on which it runs.

  8. List of hardware with virtual machine support • AMDPacifica • Freescale MPC8641D • IBMSystem/370, System/390, and zSeries mainframes • IntelVanderpool

  9. List of virtual machine softwareApplication virtualization • Common Language Runtime - C#, Visual Basic .NET, J#, Managed C++ • Corn concurrent runtime machine - Corn language • Forth virtual machine - Forth • Glulx - Glulx, Z-code • Inferno - Limbo • Java virtual machine - Java, Nice, NetREXX • Low Level Virtual Machine (LLVM) - currently C, C++, Stacker • Lua • Macromedia Flash Player - SWF • MMIX - MMIXAL • Neko virtual machine - currently Neko and haXe • O-code machine - BCPL • P-Code_machine - Pascal • Parrot - Perl 6 • Perl virtual machine - Perl • Portable.NET - C#, Visual Basic .NET, J#, Managed C++ • ScummVM - Scumm • SECD machine - ISWIM, Lispkit_Lisp • Smalltalk virtual machine - Smalltalk • Sqlite virtual machine - Sqlite opcodes • Squeak virtual machine - Squeak • TrueType virtual machine - TrueType • Valgrind - checking of memory acesses and leaks in x86/x86_64 code unter Linux • vx32 virtual machine - application-level virtualization for native code • VP Virtual Processor from Tao Group (UK). • Waba - Virtual machine for small devices, similar to Java • Warren Abstract Machine - Prolog • Z-machine - Z-Code • Zend engine - PHP

  10. List of virtual machine softwareHardware virtualization • Bochs, portable open source x86 and AMD64 PCs emulator • CoLinux Open Source Linux inside Windows • FAUmachine • Microsoft Virtual PC • Microsoft Virtual Server • OpenVZ Open Source Virtual Machine with Hypervisor. • Parallels Workstation • QEMU • SVISTA • TRANGO real-time embedded hypervisor • twoOStwo • User-mode Linux • VM from IBM, apparently the first true virtual machine system and still in wide use today. • VMWare • Xen • ATL (A MTL Virtual Machine)

More Related