Introduction to Virtual Machines -...
Transcript of Introduction to Virtual Machines -...
Introduction to Virtual Machines
Michael Jantz
Acknowledgements
• Slides adapted from Chapter 1 in Virtual
Machines: Versatile Platforms for Systems
and Processes by James E. Smith and
Ravi Nair
• Credit to Prasad A. Kulkarni – some slides
were borrowed from his course on Virtual
Machines at the University of Kansas
2
Introduction to Virtual Machines
• Abstraction and interfaces
• Virtualization
• Computer system architecture
• Process virtual machines
• System virtual machines
3
Abstraction
• Mechanism to manage complexity in computer systems.
• Partitions design of a system into levels
• Allows higher levels to ignore the implementation details of lower levels
4
Interfaces
• Define the communication b/w two entities
• Hierarchical relationship
• Linear relationship
• Software can run on any machine supporting a compatible interface
5
PowerPC
MacOS
MacIntosh apps.
x86
Linux
Linux apps
x86
Windows
Windows apps.
Interfaces: Advantages
• Allows de-coupling of design tasks
• Work on different components can progress
independently
• Helps manage system complexity
• Each component provides an abstraction of
itself to the outside world
6
Interfaces: Disadvantages
• Limit flexibility• Developers must work within the constraints
of the interface
• Can be confining• ARM binaries on x86 machine?
• Windows applications on Linux?
7
MacOS
MacIntosh apps
x86 x86
Windows apps.
Linux
Interfaces: Disadvantages
• Inhibits innovation• Hard to change instruction sets
• Application software cannot directly exploit
microprocessor features
• Software is supposed to be architecture
independent!
8
Virtualization
• Map the interface of one system to a real
system that actually implements it
• Removes constraints imposed by interfaces
• Improves availability of application software
• Removes the assumption of a single regime,
improves security and failure isolation
• Provide a different view to a particular
computer resource
• Not necessarily a simpler view
9
Virtualization
• Creates an isomorphism that maps a virtual guest to a real host
10
Si S
Si' Sj'
Guest
Host
V(Si) V(Sj)
e(Si)
e'(Si')
j
Virtualization vs. Abstraction
• Virtualization does not necessarily hide details
11
filefile
virtualization
Virtual Machines
• Virtualization applied to the entire machine
• Adds a layer of software to a real machine
to support the desired architecture
• Process of virtualization
• Maps virtual resources or state to real
resources
• Uses real machine instructions to carry out
actions specified by the VM instructions
12
Benefits of VM's
• Flexibility
• Portability
• Isolation
• Security
13
Computer Architecture
• Architecture: functionality and appearance
of a computer system
• Implementation: embodiment of the
architecture
14
Computer Architecture
• Computer systems
consist of:
• Layers of abstraction
• Well-defined interfaces
15
I/O devices
and
Networking
System Interconnect
(bus)
Memory
Translation
Execution Hardware
Application
Programs
Main
Memory
Operating System
Libraries
The ISA Interface
• Interface between
hardware & software
• Two parts
• System ISA
• User ISA
16
I/O devices
and
Networking
System Interconnect
(bus)
Memory
Translation
Execution Hardware
Application
Programs
Main
Memory
Operating System
Libraries
The ISA Interface
• System ISA
• Important for OS
developers
17
I/O devices
and
Networking
System Interconnect
(bus)
Memory
Translation
Execution Hardware
Application
Programs
Main
Memory
Operating System
Libraries
The ABI Interface
• Application Binary
Interface (ABI)
• User ISA + system calls
• Important for compiler
writers
18
I/O devices
and
Networking
System Interconnect
(bus)
Memory
Translation
Execution Hardware
Application
Programs
Main
Memory
Operating System
Libraries
The API Interface
• Application
Programming
Interface (API)
• User ISA + library calls
• Important for
application
programmers
19
I/O devices
and
Networking
System Interconnect
(bus)
Memory
Translation
Execution Hardware
Application
Programs
Main
Memory
Operating System
Libraries
Major Program Interfaces
• ISA – supports all conventional software
• ABI – supports application software only
20
System Calls
User ISASystem ISAISA
Application Software
Operating System
System Calls
User ISASystem ISAABI
Application Software
Operating System
Process Virtual Machines
• Supports an individual process
• Run SW for a different OS and different ISA
• Couple at ABI level via runtime system
21
VirtualizingSoftware
Application Process
Machine
OS
Hardware
Guest
Runtime
Host
Application Process
Virtual
Machine
Process Virtual Machines
• Guest processes intermingle
with host processes
• Binaries encapsulated by
the runtime
• PVM does not include OS
• Examples:
• Java
• IA-32 EL
• Dynamic optimizers
(dynamo)
HOST OS
Disk
file sharing
network communication
guestprocess
create
host
process
guest
process
runtimeruntime
guest
process
runtime
host
process
22
PVM: Multiprogramming
• OS provides PVMs for each application
• System calls + user ISA == PVM to
execute multiple, concurrent processes
• Each process is given the illusion of
having the entire machine to itself
23
PVM: Emulators
• Execute binaries compiled for one ISA on a machine with a different ISA
• Emulation methods
• Interpretation• Fast startup, but slow steady-state
• Dynamic binary translation• High startup overhead, faster steady-state
• Uses a code cache to store translated blocks
• Examples: Java, IA32-EL
24
PVM: Binary Optimizers
• Same source and target ISAs
• Main task is optimization
• ABI level optimization
• May also collect performance profiles
• May also enhance security
• e.g., HP's Dynamo
25
PVM: High-Level Language VMs
• Designed for VM execution
• Aim to minimize HW- and OS-specific features
26
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
PVM: High-Level Language VMs
• Distribution format is binary class files
• Virtualized ISA (no real implementation)
• OS interaction via API
• Examples: Java, Micosoft CLI
27
Sparc
Workstation
Java Binary Classes
x86
PC
Apple
Mac
VM
implementation
VM
implementation
VM
implementation
Java VMArchitecture
System Virtual Machines
• Supports an OS with many user-level processes
• Couple at the ISA level
• Examples: VMWare, Transmeta Crusoe
28
Hardware
"Machine"
OS
Applications
Virtualizing
SoftwareVirtual
Machine
OS
Applications
Guest
VMM
Host
Classic System Virtual Machine
• Original meaning of the term virtual machine
• All guest and host software use the same ISA
• VMM runs on bare hardware (privileged mode)
• VMM intercepts all privileged operations for the guest OS's
29
Linuxprocess
Winprocess
HOST PLATFORM
virtualnetwork communication
Guest OS (Windows)
Win
process
Winprocess
Guest OS2 (Linux)
VMM
Linuxprocess
Linuxprocess
Hosted VM
• VMM built on top of existing OS
• Advantages
• Installs just like a user-level application
• Host OS provides driver support
• Drawbacks
• Less efficient
30
Whole System VMs
• Host and guest do not use a common ISA
• Both app and OS code require emulation
• Typically implemented as a hosted VMM
• Example: VirtualPC
31
Co-designed Virtual Machines
• Designed to enable innovative ISA's and/or
hardware implementations
• As if the VM software is part of the HW
• Applications / OS never directly execute native
ISA instructions
• Useful for backwards compatibility
• Example: Transmeta Crusoe
32
VM Taxonomy
33