Taxonomy
Taxonomy
This material is based on the book, Virtual Machines: Versatile Platforms for
Systems and Processes, Copyright 2005 by Elsevier Inc. All rights reserved.
It has been used and/or modified with permission from Elsevier Inc.
Course Objectives
Study VM architectures and applications
Study key implementation technologies
Focus on architecture and microarchitecture
aspects
Cover significant case studies
Introduction 3
Introduction
Why are virtual machines interesting?
Introduction 4
Advantages of Standard Interfaces
Major design tasks are decoupled
• In space and time
Different hardware and software development
schedules
Software can run on any machine
supporting a compatible interface
Introduction 5
There are also disadvantages…
Software compiled for one ISA will not run on hardware
with a different ISA
• Apple Mac (PowerPC) binaries on an x86?
Even if ISAs are the same, OSes may differ
• Windows NT applications on a Solaris x86?
Binary may not be optimized for the specific hardware
platform it runs on
• Intel Pentium 4 binaries on an AMD Athlon?
MacOS
Linux
x86 x86
Introduction 6
Disadvantages (contd.)
Innovation may be inhibited by fixed ISA
• Hard to add new instructions
OR remove obsolete ones
• What was the most recent (successful) new ISA?
Or new OS?
Difficult for software to interact directly with
implementation
• Performance features
• Power management
• Fault tolerance
• Software is supposed to be implementation independent
Introduction 7
Hardware Resources
Conventional system software manages
hardware resources directly
• An OS manages the physical memory of a specific
size
• I/O devices are managed as physical entities
Difficult to share resources except through OS
• All users of hardware must use the same OS
• All users are vulnerable to attack from other users
sharing the resource (via security holes in OS)
Introduction 8
Abstraction
Software
Computer systems are built Application
Programs
on levels of abstraction fileLibraries
file
Controllers Controllers
I/O devices
Main
and
Memory
Networking
Hardware
Introduction 9
Virtualization
An isomorphism from guest to host
• Map guest state to host state
• Implement “equivalent” functions
e(Si )
Si Sj
Guest
V(Si ) V(Sj )
e'(Si')
Si' Sj'
Host
Introduction 10
Virtualization
Similar to abstraction
Except
• Details not necessarily hidden virtualization
Introduction 11
The “Machine”
Different perspectives on
what the Machine is: Application
Programs
OS developer
Libraries
Compiler developer
Application programmer Operating System
Memory
Application Program Interface System Interconnect
Translation
(bus)
• API
• User ISA + library calls I/O devices
Main
and
Memory
Networking
Introduction 12
The “Machine”
Different perspectives on Application
Programs
what the Machine is:
Libraries
OS developer
Operating System
Execution Hardware
Introduction 13
The “Machine”
Different perspectives on Application
Programs
what the Machine is:
Libraries
Compiler developer
Operating System
Execution Hardware
Introduction 14
The “Machine”
Different perspectives on Application
Programs
what the Machine is:
Libraries
Application programmer
Operating System
Execution Hardware
Introduction 15
Virtual Machines
add Virtualizing Software to a Host platform
and support Guest process or system on a Virtual Machine (VM)
Applications Applications
Guest
OS OS
Virtualizing
VMM Software
Virtual
Machine
Hardware
Host "Machine"
Introduction 16
The Family of Virtual Machines
Lots of things are called “virtual machines”
IBM VM/370
Java
VMware
Introduction 17
Taking a Unified View
Introduction 18
Major Program Interfaces
ISA Interface -- supports all conventional
software
Application Software
System Calls
Operating System
Operating System
Provide a system
guest
environment guest guest guest guest guest
process process process
process process process
Constructed at ISA Guest OS2
Guest OS
level
Persistent VMM VMM
Examples: IBM
VM/360, VMware, HOST PLATFORM
Transmeta Crusoe
virtual
network communication
Introduction 20
System Virtual Machines
Hardware
• VMM runs as user Hardware
Hardware
application
Dual-mode Hosted VM
• Parts of VMM privileged;
parts non-
privileged
• Example VMware
Introduction 21
Process VMs
Execute application binaries with an ISA different from
hardware platform
Couple at ABI level via Runtime System
Examples: IA-32 EL, FX!32
Runtime Virtualizing
Software
OS Virtual
Machine
Host Machine
Hardware
Introduction 22
Process Virtual Machines
Constructed at ABI level
Runtime manages guest
process host guest
Not persistent process process
Introduction 24
HLL VMs
Java and CLI are recent examples
Binary class files are distributed
“ISA” is part of binary class format
OS interaction via APIs (part of VM platform)
VM VM VM
implementation implementation implementation
Introduction 25
High Level Language Virtual Machines
Raise the level of abstraction
• User higher level virtual ISA
• OS abstracted as standard libraries
Process VM (or API VM)
Loader VM Interpreter/Translator
Memory Image Host Instructions
Traditional HLL VM
Introduction 26
Co-Designed VMs
Perform both translation and
optimization X86 Apps
VM provides interface between
standard ISA software and Windows
implementation ISA
Primary goal is performance or
power efficiency
Use proprietary implementation ISA
VLIW
Transmeta Crusoe and IBM Daisy
best-known examples
Introduction 27
Composition
apps 1
OS 1
apps 2
OS 1
ISA 2
Introduction 28
Composition: Example
Java application
JVM
Linux x86
VMware
Windows x86
Code Morphing
Crusoe VLIW
Introduction 29
Summary (Taxonomy)
VM type (Process or System)
Host/Guest ISA same or different
different different
same ISA same ISA
ISA ISA
Introduction 30