Introduction to Virtual Machines



Similar documents
A Unified View of Virtual Machines

Virtual Machines. Virtual Machines

Virtual Machines. Adapted from J.S. Smith and R. Nair, VIRTUAL MACHINES, Morgan-Kaufmann Teodor Rus.

An Overview of Virtual Machine Architectures

Virtual Machines and Their Architecture

12. Introduction to Virtual Machines

Virtualization. Pradipta De

COM 444 Cloud Computing

Full and Para Virtualization

Virtualization. Dr. Yingwu Zhu

Virtual Machines.

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:

Multi-core Programming System Overview

Cloud Computing CS

Cloud Computing #6 - Virtualization

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Cloud Computing. Up until now

Chapter 5 Cloud Resource Virtualization

Virtualization. Types of Interfaces

COS 318: Operating Systems. Virtual Machine Monitors

nanohub.org An Overview of Virtualization Techniques

Virtualization and Other Tricks.

Hypervisors. Introduction. Introduction. Introduction. Introduction. Introduction. Credits:

General Introduction

Distributed and Cloud Computing

x86 ISA Modifications to support Virtual Machines

Outline. Outline. Why virtualization? Why not virtualize? Today s data center. Cloud computing. Virtual resource pool

CPS221 Lecture: Operating System Structure; Virtual Machines

Virtualization. Jia Rao Assistant Professor in CS

VMware and CPU Virtualization Technology. Jack Lo Sr. Director, R&D

Chapter 2 System Structures

Virtualization and the U2 Databases

Virtualization. Jukka K. Nurminen

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

CPET 581 Cloud Computing: Technologies and Enterprise IT Strategies. Virtualization of Clusters and Data Centers

Chapter 16: Virtual Machines. Operating System Concepts 9 th Edition

Virtual Computing and VMWare. Module 4

The Art of Virtualization with Free Software

Introduction to Virtual Machines

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Virtualization Technology. Zhiming Shen

Cloud Architecture and Virtualisation. Lecture 4 Virtualisation

Chapter 3 Operating-System Structures

System Virtual Machines

Knut Omang Ifi/Oracle 19 Oct, 2015

An Introduction to Virtual Machines Implementation and Applications

System Structures. Services Interface Structure

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

IOS110. Virtualization 5/27/2014 1

Virtualization. Clothing the Wolf in Wool. Wednesday, April 17, 13

Networking for Caribbean Development

How To Virtualize A Computer System

Running Windows on a Mac. Why?

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University

Computer Virtualization in Practice

Hardware Based Virtualization Technologies. Elsie Wahlig Platform Software Architect

Section 1.4. Java s Magic: Bytecode, Java Virtual Machine, JIT,

Hypervisor Software and Virtual Machines. Professor Howard Burpee SMCC Computer Technology Dept.

COS 318: Operating Systems

Clouds Under the Covers. Elgazzar - CISC Fall

Basics of Virtualisation

Anh Quach, Matthew Rajman, Bienvenido Rodriguez, Brian Rodriguez, Michael Roefs, Ahmed Shaikh

Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

Analysis of Virtualization Tools and Techniques

A Survey on Virtualization Technologies

CS 152 Computer Architecture and Engineering. Lecture 22: Virtual Machines

Virtualization. ! Physical Hardware. ! Software. ! Isolation. ! Software Abstraction. ! Encapsulation. ! Virtualization Layer. !

OS Concepts and structure

Virtualization. Explain how today s virtualization movement is actually a reinvention

<Insert Picture Here> Oracle Database Support for Server Virtualization Updated December 7, 2009

Models For Modeling and Measuring the Performance of a Xen Virtual Server

matasano Hardware Virtualization Rootkits Dino A. Dai Zovi

Hypervisors and Virtual Machines

evm Virtualization Platform for Windows

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

ELEC 377. Operating Systems. Week 1 Class 3

The XenServer Product Family:

What is virtualization

Example of Standard API

Enabling Technologies for Distributed Computing

Windows Server Virtualization & The Windows Hypervisor

Virtual Machine Security

Understanding Full Virtualization, Paravirtualization, and Hardware Assist. Introduction...1 Overview of x86 Virtualization...2 CPU Virtualization...

Virtual machines and operating systems

Introduction to Virtualization

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

Compromise-as-a-Service

Virtualization. Introduction to Virtualization Virtual Appliances Benefits to Virtualization Example Virtualization Products

Operating System Organization. Purpose of an OS

Chapter 14 Virtual Machines

CS 695 Topics in Virtualization and Cloud Computing. Introduction

Virtualization: Concepts, Applications, and Performance Modeling

Transcription:

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