CSCI 8530 Advanced Operating Systems. Part 19 Virtualization

Similar documents
Virtualization. Pradipta De

Virtual Machines. Part 2: starting 19 years ago. Operating Systems In Depth IX 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.

Learning Outcomes. Extended OS. Observations Operating systems provide well defined interfaces. Virtual Machines. Interface Levels

The Challenges of X86 Hardware Virtualization. GCC- Virtualization: Rajeev Wankar 36

Chapter 5 C. Virtual machines

Operating Systems 4/27/2015

CS 550 Operating Systems Spring Introduction to Virtual Machines

for Kerrighed? February 1 st 2008 Kerrighed Summit, Paris Erich Focht NEC

An overview of virtual machine architecture

Distributed Systems COMP 212. Lecture 18 Othon Michail

CHAPTER 16 - VIRTUAL MACHINES

LINUX Virtualization. Running other code under LINUX

Module 1: Virtualization. Types of Interfaces

CS370 Operating Systems

Lecture 5: February 3

Virtualization. Virtualization

CS 350 Winter 2011 Current Topics: Virtual Machines + Solid State Drives

Originally prepared by Lehigh graduate Greg Bosch; last modified April 2016 by B. Davison

Spring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand

Virtualization Introduction

Chapter 5 B. Large and Fast: Exploiting Memory Hierarchy

Virtual Machines Disco and Xen (Lecture 10, cs262a) Ion Stoica & Ali Ghodsi UC Berkeley February 26, 2018

Virtual Machines. Part 1: 54 years ago. Operating Systems In Depth VIII 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.

Virtualization and memory hierarchy

COMPUTER ARCHITECTURE. Virtualization and Memory Hierarchy

Virtual Machines. To do. q VM over time q Implementation methods q Hardware features supporting VM q Next time: Midterm?

Background. IBM sold expensive mainframes to large organizations. Monitor sits between one or more OSes and HW

Introduction to Virtual Machines. Michael Jantz

Virtual Machines and Dynamic Translation: Implementing ISAs in Software

Virtualization. Dr. Yingwu Zhu

Introduction to Virtual Machines

Lecture 4: Extensibility (and finishing virtual machines) CSC 469H1F Fall 2006 Angela Demke Brown

Virtualization (II) SPD Course 17/03/2010 Massimo Coppola

Advanced Computer Architecture

NON SCHOLAE, SED VITAE

COS 318: Operating Systems. Virtual Machine Monitors

CSE 237B Fall 2009 Virtualization, Security and RTOS. Rajesh Gupta Computer Science and Engineering University of California, San Diego.

A Survey on Virtualization Technologies

CS533 Concepts of Operating Systems. Jonathan Walpole

Virtual Machine Systems

Server Virtualization Approaches

CHAPTER 16 - VIRTUAL MACHINES

I/O and virtualization

Unit 5: Distributed, Real-Time, and Multimedia Systems

24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant.

CS252 Spring 2017 Graduate Computer Architecture. Lecture 18: Virtual Machines

CSE543 - Computer and Network Security Module: Virtualization

Virtualization. ...or how adding another layer of abstraction is changing the world. CIS 399: Unix Skills University of Pennsylvania.

System Virtual Machines

OS Virtualization. Why Virtualize? Introduction. Virtualization Basics 12/10/2012. Motivation. Types of Virtualization.

The only open-source type-1 hypervisor

CSE543 - Computer and Network Security Module: Virtualization

Virtual Memory. Lecture for CPSC 5155 Edward Bosworth, Ph.D. Computer Science Department Columbus State University

Virtual Machines. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Lecture 5. KVM for ARM. Christoffer Dall and Jason Nieh. 5 November, Operating Systems Practical. OSP Lecture 5, KVM for ARM 1/42

Cloud Computing Virtualization

CSE 120 Principles of Operating Systems

Virtualization. Michael Tsai 2018/4/16

Linux and Xen. Andrea Sarro. andrea.sarro(at)quadrics.it. Linux Kernel Hacking Free Course IV Edition

ELEC 377 Operating Systems. Week 1 Class 2

The Architecture of Virtual Machines Lecture for the Embedded Systems Course CSD, University of Crete (April 29, 2014)

Multiprocessor Scheduling. Multiprocessor Scheduling

System Virtual Machines

What is a VM? Categories of Virtual Machines. Process Virtual Machine 11/17/2010

