Chapter 1
Chapter 1
• Introduction
• Abstraction and interfaces
• Virtualization
• Computer system architecture
• Process virtual machines
• System virtual machines
MacOS
Linux
x86 x86
e(Si )
Si Sj
Guest
V(Si ) V(Sj )
e'(Si')
Si' Sj'
Host
virtualization
file
file
Libraries
Memory
Translation
System Interconnect
(bus)
Controllers Controllers
I/O devices
Main
and
Memory
Networking
Hardware
EECS 768 Virtual Machines 13
The ISA Interface
• Interface between Application
Programs
• Important for
Operating System
– OS developer
Execution Hardware
Memory
Translation
System Interconnect
(bus)
I/O devices
Main
and
Memory
Networking
Memory
Translation
System Interconnect
(bus)
I/O devices
Main
and
Memory
Networking
Programming Libraries
Interface (API)
– user ISA + Operating System
library calls
Execution Hardware
• Important for
Memory
– application System Interconnect
Translation
programmers (bus)
I/O devices
Main
and
Memory
Networking
Operating System
Operating System
Runtime Virtualizing
Software
OS Virtual
Machine
Host Machine
Hardware
host OS runtime
special case
file sharing
• Examples: IA-32 EL, FX!32, Disk
Guest
OS OS
Virtualizing
VMM Software
Virtual
Machine
Hardware
Host "Machine"
Loader VM Interpreter/Translator
Memory Image Host Instructions
Traditional HLL VM
VM VM VM
implementation implementation implementation
VMM
HOST PLATFORM
virtual
network communication
EECS 768 Virtual Machines 27
Hosted System Virtual Machine
• Virtualizing software is built on top of an
existing host OS.
• Advantages
– installation is like installing application programs
– host OS provides device driver support
• Drawbacks
– less efficient
different different
same ISA same ISA
ISA ISA
Dynamic Hosted VM
Binary VMware Codesigned
HLL VM VM
Optimizers Java VM
Dynamo Transmeta
MS CLI Crusoe