The following is a timeline of virtualization development. In computing, virtualization is the use of a computer to simulate another computer. Through virtualization, a host simulates a guest by exposing virtual hardware devices, which may be done through software or by allowing access to a physical device connected to the machine.

Timeline

Note: This timeline is missing data for important historical systems, including: Atlas Computer (Manchester), GE 645, Burroughs B5000.

Year 1960

In the mid-1960s, IBM's Cambridge Scientific Center developed 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 Model 67, announced in 1965 (along with its ill-starred operating system, TSS/360). CP-40 was re-implemented for the S/360-67 as CP-67, and by April 1967, both versions were in daily production use. CP/CMS was made generally available to IBM customers in source code form, as part of the unsupported IBM Type-III Library, in 1968.

Year 1964

Year 1965

Year 1966

Year 1967

Year 1968

Year 1971

Year 1970

IBM announced the System/370 in 1970. To the disappointment of CP/CMS users – as with the System/360 announcement – 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/CSS were running on a numerous large IBM mainframes. By the late 80s, there were reported to be more VM licenses than MVS licenses.

Year 1972

Year 1973

Year 1977

Year 1979

Year 1985

Year 1987

Year 1988

Year 1991

Year 1994

Year 1997

Year 1998

Year 1999

On February 8, 1999, VMware introduced the first x86 virtualization product for the Intel IA-32 architecture, known as VMware Virtual Platform, based on earlier research by its founders at Stanford University.

VMware Virtual Platform was based on software emulation with Guest/Host OS design that required all Guest environments be stored as files under the host OS filesystem.

Year 2000

Year 2001

Year 2003

Year 2005

Year 2006

Year 2007

Year 2008

Year 2013

Docker, Inc. releases Docker, a series of platform as a service (PaaS) products that use OS-level virtualization.

Year 2014

Sep 8, 2014 Initially designed by Google, the first public build of Kubernetes was released. When Kubernetes first debuted, it offered a number of advantages over Docker, the most popular containerization platform at the time. The purpose of Kubernetes was to make it simple for users to deploy containerized applications across a sizable cluster of container hosts. In order to offer more features and functionality for managing containerized applications at scale, Kubernetes was created to complement Docker rather than to completely replace it.

Overview of Virtualization

As an overview, there are three levels of virtualization

Application virtualization

Application virtualization solutions such as VMware ThinApp, Softricity, and 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 virtualization is 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 filesystem 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:

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 to function.

Managed runtimes

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 in memory and reclaims the memory without the developer having to explicitly invoke "free" operations.

Neutral view of application virtualization

Given the industry-bias of the past, to be more neutral, there are also two other ways to look at the Application Level:

Further development

Microsoft bought Softricity on July 17, 2006, and popularized Application Streaming, giving traditional Windows applications a level playing field with Web and Java applications with respect to the ease of distribution (i.e. no more setup required, just click and run). Soon every JRE and CLR can run virtually in user mode, without kernel mode drivers being installed, such that there can even be multiple versions of JRE and CLR running concurrently in RAM.

The integration of the Linux Hypervisor into the Linux Kernel and that of the Windows Hypervisor into the Windows Kernel may make rootkit techniques such as the filter driver obsolete[failed verification]. This may take a while as the Linux Hypervisor is still waiting for the Xen Hypervisor and VMware Hypervisor to be fully compatible with each other as Oracle impatiently pounding at the door to let the Hypervisor come into the Linux Kernel so that it can full steam ahead with its Grid Computing life. Meanwhile, Microsoft have decided to be fully compatible with the Xen Hypervisor . IBM, of course, doesn't just sit idle as it is working with VMware for the x86 servers, and possibly helping Xen to move from x86 into Power ISA using the open source rHype. Now, to make the Hypervisor party into a full house, Intel VT-x and AMD-V are hoping to ease and speed up para-virtualization so that a guest OS can be run unmodified. [needs update] [clarification needed]