1. Virtual Machines: Versatile Platforms
for Systems and Processes
J. E. Smith
University of Wisconsin-Madison
Ravi Nair
IBM Thomas J. Watson Research Center
2. INTRODUCTION
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.
3. Introduction 3
Course Objectives
Study VM architectures and applications
Study key implementation technologies
Focus on architecture and microarchitecture
aspects
Cover significant case studies
4. Introduction 4
Introduction
Why are virtual machines interesting?
They allow transcending of interfaces
(which often seem to be an obstacle to innovation)
They enable innovation in flexible, adaptive software & hardware,
security, network computing (and others)
They involve computer architecture in a pure sense
Virtualization will be a key part of future computer systems
A fourth major discipline? (with HW, System SW, Application SW)
5. Introduction 5
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
PowerPC
MacOS
MacIntosh apps.
x86
Linux
Linux apps
x86
Windows
Windows apps.
6. Introduction 6
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
MacIntosh apps
x86 x86
Windows apps.
Linux
7. Introduction 7
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
8. Introduction 8
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)
9. Introduction 9
Abstraction
Computer systems are built
on levels of abstraction
Higher level of abstraction
hide details at lower levels
Example: files are an
abstraction of a disk
file
file
abstraction
I/O devices
and
Networking
Controllers
System Interconnect
(bus)
Controllers
Memory
Translation
Execution Hardware
Drivers
Memory
Manager
Scheduler
Operating System
Libraries
Application
Programs
Main
Memory
Software
Hardware
10. Introduction 10
Virtualization
An isomorphism from guest to host
• Map guest state to host state
• Implement “equivalent” functions
Si S
Si
' Sj'
Guest
Host
V(Si) V(Sj)
e(Si)
e'(Si')
j
11. Introduction 11
Virtualization
Similar to abstraction
Except
• Details not necessarily hidden
Construct Virtual Disks
• As files on a larger disk
• Map state
• Implement functions
VMs: do the same thing
with the whole “machine”
file
file
virtualization
12. Introduction 12
Application Program Interface
• API
• User ISA + library calls
The “Machine”
Different perspectives on
what the Machine is:
OS developer
Compiler developer
Application programmer
Instruction Set Architecture
• ISA
• Major division between hardware
and software
Application Binary Interface
• ABI
• User ISA + OS calls I/O devices
and
Networking
System Interconnect
(bus)
Memory
Translation
Execution Hardware
Application
Programs
Main
Memory
Operating System
Libraries
13. Introduction 13
The “Machine”
Different perspectives on
what the Machine is:
OS developer
Instruction Set Architecture
• ISA
• Major division between hardware
and software
I/O devices
and
Networking
System Interconnect
(bus)
Memory
Translation
Execution Hardware
Application
Programs
Main
Memory
Operating System
Libraries
14. Introduction 14
The “Machine”
Different perspectives on
what the Machine is:
Compiler developer
Application Binary Interface
• ABI
• User ISA + OS calls
I/O devices
and
Networking
System Interconnect
(bus)
Memory
Translation
Execution Hardware
Application
Programs
Main
Memory
Operating System
Libraries
15. Introduction 15
The “Machine”
Different perspectives on
what the Machine is:
Application programmer
Application Program Interface
• API
• User ISA + library calls
I/O devices
and
Networking
System Interconnect
(bus)
Memory
Translation
Execution Hardware
Application
Programs
Main
Memory
Operating System
Libraries
17. Introduction 17
The Family of Virtual Machines
Lots of things are called “virtual machines”
IBM VM/370
Java
VMware
Some things not called “virtual machines”, are virtual machines
IA-32 EL
Dynamo
Transmeta Crusoe
18. Introduction 18
Taking a Unified View
“The subjects of virtual machines and
emulators have been treated as entirely
separate. … they have much in common. Not
only do the usual implementations have many
shared characteristics, but this commonality
extends to the theoretical concepts on which
they are based”
-- Efrem G. Wallach, 1973
19. Introduction 19
Major Program Interfaces
ISA Interface -- supports all conventional
software
System Calls
User ISA
System ISA
ISA
Application Software
Operating System
System Calls
User ISA
System ISA
ABI
Application Software
Operating System
Application Binary Interface (ABI)
-- supports application software only
20. Introduction 20
System Virtual Machines
Provide a system
environment
Constructed at ISA
level
Persistent
Examples: IBM
VM/360, VMware,
Transmeta Crusoe
guest
process
HOST PLATFORM
virtual
network communication
Guest OS
VMM
guest
process
guest
process
guest
process
Guest OS2
VMM
guest
process
guest
process
21. Introduction 21
System Virtual Machines
Native VM System
• VMM privileged mode
• Guest OS user mode
• Example: classic IBM
VMs
User-mode Hosted VM
• VMM runs as user
application
Dual-mode Hosted VM
• Parts of VMM privileged;
parts non-privileged
• Example VMware
Non-privileged
modes
Privileged
Mode
Virtual
Machine
VMM
Hardware
Virtual
Machine
Host OS
Hardware
VMM
Virtual
Machine
Host OS
Hardware
VMM
22. Introduction 22
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
Virtualizing
Software
Application Process
Machine
OS
Hardware
Guest
Runtime
Host
Application Process
Virtual
Machine
23. Introduction 23
Process Virtual Machines
Constructed at ABI level
Runtime manages guest
process
Not persistent
Guest processes may
intermingle with host
processes
As a practical matter, guest
and host OSes are often
the same
Dynamic optimizers are a
special case
Examples: IA-32 EL, FX!32,
Dynamo
HOST OS
Disk
file sharing
network communication
guest
process
create
host
process
guest
process
runtime
runtime
guest
process
runtime
host
process
24. Introduction 24
Same-ISA Dynamic Binary Optimizers
Optimize Binary at Runtime
An ABI level optimization
A type of Process VM
Example HP Dynamo
• Can optimize for dynamic
properties of program
• Can optimize for a specific
processor implementation
HP PA
UNIX
HP Apps
25. Introduction 25
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)
Sparc
Workstation
Java Binary Classes
x86
PC
Apple
Mac
VM
implementation
VM
implementation
VM
implementation
Java VM
Architecture
26. Introduction 26
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)
HLL Program
Intermediate Code
Memory Image
Object Code
(ISA)
Compiler front-end
Compiler back-end
Loader
HLL Program
Portable Code
(Virtual ISA )
Host Instructions
Virt. Mem. Image
Compiler
VM loader
VM Interpreter/Translator
Traditional HLL VM
27. Introduction 27
Co-Designed VMs
VLIW
Windows
X86 Apps
Perform both translation and
optimization
VM provides interface between
standard ISA software and
implementation ISA
Primary goal is performance or
power efficiency
Use proprietary implementation ISA
Transmeta Crusoe and IBM Daisy
best-known examples
30. Introduction 30
Summary (Taxonomy)
VM type (Process or System)
Host/Guest ISA same or different
Multiprogrammed
Systems
Java VM
MS CLI
Transmeta
Crusoe
same ISA
different
ISA
Process VMs System VMs
Virtual PC
for Mac
different
ISA
same ISA
IBM VM/370
VMware
HP
Dynamo
IA-32 EL
FX!32