Virtualization Technology: Argentina Software Pathfinding and Innovation
Virtualization Technology: Argentina Software Pathfinding and Innovation
Technology
Introduction
Argentina Software Pathfinding and
Innovation
Intel® Corporation
28 July 2008
Introduction
What is virtualization?
Virtualization is a broad term (virtual memory, storage, network, etc)
Focus for this course: platform virtualization
Virtualization basically allows one computer to do the job of multiple
computers, by sharing the resources of a single hardware across multiple
environments Virtual Virtual
Container Container
Hardware Hardware
Virtualization Requirements
Popek and Goldberg describe in their “Formal
Requirements for Virtualizable Third Generation
Architectures – 1974”:
• A Model of Third Generation Machines
– Machine states: S = (E, M, P, R)
– Instructions classification
• Privileged instructions
• Control sensitive instructions
• Behavior sensitive instructions
• Properties for a Virtual Machine Monitor
– Equivalence
– Resource control
– Efficiency
• Formal analysis described through 2 theorems
Introduction
Equivalence
Resource Control
Efficiency
Privileged instructions
Control sensitive
Behavior sensitive
• For any conventional third generation computer, a VMM may be constructed if the set of
sensitive instructions for that computer is a subset of the set of privileged instructions
• A conventional third generation computer is recursively virtualizable if it is virtualizable
and a VMM without any timing dependencies can be constructed for it.
The evolution of
virtualization
Evolution of Virtualization
X86 X86
X86 X86
Windows Windows
Suse Red Hat
XP 2003
Virtualization again…
Time
Virtualization Logic
Server virtualization
approaches
Full Virtualization
Virtual Machine
server virtualization
App. C
App. B
Guest OS
App. A
• Dynamic binary translation
– The emulation layer talks to an operating Device Drivers
Guest OS Ring 1 / 3
Application Ring 3
Virtual
Operating Ring 0 Machine Ring 0
System Monitor
Traditional x86 Architecture Full Virtualization
Server virtualization
approaches
Para-Virtualization
• The Guest OS is modified and thus run
kernel-level operations at Ring 1 (or 3)
Virtual Machine
App. C
App. B
Guest OS
App. A
– the guest is fully aware of how to process
privileged instructions
– thus, privileged instruction translation by the Device Drivers
Hardware
Server virtualization
approaches
Para-Virtualization
• Today, VM guest operating systems are paravirtualized using two different
approaches:
– Recompiling the OS kernel
• Paravirtualization drivers and APIs must reside in the guest operating
system kernel
• You do need a modified operating system that includes this specific API,
requiring a compiling operating systems to be virtualization aware
– Some vendors (such as Novell) have embraced paravirtualization and
have provided paravirtualized OS builds, while other vendors (such
as Microsoft) have not
– Installing paravirtualized drivers
• In some operating systems it is not possible to use complete
paravirtualization, as it requires a specialized version of the operating
system
• To ensure good performance in such environments, paravirtualization can
be applied for individual devices
• For example, the instructions generated by network boards or graphical
interface cards can be modified before they leave the virtualized machine
by using paravirtualized drivers
Server virtualization
approaches
Hardware-assisted virtualization
Virtual Machine
• The VMM uses processor
App. C
App. B
Guest OS
App. A
extensions (such as Intel®-VT or
AMD-V) to intercept and emulate Device Drivers
created
Hardware
Server virtualization
approaches
Hardware-assisted virtualization
• The hypervisor/VMM runs at Ring -1
– super-privileged mode
• Pros
– It allows to run unmodified Oss (so legacy OS can be run
without problems)
• Cons
– Speed and Flexibility
• An unmodified OS does not know it is running in a
virtualized environment and so, it can’t take advantage of
any of the virtualization features
– It can be resolved using paravirtualization partially
Approaches to desktop
virtualization
Client virtualization
approaches
Extending the concept of virtualization for
desktops
• Servers
– Hosted virtualization - mainframes
– VMMs / Bare Metal hypervisors
– OS virtualization
• Desktops
– Desktop virtualization
– Server-side workspace virtualization
– Client-side workspace virtualization
• Application virtualization
– Application isolation
– Application streaming
Desktop virtualization
approaches
Desktop Virtualization
• A VMM or hypervisor running on a physical
desktop
• Examples include:
– Microsoft Virtual PC
– Parallels Desktop for Mac
– VMware Fusion
– WINE.
• Use cases include:
– Emulating Windows games on the Macintosh,
– Testing code inside VMs
– Underpinning client-side workspace virtualization
Extracted from Virtualization II: Desktops and applications are next – the 451 group
Day wrap-up
• Requirements for HW Architecture Virtualization – Popek and
Goldberg
• Evolution for virtualization: from mainframes to x86 architecture due
to business reasons
• Challenges around x86 virtualization -> ISA doesn’t comply with P&G
• Server virtualization approaches
– Full Virtualization
– Paravirtualization
– Hardware Assisted Virtualization
• Client virtualization approaches
– Desktop virtualization
– Server-side workspace virtualization
– Client-side workspace virtualization
• Application virtualization
– Application isolation
– Application streaming
Questions?
Backup
References
• http://en.wikipedia.org/wiki/Platform_virtualization
• http://en.wikipedia.org/wiki/Popek_and_Goldberg_virtualization_requirements
• http://www.vmware.com/virtualization/
• http://www.vmware.com/overview/history.html
• Formal Requirements for Virtualizable Third Generation Architectures – 1974 -
Popek (UCLA) and Goldberg (Honeywell Information Systems and Harvard
University)
• Virtualization II: Desktops and applications are next – the 451 group
Contacts
Argentina Software Pathfinding and Innovation team from Virtualization
Technology:
• Guillermo Colsani: [email protected]
• Gisela Giusti: [email protected]
• Pablo Pássera: [email protected]
• Duilio Protti: [email protected]