Timeline of virtualization development

(Learn how and when to remove this message)

The following is about 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.

1960s

In the mid-1960s, IBM's Cambridge Scientific Center develops CP-40, the first version of CP/CMS. Experience on the CP-40 project provides input to the development of the IBM System/360 Model 67, announced in 1965. CP-40 is re-implemented for the S/360-67 as CP-67, and by April 1967, both versions are in daily production use.

1964
1965
1966
1967
1968

1970s

IBM announces the System/370 in 1970. In 1972, IBM announces that virtual memory would be made available on all S/370 models, and also announces several virtual storage operating systems, including VM/370. By the mid-1970s, CP/CMS, VM, and VP/CSS are running on numerous large IBM mainframes.

1971
1972
1973
1977
1979

1980s

1985
1987
1988

1990s

1991
1994
1997
1998
1999

2000s

2000
2001
2003
2005
2006
2007
2008

2010s

2011
2013
2014

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 exists 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:

See also

References

  1. ^ Mell, Emily (April 2, 2020). "The evolution of containers: Docker, Kubernetes and the future". TechTarget. Retrieved January 7, 2023.
  2. ^ Dillenburg, Stefan (May 3, 2020). "A brief history of container virtualization". Medium (website). Retrieved January 7, 2023.
  3. ^ Hess, Ken (August 25, 2011). "Thinking inside and outside the Bochs with Kevin Lawton". zdnet. Retrieved December 3, 2015.
  4. ^ Hochstätter, Christoph H. (March 14, 2007). "Virtuozzo Company History Timeline". zdnet. Retrieved January 7, 2023.
  5. ^ "Standard project directories initialized by cvs2svn. (e63c3dc7) · Commits · QEMU / QEMU · GitLab". February 18, 2003. Retrieved July 23, 2024.
  6. ^ "QEMU 1.0 released [LWN.net]". LWN.net. December 2, 2011. Retrieved July 23, 2024.
  7. ^ "Release Kubernetes v0.2". GitHub.
  8. ^ "Red Hat and Google collaborate on Kubernetes to manage Docker containers at scale". Red hat.
  9. ^ Buhr, Martin. "Everything you wanted to know about Kubernetes but were afraid to ask". Google. Retrieved December 22, 2022.
  10. ^ The Reincarnation of Virtual Machines Archived August 15, 2004, at the Wayback Machine ACM Queue vol. 2, no. 5 – July/August 2004 – by Mendel Rosenblum, Stanford University and VMWare
  11. ^ Application streaming anyone?Archived September 28, 2007, at the Wayback Machine By Brien M. Posey MCSE, Special to ZDNet Asia Wednesday, 14 April 2004 03:55 pm.
  • v
  • t
  • e
Timelines of computing
Computing
Computer science
Software
Internet
Notable people