Timeline of virtualization development

Source: Wikipedia, the free encyclopedia.

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

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

  • IBM Cambridge Scientific Center begins development of CP-40.

Year 1965

Year 1966

  • IBM ships the S/360-67 computer in June 1966.
  • IBM begins work on CP-67, a re-implementation of CP-40 for the S/360-67.

Year 1967

  • CP-40 (January) and CP-67 (April) go into production time-sharing use.

Year 1968

  • CP/CMS installed at eight initial customer sites.
  • CP/CMS submitted to IBM Type-III Library by 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-sharing vendor National CSS (becoming a distinct version, eventually renamed VP/CSS).

Year 1971

Year 1970

IBM announced 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 numerous large IBM mainframes. By the late 80s, there were reported to be more VM licenses than MVS
licenses.

Year 1972

Year 1973

  • First shipment of announced virtual memory S/370 models (April: -158, May: -168).

Year 1977

  • Initial commercial release of VAX/VMS, later renamed OpenVMS.

Year 1979

  • The chroot system call was introduced during development of Version 7 Unix. Laying a foundation for container virtualization.[1][2]

Year 1985

Year 1987

Year 1988

  • SoftPC 1.0 for Sun was introduced in 1988 by Insignia Solutions. [1]
  • Macintosh. These versions (Sun and Macintosh) only have support for DOS
    .

Year 1991

Year 1994

  • MIT Lincoln Lab and starts the Bochs project. Bochs was initially coded for x86 architecture, capable of emulating BIOS, processor and other x86-compatible hardware, by simple algorithms, isolated from the rest of the environment, eventually incorporating the ability to run different processor algorithms under x86-architecture or the host, including bios and core processor (Itanium x64, x86_64, ARM, MIPS, PowerPC, etc.), and with the advantage that the application is multi platform (BSD, Linux, Windows, Mac, Solaris).[3]

Year 1997

Year 1998

  • June 15, 1998, Simics/sun4m is presented at USENIX'98, demonstrating full system simulation booting Linux 2.0.30 and Solaris 2.6 unmodified from dd'ed disks. [3].
  • October 26, 1998, VMware filed for a patent on their techniques, which was granted as U.S. Patent 6,397,242 [4]

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

  • January 31, 2001, AMD and Virtutech release Simics/x86-64 ("Virtuhammer") to support the new 64-bit architecture for x86. [5] Virtuhammer is used to port Linux distributions and the Windows kernel to x86-64 well before the first x86-64 processor (Opteron) was available in April 2003.
  • June, Connectix launches its first version of Virtual PC for Windows.[6]
  • July, VMware created the first x86 server virtualization product.[7]
  • Egenera, Inc. launches their Processor Area Network (PAN Manager) software and BladeFrame chassis which provide hardware virtualization of processing blade's (pBlade) internal disk, network interface cards, and serial console.[8]
  • Virtuozzo (earlier named SWsoft[4]) had developed was later being called Containers for Linux since 1999[5] and released a first version in 2001.[6]

Year 2003

  • First release of first open-source x86 hypervisor, Xen. [9]
  • February 18, 2003, Microsoft acquired virtualization technologies (Virtual PC and unreleased product called "Virtual Server") from Connectix Corporation. [10]
  • Late 2003, EMC acquired VMware for $635 million.
  • Late 2003, VERITAS acquired Ejascent for $59 million.
  • November 10, 2003
    Microsoft Virtual PC
    , which is machine-level virtualization technology, to ease the transition to Windows XP.

Year 2005

  • HP releases
    Integrity Virtual Machines 1.0 and 1.2 which ran only HP-UX
    .
  • October 24, 2005 VMware releases
    VMware Player
    , a free player for virtual machines, to the masses.
  • Sun releases
    Solaris Zones
    , for both x86/x64 and SPARC systems.

Year 2006

  • 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.
  • July 17, 2006
    Softricity
    .
  • August 16, 2006 VMware announces the winners of the virtualization appliance contest.
  • September 26, 2006 moka5 delivers LivePC technology.
  • HP releases
    Integrity Virtual Machines
    Version 2.0, which supports Windows Server 2003, CD and DVD burners, tape drives and VLAN.
  • December 11, 2006 Virtual Iron releases Virtual Iron 3.1, a free bare-metal virtualization product for enterprise server virtualization market.

Year 2007

  • Open source KVM released which is integrated with Linux kernel and provides virtualization on only Linux system, it needs hardware support.
  • January 15, 2007 InnoTek released
    GPL). It includes some code from the QEMU
    project.
  • Sun releases Solaris 8 Containers to enable migration of a Solaris 8 computer into a Solaris Container on a Solaris 10 system – for SPARC only.

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.[7] When Kubernetes 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.[8][9]

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:

  • 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 requests 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 re-implemented and greater application compatibility can be achieved with less work (Softricity claims to support most major applications). A disadvantage of ring0 implementation is that 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 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

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:

Further development

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 Kernel and that of the Windows Hypervisor into the Windows Kernel may make rootkit techniques such as the filter driver[12] obsolete[failed verification
]. This may take a while as the Linux Hypervisor is still waiting for the Xen
Grid Computing life. Meanwhile, Microsoft have decided to be fully compatible with the Xen Hypervisor
[12]. 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
AMD-V are hoping to ease and speed up para-virtualization so that a guest OS can be run unmodified. [needs update] [clarification needed
]

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. ^ "Virtuozzo Company History Timeline". zippia. August 27, 2020. Retrieved January 7, 2023.
  5. ^ Kolyshkin, Kir (December 26, 2014). "Virtuozzo Company History Timeline". LiveJournal. Retrieved January 7, 2023.
  6. ^ Hochstätter, Christoph H. (March 14, 2007). "Virtuozzo Company History Timeline". zdnet. Retrieved January 7, 2023.
  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.
  12. ^ File System Filter Driver

External links