Mach External pager. IPC Costs. Why the difference? Example of IPC Performance. First generation microkernels were slow Mach, Chorus, Amoeba

Advanced Operating Systems (CS 202) Virtualization

CSE543 - Computer and Network Security Module: Virtualization

Πποχωπημένη Κατανεμημένη Υπολογιστική

1 Virtualization Recap

CS-580K/480K Advanced Topics in Cloud Computing. VM Virtualization II

references Virtualization services Topics Virtualization

LIA. Large Installation Administration. Virtualization

Introduction to Virtualization

Nested Virtualization and Server Consolidation

Virtual Machine Security

Chapter 2: System Structures

Concepts. Virtualization

Virtual Machine Monitors!

OS concepts and structure. q OS components & interconnects q Structuring OSs q Next time: Processes

e-pg Pathshala Subject: Computer Science Paper: Cloud Computing Module 23: Virtualization II Module No: CS/CC/23 Quadrant 1 e-text

Virtualization. Santa Clara Valley Chapter of the IEEE Communication Society June 20, 2007 Scott Lurndal, 3Leaf Systems

Virtualization. Part 1 Concepts & XEN

Virtualization. join, aggregation, concatenation, array, N 1 ühendamine, agregeerimine, konkateneerimine, massiiv

Chapter 2: Operating-System Structures

CSE Computer Security

Operating System Structure

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and

Björn Döbel. Microkernel-Based Operating Systems. Exercise 3: Virtualization

Virtual machines are an interesting extension of the virtual-memory concept: not only do we give processes the illusion that they have all of memory

Virtualization. Operating Systems, 2016, Meni Adler, Danny Hendler & Amnon Meisels

Introduction to Cloud Computing and Virtualization. Mayank Mishra Sujesha Sudevalayam PhD Students CSE, IIT Bombay

Dynamic Translator-Based Virtualization

W4118: virtual machines

Xen and the Art of Virtualization

What is KVM? KVM patch. Modern hypervisors must do many things that are already done by OSs Scheduler, Memory management, I/O stacks

CSC 5930/9010 Cloud S & P: Virtualization

CprE Virtualization. Dr. Yong Guan. Department of Electrical and Computer Engineering & Information Assurance Center Iowa State University

Chapter 5 (Part II) Large and Fast: Exploiting Memory Hierarchy. Baback Izadi Division of Engineering Programs

DISCO and Virtualization


Transcription:

CSCI 8530 Advanced Operating Systems Part 19 Virtualization

Virtualization This is a very old idea It appears in many different forms A variety of commercial products exist The idea has become hot again

Virtual Applied to an OS Became popular in the 1960s Idea is an abstraction that hides details Examples Process abstraction of one program running on a computer Virtual memory abstraction of physical memory File abstraction of disk storage Timesharing systems each user presented with abstraction of an isolated computer Device-independent I/O abstraction of physical device interface

History of Software Virtual Machines 1960s: BCPL uses O-Code interpreter 1970s: P-Code interpreter developed to make Pascal portable Compiler produces P-Code Only P-code interpreter needs to be ported 1990s: Java JVM follows same approach as Pascal

History of Virtual Machine (VM) Hardware Hardware on early IBM computers, such as the 7044, was barely able to support concurrent processes 1964: IBM creates System/360 line of computers 1966: IBM introduces the System 360/67 (model 67) Support for virtual memory All hardware interfaces exported through a Virtual Machine Monitor (VMM) VMM ran on raw hardware and allowed multiple operating systems (called supervisors) to be instantiated simultaneously on top of the VMM VMM gave each operating system the illusion of running on the underlying hardware (i.e., operating system was unchanged)

History of Virtual Machine (VM) Hardware (continued) 1967?: VMM on a model 67 supports multiple simultaneous copies of the Cambridge Monitor System (CMS) Inside IBM, model 67 ran CP-67 which allowed the 67 to simulate multiple 360 models 1970: IBM announced the System/370 series that built on the 360/67 2000s: IBM mainframes (system Z) trace their roots to the model 67 Intel introduces the ability to trap certain instructions, making it possible to build virtual machine software on Intel processors

Types of Machine Virtualization Foreign architecture emulation Full (native) virtualization Paravirtualization

Foreign Architecture Emulation Software emulates architecture X on machine with architecture Y Usually runs much slower than machine Y native code Motivations Run software intended for machine of type X on machine of type Y Develop or test software for machine X before the hardware is available Examples Emulate PowerPC on an ARM Emulate MIPS on an x86

