application/x-abiword AbiWord

Slide Nodes:

Slide 1:

This presentation will cover different options for virtualization on x86 hardware. We are looking specifically at virtualization as it can be applied to simulators.

We are not concerned with going into too much details about the specific software options that are available, but with understanding the different technologies being used, and their strengths and weaknesses.

Slide 2:

We are going to start with a brief intro looking into the history of virtualization to set the stage, then talk about the different types of virtualization that are available.

After that we'll look at how these types of virtualization are implemented, then what the pros and cons are.

There will be time at the end of this presentation for any questions.

Slide 3:

The idea of virtualization was developed by IBM in the 60's. A lot of the older mainframes had trouble with multitasking, and the OSes and applications at the time tended to have problems when it came to running a lot of applications. IBM developed software to virtualize the OS on the mainframes so that applications could be run in tandem. Later mainframes added support for hardware virtualization. In the late 70's and 80's things were moving away from the mainframe, and most of the work on virtualization was academic.

As the IA32/x86 architecture took hold, a lot of people thought that x86 virtualization was impossible. In the late 90's VMWare introduced VMWare Workstation which used Binary Translation. Shortly after this FreeBSD introduced the framework for Jails which is a weak form of OS Virtualization. In 2003 the first public version of Xen was released.

Seeing the growth of virtualization, Intel and AMD worked with Virtualization software developers to implement hardware virtualization assistance in their next generation of processors. Starting with the late model Pentium 4's with Intel, and Opteron with AMD, processors added support for instructions to assist with virtualization.

Slide 4:

There are several different types of Virtualization. The chart you see here lists the different types sorted according to their approximate relative overhead. It's worth noting, however, that most applications use a blended approach, combining emulation, virtualization, and paravirtualization.

Slide 5:

Simulation, which I mention here for the sake of completeness, does not strictly adhere to the definition of virtualization because software is not run directly on the processor. Simulation, instead, uses software to simulate the operation of physical hardware. Simulators are not really used for server consolidation or running guest operating systems, instead the simulators are used primarily during the design phase for creating hardware. Applications like OrCad and PSPICE allow engineers to develop circuits and simulate them in software to see how they will operate.

Slide 6:

Emulation, in it's pure form, is much more like Simulation than Emulation. Rather than running application code direction on the CPU, emulation translates all instructions from the emulated system to native calls. Pure emulation is often used to allow older software to run on modern machines by emulating the hardware that the older software ran. DosBox, for example, emulates and older model IBM compatible PC to run Dos. Applications like Qemu use hardware acceleration in combination with emulation by passing some calls directly to the CPU. In cases like this, Emulators may act more like a Virtual Machine Manager that performs Binary Translation on all operations instead of just system call.

Slide 7:

Virtualization via Binary Translation was the first form of Virtualization available for the x86 platform.