Introduction to Virtual Machines Introduction Abstraction and interfaces Virtualization Computer system architecture Process virtual machines System virtual machines 1
Abstraction Mechanism to manage complexity in computer systems. Mechanism consists of partition the design of a system into levels allow higher levels to ignore the implementation details of lower levels In computer systems, lower levels are implemented in hardware, and higher levels in software. 2
Interfaces An interface defines the communication boundary between two entities hierarchical relationship linear relationship Software can run on any machine supporting a compatible interface MacIntosh apps. Windows apps. Linux apps MacOS Windows Linux PowerPC x86 x86 3
Interfaces Advantages Allows de-coupling of computer design tasks each component provides an abstraction of itself to the outside world Work on different components can progress independently Helps manage system complexity 4
Interface Disadvantages Software compiled for one ISA will not run on hardware with a different ISA powerpc binaries on an x86 machine? Even if ISA's are same Oses may differ MS Windows applications Sun Solaris? MacIntosh apps Windows apps. MacOS Linux x86 x86 5
Interface Disadvantages (2) Binaries may not be optimized for the platform they run on Intel Pentium binaries on AMD Athlon? Innovation may be inhibited by a fixed ISA hard to change instruction sets Application software cannot directly exploit microprocessor implementation features software supposed to be implementation-neutral! 6
Virtualization Removes some constraints imposed by system interfaces, and increases flexibility improves availability of application software removes the assumption of a single management regime, improving security and failure isolation Provide a different view to a particular computer resource not necessarily a simpler view 7
Virtualization (2) Virtualization constructs an isomorphism that maps a virtual guest system to a real host. e(s i ) S i Guest S j V(S i ) V(S j ) e'(s i ') S i ' Host S j ' 8
Virtualization (3) Virtualization Vs. abstraction virtualization does not necessarily hide details virtualization file file 9
Virtual Machines Concept of virtualization applied to the entire machine. A virtual machine is implemented by adding a layer of software to a real machine to support the desired virtual machine s architecture. Virtualization mapping of virtual resources or state to real resources use of real machine instructions to carry out actions specified by the virtual machine instructions 10
Flexibility Portability Isolation Security Some Benefits of VMs 11
Computer System Architecture Architecture functionality and appearance of a computer system, but not the details of its implementation Implementation the actual embodiment of an architecture 12
Computer Architecture (2) Computer systems are built of levels of abstraction hierarchical abstraction well-defined interfaces Drivers Memory Manager Software Application Programs Libraries Operating System Scheduler Execution Hardware System Interconnect (bus) Controllers Memory Translation Controllers I/O devices and Networking Main Memory Hardware 13
The ISA Interface Interface between hardware and software Important for OS developer Application Programs Libraries Operating System Execution Hardware System Interconnect (bus) Memory Translation I/O devices and Networking Main Memory 14
The ABI Interface Application Binary Interface (ABI) user ISA + system calls Important for compiler writers Application Programs Libraries Operating System Execution Hardware System Interconnect (bus) Memory Translation I/O devices and Networking Main Memory 15
The API Interface Application Programming Interface (API) user ISA + library calls Important for application programmers Application Programs Libraries Operating System Execution Hardware System Interconnect (bus) Memory Translation I/O devices and Networking Main Memory 16
Major Program Interfaces ISA supports all conventional software System Calls Application Software Operating System System ISA User ISA ISA ABI supports application software only Application Software System Calls Operating System System ISA User ISA ABI 17
Process Virtual Machines Process virtual machine is capable of supporting an individual process different guest and host ISA couple at ABI level via runtime system Guest Application Process Application Process Runtime Host OS Machine Virtualizing Software Hardware Virtual Machine 18
Process Virtual Machines (2) Constructed at ABI level Runtime manages guest process Runtime communicates with host OS Guest processes may intermingle with host processes As a practical matter, binaries built for same OS Dynamic optimizers are a special case Examples: IA-32 EL, FX!32, Dynamo guest process runtime host process create file sharing HOST OS Disk guest process runtime guest process runtime host process network communication 19
System Virtual Machines System Virtual Machine capable of supporting an OS with potentially many user processes couple at ISA level eg., IBM VM/360, VMWare, Transmeta Crusoe Guest Applications OS OS Applications VMM Host Virtualizing Software Hardware "Machine" Virtual Machine 20
PVM Multiprogramming PVM provided by a multi-process OS for each concurrently executing application. Combination of the OS system call interface, and the user-level ISA. Each process is given the illusion of having the complete machine to itself. 21
PVM Emulators Execute binaries compiled to a different instruction set than that executed by the host s hardware. Interpretation low startup overhead high steady-state per instruction emulation overhead 22
PVM Dynamic Translators Run-time translation of blocks of source instructions to equivalent target instructions. high start-up translation overhead fast steady-state execution Uses a code cache to store translated blocks of code for reuse. UNIX e.g., Digital s FX!32 system, Aries system, HP PA Intel IA-32 EL system HP Apps 23
PVM Same ISA Binary Optimizers Same source and target ISAs. Main task is the optimization of the source binary ABI level optimization may also collect performance profiles may also enhance security e.g., Dynamo system, developed at Hewlett- Packard. 24
PVM High Level Language VM A HLL is designed for VM execution minimize hardware-specific and OS-specific features that could compromise portability HLL Program Compiler front-end HLL Program Compiler Intermediate Code Object Code (ISA) Memory Image Compiler back-end Loader Portable Code (Virtual ISA ) Virt. Mem. Image Host Instructions VM loader VM Interpreter/Translator Traditional HLL VM 25
PVM High Level Language VM Binary class files are distributed ISA part of class file (no real implementation) OS interaction via API e.g., Java, Microsoft CLI Java Binary Classes Java VM Architecture VM implementation Sparc Workstation VM implementation x86 PC VM implementation Apple Mac 26
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 (most privileged mode) VMM intercepts and implements all the privileged operations for the guest OS. Win process Win process Win process Linux process Linux process Linux process Guest OS (Windows) Guest OS2 (Linux) VMM HOST PLATFORM virtual network communication 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 28
Whole System VMs Different ISA for guest and host systems. both application and OS code require emulation Implemented by placing the VMM and the guest software on top of a conventional host OS running on the hardware e.g., Virtual PC 29
Codesigned Virtual Machines VMs designed to enable innovative ISAs and/or hardware implementations for improved performance, power efficiency, etc. Similar hardware virtualization is common for microprocessors, such as Pentium IV. Software VM is part of the hardware design applications/os never directly execute native ISA instructions e.g., Transmeta Crusoe processor 30
VM Taxonomy Process VMs System VMs same ISA different ISA same ISA different ISA Multiprogrammed Systems Dynamic Translators IA-32EL, FX!32 Classic System VM IBM VM/370 Whole System VM Virtual PC for Mac Dynamic Binary Optimizers Dynamo HLL VM Java VM MS CLI Hosted VM VMware Codesigned VM Transmeta Crusoe 31