- Timeline of virtualization development
Note: This timeline is missing data for important historical systems, including:
Atlas Computer (Manchester), GE 645, Burroughs B5000
Cambridge Scientific Centerbegins development of CP-40.
IBM M44/44X, experimental paging system, in use at Thomas J. Watson Research Center.
** IBM announces the
IBM System/360-67, a 32-bit CPU with virtual memory hardware (August 1965).
** IBM ships the S/360-67 computer in June 1966
** IBM begins work on CP-67, a reimplementation of CP-40 for the S/360-67.
** CP-40 (January) and CP-67 (April) go into production time-sharing use.
CP/CMSinstalled at eight initial customer sites.
** CP/CMS submitted to
IBM Type-III Libraryby MIT's Lincoln Laboratory, making system available to all IBM S/360 customers at no charge in source code form.
** Resale of CP/CMS access begins at
time-sharingvendor National CSS(becoming a distinct version, eventually renamed VP/CSS).
System/370announced (June) – "without" virtual memory.
** Work begins on CP-370, a complete reimplementation of CP-67, for use on the System/370 series.
System/370shipped: S/370-155 (January).
** Announcement of virtual memory added to
** VM/370 announced – and running on announcement date. VM/370 includes the ability to run VM under VM (previously implemented both at IBM and at user sites under CP/CMS, but not made part of standard releases).
** First shipment of announced virtual memory S/370 models (April: -158, May: -168).
** [ongoing history of VM family and
** October 9, 1985: Announcement of the
Intel 80286-based AT&T 6300+ with Simultask, a virtual machine monitordeveloped by Locus Computing Corporationin collaboration with AT&T, that enabled the direct execution of an Intel 8086guest operating system under a host Unix System V Release 2 OS. Although the product was marketed with Microsoft MS-DOSas the guest OS, in fact the Virtual Machine could support any realmodeoperating system or standalone program (such as Microsoft Flight Simulator) that was written using only valid 8086 instructions (not instructions introduced with the 80286). Locus subsequently developed this technology into their "Merge" product line.
** January 1987: A "product evaluation" version of Merge/386 from
Locus Computing Corporationwas made available to OEMs. Merge/386 made use of the Virtual 8086 modeprovided by the Intel 80386processor, and supported multiple simultaneous virtual 8086 machines. The virtual machines supported unmodified guest operating systems and standalone programs such as Microsoft Flight Simulator; but in typical usage the guest was MS-DOS with a Locus proprietary redirector (also marketed for networked PCs as "PC-Interface") and a "network" driver that provided communication with a regular user-mode file server process running under the host operating system on the same machine.
** October 1987: Retail Version 1.0 of Merge/386 began shipping, offered with
MicroportUnix System V Release 3.
SoftPC1.0 for Sun was introduced in 1988 by Insignia Solutions [http://computing-dictionary.thefreedictionary.com/Insignia+Solutions,+Inc.]
SoftPCappears in its first version for Apple Macintosh. These versions (Sun and Macintosh) have only support for DOS.
** First version of
Virtual PCfor Macintosh platform was released in June 1997 by Connectix
** October 26, 1998,
VMwarefiled for a patent on their techniques, which is granted as U.S. Patent 6,397,242 [http://patft.uspto.gov/netacgi/nph-Parser?patentnumber=6,397,242]
** February 8, 1999, VMware introduced VMware Virtual Platform for the Intel IA-32 architecture.
** IBM announces
z/VM, new version of VM for IBM's 64-bit z/Architecture
** June, Connectix launchs its first version of Virtual PC for Windows. [http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2001/04/30/BU186669.DTL&type=business]
** July, VMWare created the first
x86server virtualization product. [http://www.vmware.com/news/releases/gsx_win_release.html]
** February 18, 2003, Microsoft acquired virtualization technologies (Virtual PC and unreleased product called "Virtual Server") from Connectix Corporation. [http://www.microsoft.com/presspass/press/2003/Feb03/02-19PartitionPR.mspx]
** Late 2003, EMC acquired VMware for $635 million.
** Late 2003, VERITAS acquired Ejascent for $59 million.
** [http://www.microsoft.com/presspass/press/2003/nov03/11-10VPC2004RTMPR.mspx November 10, 2003]
Microsoftreleases Microsoft Virtual PC, which is machine-level virtualization technology, to ease the transition to Windows XP.
** HP releases
Integrity Virtual Machines1.0 and 1.2 which ran only HP-UX
** [http://www.vmware.com/news/releases/player_beta.html October 24, 2005] VMware releases
VMware Player, a free player for virtual machines, to the masses.
** [http://www.vmware.com/news/releases/server.html July 12, 2006] VMware releases
VMware Server, a free machine-level virtualization product for the server market.
** Microsoft Virtual PC 2006 is released as a free program, also in July.
** [http://www.microsoft.com/presspass/press/2006/jul06/07-17SoftricityPR.mspx July 17, 2006]
** [http://www.vmware.com/news/releases/uvac_winners.html August 16, 2006] VMware announces of the winners of the virtualization appliance contest.
** [http://biz.yahoo.com/prnews/060926/sftu096.html?.v=70 September 26, 2006]
** HP releases
Integrity Virtual MachinesVersion 2.0, which supports Windows Server 2003, CD and DVD burners, tape drives and VLAN.
** [http://www.virtualiron.com/news_events/releaseDate-121106_Version3_1.cfm December 11, 2006]
Virtual Ironreleases Virtual Iron 3.1, a free bare metal virtualization product for enterprise server virtualization market.
** [http://www.virtualbox.org/wiki/News January 15, 2007] [http://www.innotek.de/ innoTek] released
VirtualBoxOpen Source Edition (OSE), the first professional PC virtualization solution released as open source under the GNU General Public License ( GPL). It includes some code from the Qemuproject.
** [http://www.vmware.com/company/news/releases/thinstall.html January 15, 2008] [http://www.vmware.com/ VMware, Inc.] announced it has entered into a definitive agreement to acquire [http://www.thinstall.com/ Thinstall] , a privately-held
application virtualizationsoftware company.
** [http://www.sun.com/aboutsun/pr/2008-02/sunflash.20080212.1.xml February 12, 2008]
Sun Microsystemsannounced that it had entered into a stock purchase agreement to acquire [http://www.innotek.de/ innotek] , makers of VirtualBox.
** In April,
VMwarereleases VMware Workstation6.5 beta, the first program for Windows and Linux to enable DirectX 9 accelerated graphics on Windows XP guests [http://www.vmware.com/products/beta/ws/releasenotes_ws65_beta.html] .
In the mid 1960s, IBM's
Cambridge Scientific Centerdeveloped CP-40, the first version of CP/CMS. It went into production use in January 1967. From its inception, CP-40 was intended to implement full virtualization. Doing so required hardware and microcode customization on a S/360-40, to provide the necessary address translation and other virtualization features. Experience on the CP-40 project provided input to the development of the IBM System/360-67, announced in 1965 (along with its ill-starred operating system, TSS/360). CP-40 was reimplemented for the S/360-67 as CP-67, and by April 1967, both versions were in daily production use. CP/CMSwas made generally available to IBM customers in source code form, as part of the unsupported IBM Type-III Library, in 1968.
IBM announced the
System/370in 1970. To the disappointment of CP/CMSusers – as with the System/360announcement – the series would not include virtual memory. In 1972, IBM changed direction, announcing that the option would be made available on all S/370 models, and also announcing several virtual storage operating systems, including VM/370. By the mid-1970s, CP/CMS, VM, and the maverick VP/CSSwere running on a numerous large IBM mainframes. By the late 80s, there were reported to be more VM licenses than MVSlicenses.
February 8, 1999, VMware introduced the first x86 virtualizationproduct, "VMware Virtual Platform", based on earlier research by its founders at Stanford University.
Free desktop virtualization
Previously, a substantial licensing fee was required for the use of VMware's Workstation product. VMware decided to provide high quality virtualization technology to everyone for free. They omitted the ability to create virtual machines and did not distribute the acceleration tools that come with VMware workstation. This early corporate play to encourage consumer applications of virtualization went largely unnoticed.
Virtualizationhas a new level of playing field in Application Virtualizationand Application Streaming.
VMwarereleases VMware Workstation6.5 beta, the first program for Windows and Linux to enable DirectX 9 accelerated graphics on Windows XP guests [http://www.vmware.com/products/beta/ws/releasenotes_ws65_beta.html] .
As an overview, there are three levels of virtualization:
* At the hardware level, the VMs can run multiple guest OSes. This is best used for testing and training that require networking interoperability between more than one OSes, since not only the guest OS can be different than the host OS, it can run as many guest OS as long as there is enough CPU, RAM and HDD space.
IBMintroduced this around 1990 under the name logical partitioning(LPAR), at first only in the mainframe field.
* At the operating system level, it can only virtualize one OS: the guest OS is the host OS. This is similar to having many terminal server sessions without locking down the desktop. Thus, this is the best of both world, having the speed of a TS session with the benefit of a full access to the desktop as virtual machine, where the user can still control the quotas for CPU, RAM and HDD. Similar to the hardware level, this is still consider a Server Virtualization where each guest OS has its own IP address, so it can be used for networking applications such as for web hosting.
* At the application level, it is running on the Host OS directly, without any guest OS, which can be in a locked down desktop, including in a terminal server session. This is called Application Virtualization or Desktop Virtualization, which virtualizes the front-end, whereas Server Virtualization virtualizes the back-end. Now, Application Streaming refers to delivering applications directly onto the desktop and running them locally. Traditionally in terminal server computing, the applications are running on the server, not locally, and streaming the screenshots onto the desktop.
Application Virtualization solutions such as
VMware ThinApp, [http://www.softricity.com Softricity] , and [http://www.trigence.com/ Trigence] attempt to separate application specific files and settings from the host operating system, thus allowing them to run in more-or-less isolated sandboxes without installation and without the memory and disk overhead of full machine virtualization. Application Virtualizationis tightly tied to the host OS and thus does not translate to other operating systems or hardware. VMware ThinApp and Softricity are Intel Windows centric, while Trigence supports Linux and Solaris. Unlike machine virtualization, Application virtualization does not use code emulation or translation so CPU related benchmarks run with no changes, though fileystem benchmarks may experience some performance degradation. On Windows, VMware ThinApp and Softricity essentially work by intercepting filesystem and registry requests by an application and redirecting those requests to a preinstalled isolated sandbox, thus allowing the application to run without installation or changes to the local PC. Though VMware ThinApp and Softricity both began independent development around 1998, behind the scenes VMware ThinApp and Softricity are implemented using different techniques:
* VMware ThinApp works by packaging an application into a single "packaged" EXE which includes the runtime plus the application data files and registry. VMware ThinApp’s runtime is loaded by Windows as a normal Windows application, from there the runtime replaces the Windows loader, filesystem, and registry for the target application and presents a merged image of the host PC as if the application had been previously installed. VMware ThinApp replaces all related API functions for the host application, for example the ReadFile API supplied to the application must pass through VMware ThinApp before it reaches the operating system. If the application is reading a virtual file, VMware ThinApp handles the request itself otherwise the request will be passed on to the operating system. Because VMware ThinApp is implemented in user-mode without device drivers and it does not have a client that is preinstalled, applications can run directly from USB Flash or network shares without previously needing elevated security privileges.
* Softricity (acquired by Microsoft) operates on a similar principle using device drivers to intercept file request in ring0 at a level closer to the operating system. Softricity installs a client in Administrator mode which can then be accessed by restricted users on the machine. An advantage of virtualizing at the kernel level is the Windows Loader (responsible for loading EXE and DLL files) does not need to be reimplemented and greater application compatibility can be achieved with less work (Softricity claims to support most major applications). A disadvantage for ring0 implementation is it requires elevated security privileges to be installed and crashes or security defects can occur system wide rather than being isolated to a specific application.Because Application Virtualization runs all application code natively, it can only provide security guarantees as strong as the host OS is able to provide. Unlike full machine virtualization, Application virtualization solutions currently do not work with device drivers and other code that runs at ring0 such as virus scanners. These special applications must be installed normally on the host PC in order to function.
Another technique sometimes referred to as virtualization, is portable byte code execution using a standard portable native runtime (aka Managed Runtimes). The two most popular solutions today include Java and
.NET. These solutions both use a process called JIT(Just in time) compilation to translate code from a virtual portable machine language into the local processor’s native code. This allows applications to be compiled for a single architecture and then run on many different machines. Beyond machine portable applications, an additional advantage to this technique includes strong security guarantees. Because all native application code is generated by the controlling environment, it can be checked for correctness (possible security exploits) prior to execution. Programs must be originally designed for the environment in question or manually rewritten and recompiled to work for these new environments. For example, one cannot automatically convert or run a Windows / Linux native app on .NET or Java. Because portable runtimes try to present a common API for applications for a wide variety of hardware, applications are less able to take advantage of OS specific features. Portable application environments also have higher memory and CPU overheads than optimized native applications, but these overheads are much smaller compared with full machine virtualization. Portable Byte Code environments such as Java have become very popular on the server where a wide variety of hardware exist and the set of OS-specific APIs required is standard across most Unix and Windows flavors. Another popular feature among managed runtimes is garbage collection, which automatically detects unused data and reclaims it without the developer having to explicitly invoke free operations.
Neutral view of application virtualization
Given the [http://en.wikipedia.org/w/index.php?title=Virtualization_Development&oldid=76696530 industry-biased in the past] , to be more neutral, there are also two other ways to look at the Application Level:
* The first type is application packagers (VMware ThinApp, Softricity) whereas the other is application compilers (Java and Dot Net). Because it is a packager, it can be used to stream applications without modifying the source code, whereas the latter can only be used to compile the source code.
* Another way to look at is through the
Hypervisorpoint of view. The first one is "hypervisor" in user mode, whereas the other is "hypervisor" in runtime mode. The hypervisor was put in quotation, because both of them have similar behavior in that it intercepts system calls in different mode: user mode and runtime mode. The user mode intercepts the system calls from the runtime mode before going to kernel mode. The real hypervisor only needs to intercept the system call using [http://wiki.xensource.com/xenwiki/hypercall hypercall] in kernel mode. Hopefully, once Windows have a Hypervisor, Virtual machine monitor, there may even be no need for JRE and CLR. Moreover, in Linux case, maybe the JREcan be modified to run on top of the Hypervisor as a loadable kernel modulerunning in kernel mode, instead of the having the legacy runtime turtling around, running really slowly, in user mode. Now, if it were running on top of the Linux Hypervisordirectly, then it should be called Java OS, not just another runtime mode JIT.
Mendel Rosenblum[ [http://acmqueue.com/modules.php?name=Content&pa=showpage&pid=168 The Reincarnation of Virtual Machines] ACM Queue vol. 2, no. 5 - July/August 2004 -- by Mendel Rosenblum, Standford University and VMWare] called the runtime mode as High-level language virtual machines in August 2004. However, at that time, the first type, intercepting system calls in user mode, was irresponsible and unthinkable, so he didn't mention it on his article. Hence, Application Streamingwas still mysterious in 2004. [ [http://www.zdnetasia.com/insight/software/0,39044822,39175522,00.htm Application streaming anyone?] By Brien M. Posey MCSE, Special to ZDNet Asia Wednesday, April 14 2004 03:55 PM.] Now, when the JVM, no longer High-level language virtual machines, becomes Java OSrunning on Linux Hypervisor, then Java Applications will have a new level of playing field, just as Windows Applications already has with Softricity.
* In summary, the first one is virtualizing the
Binary Codeso that it can be installed once and run anywhere, whereas the other is virtualizing the Source Codeusing Byte codeor Managed codeso that it can be written once and run anywhere. Both of them are actually partial solution to portability problem: application portability and source code portability. Maybe it is time to combine the two problems into one complete solution at the hypervisorlevel in the kernel mode.
However, the mysterious
Application Streamingwill soon become very popular, because Microsofthad just bought Softricityon [http://www.microsoft.com/presspass/press/2006/jul06/07-17SoftricityPR.mspx July 17, 2006] . Because of this, Traditional Rich Windows Applications will have a new level of playing field with the Web Applications and the Java Applications with respect to the ease of distributions (i.e. no more setup required, just click and run). Soon the frowned-upon will become the cheered-upon as every JREand CLR will just be running virtually on the user mode without kernel mode drivers being installed and updated such that there can even be multiple versions of JREand CLR in HDD as well as in RAM.
Nevertheless, this frowned and cheered-upon
Rootkittechnique such as filter driver[ [http://www.microsoft.com/whdc/driver/filterdrv/default.mspx File System Filter Driver] ] maybe made obsolete once the Linux Hypervisoris integrated into the Linux Kerneland the Window Server Virtualizationintegrates the Windows Hypervisorwith the Windows Kernel. This may take a while as the Linux Hypervisor are still waiting for the Xen Hypervisorand VMware Hypervisorto be [http://www.eweek.com/article2/0,1895,1994793,00.asp fully compatible with each other] as Oracle [http://www.eweek.com/article2/0%2C1895%2C1996904%2C00.asp impatiently pounding at the door] to let the Hypervisor come into the Linux Kernel so that it can full steam ahead with its Grid Computinglife. Meanwhile, Microsofthave made their choice to be fully compatible with the Xen Hypervisor[http://www.eweek.com/article2/0,1895,1990366,00.asp] . IBM, of course, doesn't just [http://news.zdnet.com/2100-3513_22-5588129.html sit idle] as it is working with VMware for the x86 servers, and possibly helping Xen to move from x86 into IBM's POWER using the open source rHype.Now, to make the Hypervisorparty to become a full house, Intel's Vanderpool and AMD's Pacifica are hoping to ease and speed up paravirtualization so that guest OS can be run unmodified.
X86 virtualization— hardware-assisted virtualization.
Virtual machine monitor
Comparison of virtual machines
Operating system-level virtualization
Comparison of Application Virtual Machines
Virtual Tape Library
IBM SAN Volume Controller
* [http://networkcomputing.com/article/printFullArticle.jhtml;jsessionid=UIMHZ2V1NMPRKQSNDLRSKHSCJUNN2JVN?articleID=192202544 Application Virtualization: Streamlining Distribution]
August 31, 2006-- By James Drews
* [http://acmqueue.com/modules.php?name=Content&pa=showpage&pid=168 The Reincarnation of Virtual Machines] ACM Queue vol. 2, no. 5 - July/August 2004 -- by Mendel Rosenblum, Standford University and VMWare
* [http://www.xensource.com/files/xensource_wp.pdf#search=%22xen%20art%20of%20virtualization%22 Xen—the Art of Virtualization] from co-author [http://research.microsoft.com/~tharris/papers/2003-sosp.pdf Tim Harris] Microsoft Research Cambridge (UK)
* [http://www.microsoft.com/whdc/system/platform/virtual/default.mspx Windows Virtualization] from Microsoft
* [http://www.virtualiron.com/products/index.cfm Virtual Iron Native Virtualization] from Virtual Iron
* [http://www.vmware.com/pdf/virtualization.pdf#search=%22hypervisor%20VMware%20virtualization%20layer%22 Virtualization Overview] from VMware
* [http://www.kernelthread.com/publications/virtualization/ An introduction to Virtualization]
* [http://www.jsequeira.com/cgi-bin/virtualization/ Virtualization Faceted Wiki]
* [http://rentzsch.com/notes/virtualizationAsAnAntivirus Weblog post] on the how virtualization can be used to implement
Mandatory Access Control.
* [http://research.ihost.lv/osihpa-hensbergen.pdf The Effect of Virtualization on OS Interference] in PDF format.
* [http://www.beagle-ears.com/lars/engineer/comphist/ibm360.htm VM/360 history]
* [http://www.multicians.org/thvv/360-67.html VM/360 history]
* [http://www.virtualbox.org/ VirtualBox]
Wikimedia Foundation. 2010.
Look at other dictionaries:
Development of Windows Vista — This article is part of a series on Windows Vista New features Overview Technical and core system Security and safety Networking technologies I/O technologies Management and administration Removed features … Wikipedia
Hardware-assisted virtualization — In computing, hardware assisted virtualization is a platform virtualization approach that enables efficient full virtualization using help from hardware capabilities, primarily from the host processors. Full virtualization is used to simulate a… … Wikipedia
Symantec — Corporation Type Public (NASDAQ: SYMC) Industry Computer software … Wikipedia
OS/2 — A typical OS/2 Warp 4 desktop Company / developer IBM Microsoft … Wikipedia
History of operating systems — The history of computer operating systems recapitulates to a degree the recent history of computer hardware. Operating systems (OSes) provide a set of functions needed and used by most application programs on a computer, and the linkages needed… … Wikipedia
Itanium — 2 processor Produced From mid 2001 to present Common manufacturer(s) Intel Max. CPU c … Wikipedia
Macintosh — This article is about Apple personal computers. For other uses, see McIntosh. The original Macintosh, the first commercially successful personal computer to use a graphical user interface, rather than a command line … Wikipedia
Windows 7 — Part of the Microsoft Windows family … Wikipedia
Solaris (operating system) — Solaris Company / developer Oracle Corporation Programmed in C OS family Unix … Wikipedia
Windows 9x — Windows 4.x redirects here. For the operating system in the NT family, see Windows NT 4.0. Windows 9x Screenshot of Windows 95, the first version of Windows in the 9x series Company / developer … Wikipedia