March 20
III. A Brief History of Virtualization
So you think that virtualization is the new kid on the block? Actually, the concept has been around for almost 50 years and actual virtualization techniques have existed for close to 45 years. Virtualization is mature technology that has had a long history in the IT world. It is now gaining wide stream acceptance in the small server[1] arena after enjoying quite a few years in the mainframe markets.
If we open up our history books we will find that IBM started to explore virtualization techniques back in the mid 1960s as a way to supply time-sharing on the IBM 7044. By creating multiple virtual images of the main machine (7044) they were able to allow multiple users access to the same memory and resources of the main machine through their virtual images.
This research led to the development of the VM/370, a major advancement in the mainframe arena for their System/370 line. It allowed for multiple “copies” of the hardware that ran as virtual sessions while the virtual machine monitor (VMM) ran directly on the real hardware. The VM/370 led the way for one of the most successful offerings in IBM history. The concepts and techniques pioneered in the late 60s and early 70s are still used today on their large mainframe systems. These same concepts helped pioneer the virtualization techniques we use today on our Intel and AMD[2] based servers.
Due to the declining cost of hardware, and the move away from mainframe systems, virtualization fell off the map during the 1980s and early 1990s. Distributed computing and client-server applications were the hot topics of the time, and many companies saw huge cost savings in switching to low-cost x86 based systems and away from the mainframe.
Unfortunately, even though the cost of hardware was falling fast during this time period, few companies looked at the whole cost equation of having thousands of separate servers running. Often these servers were running at very low utilization and were becoming increasingly difficult to manage. As IT staffing costs started to increase in the early 1990s and energy prices started to rise during the same time period many companies found themselves looking for a way to consolidate their IT resources and make more efficient use of existing machines.
Virtualization as we know it today started taking shape in the mid 1990s. Microsoft Windows and Linux both have code bases that allow for partial virtualization[3] and multi-tasking. A large number of emulators began appearing around this time as well as home computer users wanted to be able to run some of their old software on their newer systems. Remember from our earlier discussion on virtualization that emulation is a form of virtualization.
The biggest development in x86 virtualization took place with the 1999 introduction of VMWare for the x86 platforms. While there had been products such as Connectix Virtual PC[4] for the Macintosh out since 1997, VMWare was the first product that was geared towards solving some of the IT server sprawl problems of the time. It allowed DOS, Windows, OS/2 and UNIX environments to all be run on the same system, at the same time.
[1] Typically computing systems based off of Intel and AMD that run Windows or Linux.
[2] Often referred to as x86 based systems.
[3] The technique by which processes are isolated from one another by virtualizing the hardware they run on underneath the OS.
[4] Today this product is known as Microsoft Virtual PC.