Illustration of Architecture Emulation If emulation is complete, can run OS code plus applications User can choose which OS(es) to run at a given time

Full Virtualization Also known as native virtualization Uses Virtual Machine (VM) abstraction Layer of software exports multiple copies of the underlying hardware Originally called a Virtual Machine Monitor Now known has a hypervisor Key idea Hypervisor allows normal instructions to run directly on underlying hardware, and only intercepts privileged instructions (e.g., I/O) Makes emulation efficient enough to use

Illustration of Architecture Emulation Normal instructions run on raw hardware; hypervisor intercepts privileged instructions Special hardware may be required (e.g., extra mode) Manager launches and controls guest operating systems

Full Virtualization and Older Hardware Older hardware Lacks ability to trap all privileged instructions Only has one kernel mode (no special mode for hypervisor) Is not able to support full virtualization One option for older hardware is paravirtualization

Paravirtualization Alternative to full virtualization Guest OS must be modified before it can run We say it is hypervisor aware Some privileged instructions are replaced with hypervisor calls Main motivation: allow virtualization on older hardware Has fallen out of favor

Illustration of Paravirtualization Hypervisor and manager operate the same as with full virtualization Guest OS calls hypervisor when necessary Manager launches and controls guest operating systems

Example Virtualization Technologies Proprietary products VMware: widely used full virtualization z/vm: IBM full virtualization plus LAN emulation Open emulation Virtual Box (VBox): free and runs as an application QEMU: complete emulation of various architectures UML (User Mode Linux): allows multiple, isolated copies of Linux to run on top of an underlying Linux with UML KVM: full virtualization integrated into Linux kernel

Possible Hypervisor Designs Take over the hardware completely Run as a kernel module in another OS Run as an application Note: each approach has been used in at least one technology.

Linux KVM (Kernel Virtual Machine) Illustrates kernel module approach Runs as a module in the Linux kernel Turns Linux into a hypervisor Offers full virtualization Uses three modes Kernel mode for the KVM kernel User mode for applications Guest mode for guest operating systems

Illustration of KVM Linux with KVM module acts as hypervisor Normal apps can co-exist with guest OS

Virtual Networks Many processor virtualization technologies support network virtualization One or more network interfaces can be configured for each VM Each network interface on a VM can be connected to a specific virtual network Other possibilities Bridged virtual networks Network Address Translation between virtual networks and a real network

VM Migration Used in a data center cluster to balance load Requires Many computers in a cluster under same administrative control Each computer runs a hypervisor Management system software can migrate a VM from one computer to another Manager sets policies for migration Hypervisors must provide uniform access to files and communication mechanisms

Summary Virtualization started in the 1960s IBM System 360/67 had hardware to support a virtual machine monitor Modern virtualization paradigms include Emulation Full virtualization Paravirtualization (popularity is fading) Both proprietary (e.g., VMware) and open source (e.g., VBox) virtualization systems exist

Semester Wrap-Up

What You (Hopefully) Learned In-depth understanding of major parts of an operating system, including: Process manager Memory manager Device manager Interprocess communication Internet communication A hierarchical approach to organizing the pieces Basic concepts, typical policies, and implementation details Appreciation of design decisions and tradeoffs How to think like a systems person

What You (Hopefully) Learned (continued) A key set of invariants and principles How an operating system can provide convenient abstractions over low-level hardware How operating system functions can be implemented without resorting to millions of lines of code How seemingly straightforward policies can interact in unexpected ways How intellectually challenging it can be to understand all the consequences of even a basic system How to write code internal to an operating system

Operating Systems Difficult Because Details count (and can be overwhelming) An OS is tightly integrated with hardware, and hardware keeps changing One doesn t build a static system; the entire system must be configurable, and must adapt to variants of the hardware The prevalence of Internet means an operating systems cannot be designed without including communication protocols and distributed functionality Although no individual piece of an operating system is intrinsically complex, the intellectual challenge arises from making all the pieces work together in a smooth, unified manner

Unsolved Problems Operating systems research has made a comeback Current topics include Multi-core operating systems File systems and drivers for solid-state disks Power-aware operating systems (especially for embedded systems) Systems for wide-area VM management and migration Large-scale distributed file systems Automated configuration of systems, especially configuration of VM systems