Large Systems: Design + Implementation: Virtualization. Image (c) Facebook
|
|
- Gilbert Weaver
- 5 years ago
- Views:
Transcription
1 Large Systems: Design + Implementation: Image (c) Facebook Virtualization
2 Virtualization What is Virtualization "a technique for hiding the physical characteristics of computing resources from the way in which other systems, applications, or end users interact with those resources." Virtualization is the process of making things more abstract in order to make them easier to use. 2
3 Examples? 3
4 Storage virtualization Files Linear sequence of bytes Instead of blocks on a disk (or magnetic particles) Disk partitioning LBA RAID - redundant array of independent disks Logical Volume management Combines disks and partitions into logical disks. 4
5 Network virtualization VLAN Channel bonding multiple links combined offered a single, higher-bandwidth link Computer clusters Multiple logical networks on same physical wires multiple discrete computers into larger metacomputers e.g. Hadoop Virtual NICs and bridges for VM communication 5
6 Resource virtualization Multiprogramming Each process thinks it has CPU to itself Virtual memory Present linear address space composed of non-consecutive blocks of: Physical memory Disk space 6
7 7 Virtual Machines
8 Credits Slides largely based on: Virtual Machines: Versatile Platforms for Systems and Processes James E. Smith Ravi Nair Morgan Kaufmann Publishers 2005 Or see: DS3, 3.2 8
9 Why Virtual Machines? LS context: Basis for cloud computing Resource utilization Spin up capacity on demand Server consolidation Facilitate maintenance 9
10 Why Virtual Machines? Spin up capacity on demand Isolate applications in separate VMs Sandbox applications for security Support different OSes concurrently Legacy applications on legacy OSes Application testing using VMs with known state Testing OS upgrades, training OS development 10
11 12 Computer Architecture Recap
12 13 Instruction Set Architecture Software ISA Hardware E.g. x86_64
13 14 User + System ISA Application Programs System ISA Operating System Hardware User ISA
14 15 User ISA = For doing computations Simple Memory Instructions Move data from memory to registers and v.v. Integer Instructions Floating-Point Instructions Branch instructions Jump to address Jump to address if... Part of SHA1 in assembly: addl movl xorl andl xorl %esi, %e; %c, %esi; %d, %esi; %b, %esi; %d, %esi;
15 System ISA (1/2) = Management of system resources System Resources: Management: Main memory Storage Other I/O devices Fair allocation between user programs Prevent concurrent/unauthorized access Role of the Operating System 16
16 17 System ISA (2/2) OS requires special privileges over user programs OS runs in CPU Kernel mode Apps run in CPU User Mode User Mode x86: Implemented via 2 privilege levels / rings Kernel Mode Ring
17 System ISA Instructions Processor Management Memory Management Manage page table, TLB: virtual memory I/O Management Change to user mode + run application Timer interrupt gives control back to OS load and store to/from device Traps Change to kernel mode from application On purpose (system call) or on exception 18
18 19 System Call Instruction Application Programs Operating System System call Handler I/O instructions Hardware Disk System call: read(file) E.g. syscall on x86 or svc on ARM.
19 System Call = Mechanism for User Mode code to request services from Kernel Mode What services? Read/write to files and devices Create processes i.e. use Operating System abstractions: File abstraction for storing blocks on disk Process abstraction for running different code in parallel 20
20 21 System Call Interface (1/2) Application Programs System calls Operating System ISA Hardware
21 System Call Interface (2/2) Read/write files or devices: CreateFile(...) ReadFile(...) WriteFile(...) SetConsoleMode(...) Manipulate processes open(filename, ) read(fd,data, ) write(fd,data, ) ioctl() fork() exit() More... CreateProcess( ) ExitProcess( ) 22
22 23 System calls via libraries Application Programs Libraries System calls Operating System Hardware E.g. libc
23 Architecture Model Application Programs Run Kernel Mode Libraries System calls Operating System Interrupts, Traps, faults Privileged instructions Hardware 24 User Mode
24 25 Class 1 Recap
25 Recap 1 What is Distribution Transparency? What are the 2 main problems in achieving distribution transparency? How much time does it take to send a packet Over a LAN? Over the Atlantic? What are the 5 Scaling Techniques? 26
26 Recap 2 What is the user part of an ISA? What is the system part of an ISA? What functionality do they provide? What is virtual memory? 27
27 28 Recap 3 Application Programs 1 4 Libraries Operating System 3 2 Hardware Arrows? What runs in User / Kernel Mode?
28 29 Virtual Machines
29 Virtualize the machine? What is the machine? Machine is defined by an interface 3 interfaces that can be virtualized: 1. Instruction Set Architecture (ISA) 2. Application Binary Interface (ABI) 3. Application Programming Interface (API) 30
30 31 Interface 1: ISA Application Programs Libraries System calls Operating System ISA Hardware Virtualize a complete machine, that can run an OS, supporting multiple processes = System VM
31 32 Interface 2: ABI Application Programs Libraries System calls Operating System ABI = Hardware Virtualize the environment of a single process (binary) = Process VM System calls + user ISA
32 33 Interface 3: API Application Programs Libraries System calls Operating System API = Hardware Virtualization provides same interface at programming language (source) level. Libraries + user ISA
33 Example Virtualizing ISA Support a machine's complete ISA VM/370 Xen* KVM* 34
34 Example Virtualizing ABI Run binaries unmodified on different platform Common: Run Win32-x86 binaries on: Unix-x86 (Wine) Solaris-SPARC (Sun WABI) Win32-Alpha (Digital FX!32) 35
35 Example Virtualizing API Recompile applications from source Runs on any platform with same API E.g. Linux-x86 and Linux-ARM (Assuming platform-independent code) 36
36 VM Implementations Application Programs Application Programs Libraries Guest OS Virtual Machine Monitor Hardware (a) System VM Virtual Machine Monitor Host OS Hardware (b) Process VM 37
37 What ISA? Same or different Same: Run Win32-x86 on Linux-x86 Diff: Run Linux-ARM on Win32-x86 Application Programs Libraries OS Source ISA Virtual Machine Monitor Hardware Target ISA 38
38 39 Taxonomy Process VMs System VMs Same ISA Different ISA Same ISA Different ISA Multiprogrammed Systems Emulators/ Translators Classic-System VMs Whole-System VMs High-level Language VMs Hosted VMs Codesigned VMs
39 Example: Windows Multiprogramming Win32 native Win32 native 40 Process Win32 API Windows OS One CPU, illusion of processes running in parallel X86 Hardware Process VM / Same ISA
40 41 Example: Android Java High-level Language VM (HLL-VM) Java VM + Libs Linux OS ARM Hardware Different ISA: Java vs. ARM Process VM / Diff ISA
41 42 Example: Android Emulation Java Java VM Win32 native Linux OS WholeSystem VM ARM VM Runtime Process Win32 API Windows OS X86 Hardware System VM / Diff ISA
42 43 Example: Android Emulation on Xen Java Java VM Linux OS ARM VM Runtime Win32 Native Linux Native Windows OS Xen domain Linux Native Linux OS Xen Hypervisor X86 Hardware = Hosted VM
43 44 Example: VMWare Applications VMApp Guest OS VM Driver VMMonitor Host OS X86 Hardware = Hosted VM System VM / Same ISA
44 45 Example: AS/400 Application Programs Higher level ISA OS Source ISA Virtual Machine Monitor Allow evolution of hardware ISA Hardware Target ISA = Co-designed VM System VM / Diff ISA
45 46 Taxonomy Examples Process VMs Same ISA UNIX Multiprogrammed Systems Different ISA Wine, WABI Emulators/ Translators Java VM, MS CLR High-level Language VMs System VMs Same ISA Different ISA VM/370 ARM VM runtime Classic-System VMs Whole-System VMs VMware, Xen, Docker* Hosted VMs AS/400 Codesigned VMs
46 47 Crossword!
47 49 Implementing Virtual Machines with Different ISAs
48 VM implementation: Emulation Emulation = implement interface of one system on another system with a different interface Example: x86 instruction addl %edx,4(%eax) Emulated via PowerPC instructions: lwz addi lwzx lwz add stw r4,0(r1) r5,r4,4 r5,r2,r5 r4,12(r1) r5,r4,r5 r5,12(r1) 50
49 LS 2018 The slides on how to handle different ISAs are not part of the exam. 51
50 52 Emulation Model e Sa Sb Source Executing instruction e changes state of Source machine from Sa to Sb
51 53 Emulation Model e Sa Sb Source S'b Target e' S'a Real machine has corresponding state S'a Performs e by means of instruction(s) e'
52 Recall: Registers + Memory r0 r1 r2 Cache rn PC CPU MEM 54
53 55 Example: Change registers e CPU MEM CPU MEM e' CPU MEM CPU MEM Source Target
54 56 Example: Change registers e CPU MEM CPU MEM e' CPU MEM CPU MEM CPU state of Source may be kept in Target memory, not registers! Source Target
55 Emulation Performance + Methods Can be slow because of mapping Source to Target! Range of emulation methods: Interpretation: Interpretation Binary translation Decode a single source instruction and execute using target instructions Binary translation: Translate a block of source instructions once and reuse 57
56 Interpretation Source instruction is a series of bytes Different formats RISC: clean and simple CISC: complex with legacy Non-hardware: Java bytecodes Complexity of format influences interpretation performance! 58
57 59 Example Formats x86: Prefixes Opcode 0-4 bytes Opcode ModR/M SIB optional optional optional Displace- Immediate ment 0,1,2,4 0,1,2,4 bytes Software developer's manual: 3796 pages! Java: Opcode Index Opcode Index1 Index2 Opcode Data1 Data2 Java VM Specification: 604 pages
58 60 x86 Format Prefixes 0-4 bytes Opcode Opcode ModR/M SIB optional optional optional Displace- Immediate ment 0,1,2,4 0,1,2,4 bytes Prefixes: Repetition for strings, overrides for address and operand sizes ModR/M: addressing mode and which register SIB: base register, index register, index scale Displacement: offset to be added to address Immediate: variable length operand
59 Binary Translation Per-instruction interpretation slow Alternative: Especially when complex Translate blocks of source instructions once Reuse cf. Just-in-Time compilers Hard 61
60 Performance Tradeoff E(n) = time needed to execute an instruction n times Formula: E(n) = S + n*t S = startup time T = time required per emulation of the instruction Interpretation: S low, T high Binary translation S high, T low 62
61 63 Performance Tradeoff Interpretation E Binary Translation n In practice: automatic profiling, often used code is binary translated
62 OS Emulation For Process VMs have to emulate whole ABI User ISA System call interface System call instructions (e.g. sysenter) emulated Translate call from Source OS to Target OS Same OS: straightforward to hard Diff OS: straightfoward to impossible No guarantees that Target OS has same features as Source! E.g. fsync() 64
63 65 Implementing Virtual Machines with the Same ISA
64 66 Same ISA VMs Emulation needed for different ISA VMs For same ISA: Theoretically, source instructions can be executed directly on target Fastest Application Programs Does this work for all Libraries instructions? Guest OS Virtual Machine Monitor Hardware
65 Same ISA VMs (cont'd) No: System ISA instructions need to be controlled When? System VMs with a guest OS How? Guest OS runs in CPU User Mode System ISA instructions called in User Mode activate Kernel Mode i.e., cause a Trap VMM in Kernel Mode then emulates system instruction 67
66 Example: App Scheduling Applications User Mode Run Kernel Mode Operating System Interrupts, Traps, faults Privileged instructions Hardware 68
67 Example: App Scheduling Applications User Mode 2. Run app in User Mode Kernel Mode Operating System 3. Interrupt 1. Set interval timer Hardware 69
68 Example: App Scheduling Applications 4. Run app in User Mode User Mode Operating System 3. Run OS in User Mode 1. Set interval timer t Kernel Mode Virtual Machine Monitor 5. Interrupt 2. Set interval timer t' Hardware 70
69 Example: App Scheduling 71 Applications 4. Run app in User Mode User Mode Operating System 3. Run OS in User Mode 1. Set interval timer t Kernel Mode Virtual Machine Monitor 5. Interrupt 2. Set interval timer t' Hardware t = requested by OS t' = granted by VMM for fair scheduling of multiple VMs
70 Example: App Scheduling Applications Guest OS schedules Apps 4. Run app in User Mode Operating System 3. Run OS in User Mode 1. Set interval timer t Virtual Machine Monitor VMM schedules VMs 5. Interrupt 2. Set interval timer t' Hardware 72
71 x86 Same ISA Problems (1/3) Normal: Apps VM: OS no longer in kernel mode! OS + Apps OS Ring 0: Kernel Mode VMM OS Ring 3: User Mode 73
72 x86 Same ISA Problems (2/3) In x86, not all system instructions in User Mode activate Kernel Mode! When Guest OS runs in User Mode, not all system instruction calls observed by VMM Old solution: patch all binary code! Replace these critical instructions with explicit traps to Kernel Mode 74
73 75 x86 Same ISA Problems (3/3) New solution: Intel VT-x Allows Guest OS to run in Kernel Mode (Ring 0) Shared resources still controlled by VMM Using extra mode: VMX VMX Root for VMM VMX Non-root for Guest OS Ring -1 Also hardware support for VM context switch Apps OS OS VMM
74 77 Native and Hosted VMs Apps Apps Guest OS Guest OS VMM VMM Hardware (a) Native VM Host OS Hardware (b) Dual-Mode Hosted VM User Mode Kernel Mode
75 VMWare Workstation Install on top of existing host OS Easy to use Can use myriad of device drivers available in host OS 78
76 VMWare Architecture Applications VMApp Guest OS VM Driver VMMonitor Host OS X86 Hardware 79
77 VMWare Workstation Adds 3 components VMMonitor VMApp VMM in Kernel Mode, alongside Host OS User Process for translating VMM requests into system calls to host OS VMDriver Extension of the host OS Support switching between Host OS and VMM Enable VMM VMApp communication 80
78 81 VMWare I/O Applications VMApp Guest OS VMMonitor Device Driver Direct support, e.g. disk access via IDE Use host support, e.g. CD, sound, serial port VM Driver Device Driver Host OS X86 Hardware Device Driver
79 82 VMWare: New Capabilities Applications VMApp Guest OS VMMonitor VM Driver Device Driver Host OS X86 Hardware Device Driver COW Golden Image
80 83 Virtualization II Recap
81 Recap: App Scheduling Applications Operating System Virtual Machine Monitor Hardware 84
82 Recap 2 What is Intel VT-x? What problem does it solve? 85
83 86 Recap 3 Applications VMApp Guest OS VMMonitor VM Driver Device Driver Host OS X86 Hardware Device Driver COW Golden Image
84 87 Operating System Support for Virtualization
85 Native, Hosted, Paravirtualized VMs Apps Apps Apps Guest OS Guest OS VMM Guest OS Host OS VMM VMM Hardware Hardware Hardware Modify the Guest OS! 88
86 Paravirtualization System VMs can be faster when Guest OS can be modified for virtualization Showcased in Xen Project Modified Linux Windows XP Near native performance! 89
87 90 Paravirtualizing I/O Operating System Operating System Real Device Driver PV Device Driver I/O instructions Reverse Device Driver Hypercalls Network Handler Network Handler VMM Hardware VMM Hardware
88 Xen Evolution Problems: only open-source OSes can be modified Xen implementation tricks not on x86-64 New approach: Start from Full virtualization with Hardware Support (e.g. VT-x) Apply Paravirtualization in areas where speed can be gained: 1. Disk and network I/O 2. Interrupts and timers 3. Emulated motherboard, legacy boot 4. Privileged instructions, page tables 91
89 Xen Mode: HVM Source: Lars Kurth,
90 Xen Mode: PV 93
91 Xen Mode: HVM + PV Drivers 94
92 Xen Mode: PVHVM Drivers 95
93 Xen Mode: PVH 96
94 97 KVM KVM P
95 98 Xen Architecture Toolstack Applications Applications Domain 0 Host OS Drivers Guest OS (Modified) Guest OS (Modified) PV front PV front Xen Hypervisor virtual x86 Scheduler CPU X86 Hardware MMU Timers DomU = Unprivil eged
96 99 Xen Architecture Toolstack Applications Applications Domain 0 Host OS Guest OS (Modified) Guest OS (Modified) Driver MUX PV front PV front Xen Hypervisor virtual x86 Scheduler CPU X86 Hardware MMU Timers Domain
97 100 Xen Virtual Devices Toolstack Applications Domain 0 Guest OS Host OS vif6.0 eno1 eth0 xenbr0 Xen Hypervisor virtual x86 Scheduler CPU X86 Hardware MMU Timers
98 101 New: Xen PV Calls Toolstack Applications Domain 0 socket() Guest OS Host OS eno1 socket() backend frontend Xen Hypervisor virtual x86 Scheduler CPU X86 Hardware MMU Timers
99 Operating-System Level Virtualization In between System VM and Process VM Not System VM: Not Process VM: Cannot choose OS Multiple processes, not isolated As if multiple instances of the same OS are running on the same machine Example: Linux Containers cf. Docker 102
100 103 Linux Containers Applications OS View Namespaces Applications OS View Linux Host OS X86 Hardware Applications OS View CGroups
101 Linux Containers: Namespaces Linux kernel has a configuration + state Controlled via many files and outside input Idea: allow a configuration per process (group) E.g. for process A the hostname is X, for process B the hostname is Y cf. chroot Now: configuration is set of 6 namespaces Source: Rami Rosen, Linux Kernel Networking, APress. Michael Kerrisk, 104
102 6 Namespaces of Linux uts (hostname) mnt (mount points, filesystems) pid (processes) user (UIDs) ipc (inter process communication IDs) net (network stack) (plans to add more) 105
103 106 UTS Namespace (1/3) UNIX time sharing?! Contains 6 strings: sysname Operating system name (e.g., "Linux") nodename Name within "some implementation -defined network" release OS release (e.g., "2.6.28") version OS version machine Hardware identifier domainname NIS or YP domain name i.e., control the names of the container Source: uname(2)
104 UTS Namespaces (2/3) The old implementation of gethostname(): asmlinkage long sys_gethostname(char user *name, int len) {... if (copy_to_user(name, system_utsname.nodename, I)) errno = -EFAULT;... } system_utsname is a global variable 107
105 UTS Namespaces (3/3) The new implementation of gethostname(): static inline struct new_utsname *utsname(void) { return ¤t->nsproxy->uts_ns->name; } SYSCALL_DEFINE2(gethostname, char user *, name, int, len) { struct new_utsname *u;... u = utsname(); if (copy_to_user(name, u->nodename, i)) errno = -EFAULT; 108
106 109 MNT Namespace View of which filesystems are mounted New mounts only visible in current mnt namespace Unless special flags are used: mount make-shared / (root) /mnt sdb1 / (root) /home sda3 /mnt mnt ns1 /home sdc1 mnt ns2
107 PID Namespace Processes in different PID namespaces can have the same process ID. When creating the first process in a new namespace, its PID is 1. Hierarchy of PID namespaces: PIDs visible to parent namespace Nested upto 32 levels deep 110
108 User namespace New namespace = new set of User IDs and Group IDs Existing UIDs are mapped into new space E.g. user os3 has user ID 1023, group students2017 has group E.g. UID 1000 becomes UID 0 in new space First process in the new space has root Only for namespaces inside the new space! Create container: 1. Create new user namespace 2. Create new UTS, MNT, PID, etc. namespaces from that namespace Outside: permissions of parent UID 111
109 NET Namespace (1/3) A network namespace is logically another copy of the network stack: own routes, own firewall rules, own network devices. A network device belongs to exactly 1 network namespace A socket belongs to exactly 1 network namespace 112
110 NET Namespace (2/3) The initial network namespace includes: loopback device all physical devices, networking tables, etc. New network namespace includes only the loopback device Real devices can be moved into NS Virtual devices can be added
111 NET Namespace (3/3) Control via ip netns command And e.g. /etc/netns/<nsname>/hosts 114
112 Containers via namespaces Create a container: 1. Create a user namespace 2. Create a PID and UTS namespace inside 3. Create a MNT namespace to get your own filesystem 4. Mount container disk image 5. Create NET namespace, add virtual devices 6. Connect virtual devices to real network via e.g. virtual bridges 115
113 CGroups Namespaces can give groups of processes: Same view of the OS Illusion there are no other groups Control Groups is a mechanism for resource management for groups of processes: Set limits, e.g. on memory usage (main + FS cache) Set priorities (CPU or disk bandwidth) Accounting Checkpointing E.g. stop set of processes for resuming later 116
114 117 Episode MMXVI: The Empire Strikes Back
115 Virtualization on Windows Hypervisor: Hyper V Containers: Windows Server Containers Hyper V Containers Docker integration 119
116 Windows (cont'd) 120 Source: Wikipedia
117 Windows (cont') Windows Server Containers: 121 provide application isolation through process and namespace isolation technology. shares a kernel with the container host and all containers running on the host. Hyper-V Containers: like Server Containers but expand on the isolation by running each container in a highly optimized virtual machine. kernel of the container host is not shared with the Hyper-V Containers. Source: ew
118 Windows Container Types 122 Source: McCabe, Friis - Introduction to Windows Containers
119 Fedora Container Coloring Book 123
120 124 Virtualization III Recap
121 Full virtualization How can we improve performance? What are the implications of the solutions? 125
122 126 Recap 3 Application Programs Libraries Operating System Hardware In OS-level virtualization, where is the VMM? What are the risks of OS-level virtualization? What are the benefits?
123 130 VMs without Operating Systems
124 Unikernels Optimize VM for one application: Strip unused parts of OS and libraries Link directly with application Advantages: No context switching: No User-to-Kernel and vv. Less memory usage Apply application-specific OS optimizations More secure? More info see: 131
125 132 Unikernels Apps User Mode Kernel Mode Guest OS Apps VMM Guest + Host OS Hardware Hardware App Essential Guest OS VMM Hardware (a) Paravirtualization (b) Containers (c) Unikernels Unikernel
126 Video The Next Generation Cloud: Unleashing the Power of the Unikernel Russell Pavlicek, Xen Project Evangelist Large Installation System Administration Conference (LISA) entation/pavlicek (Thanks to Niels) 133
LIA. Large Installation Administration. Virtualization
LIA Large Installation Administration Virtualization 2 Virtualization What is Virtualization "a technique for hiding the physical characteristics of computing resources from the way in which other systems,
More information1 Virtualization Recap
1 Virtualization Recap 2 Recap 1 What is the user part of an ISA? What is the system part of an ISA? What functionality do they provide? 3 Recap 2 Application Programs Libraries Operating System Arrows?
More informationMechanisms and constructs for System Virtualization
Mechanisms and constructs for System Virtualization Content Outline Design goals for virtualization General Constructs for virtualization Virtualization for: System VMs Process VMs Prevalent trends: Pros
More informationVirtualization. Pradipta De
Virtualization Pradipta De pradipta.de@sunykorea.ac.kr Today s Topic Virtualization Basics System Virtualization Techniques CSE506: Ext Filesystem 2 Virtualization? A virtual machine (VM) is an emulation
More informationVirtual Machines. Part 2: starting 19 years ago. Operating Systems In Depth IX 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.
Virtual Machines Part 2: starting 19 years ago Operating Systems In Depth IX 1 Copyright 2018 Thomas W. Doeppner. All rights reserved. Operating Systems In Depth IX 2 Copyright 2018 Thomas W. Doeppner.
More informationIntroduction to Virtual Machines. Michael Jantz
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
More informationCloud Computing Virtualization
Cloud Computing Virtualization Anil Madhavapeddy anil@recoil.org Contents Virtualization. Layering and virtualization. Virtual machine monitor. Virtual machine. x86 support for virtualization. Full and
More informationCSCE 410/611: Virtualization
CSCE 410/611: Virtualization Definitions, Terminology Why Virtual Machines? Mechanics of Virtualization Virtualization of Resources (Memory) Some slides made available Courtesy of Gernot Heiser, UNSW.
More informationThe Challenges of X86 Hardware Virtualization. GCC- Virtualization: Rajeev Wankar 36
The Challenges of X86 Hardware Virtualization GCC- Virtualization: Rajeev Wankar 36 The Challenges of X86 Hardware Virtualization X86 operating systems are designed to run directly on the bare-metal hardware,
More informationSpring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand
Introduction to Virtual Machines Nima Honarmand Virtual Machines & Hypervisors Virtual Machine: an abstraction of a complete compute environment through the combined virtualization of the processor, memory,
More informationVirtual Machines and Dynamic Translation: Implementing ISAs in Software
Virtual Machines and Dynamic Translation: Implementing ISAs in Software Krste Asanovic Laboratory for Computer Science Massachusetts Institute of Technology Software Applications How is a software application
More informationCS 350 Winter 2011 Current Topics: Virtual Machines + Solid State Drives
CS 350 Winter 2011 Current Topics: Virtual Machines + Solid State Drives Virtual Machines Resource Virtualization Separating the abstract view of computing resources from the implementation of these resources
More informationThe Architecture of Virtual Machines Lecture for the Embedded Systems Course CSD, University of Crete (April 29, 2014)
The Architecture of Virtual Machines Lecture for the Embedded Systems Course CSD, University of Crete (April 29, 2014) ManolisMarazakis (maraz@ics.forth.gr) Institute of Computer Science (ICS) Foundation
More informationOperating Systems 4/27/2015
Virtualization inside the OS Operating Systems 24. Virtualization Memory virtualization Process feels like it has its own address space Created by MMU, configured by OS Storage virtualization Logical view
More informationfor Kerrighed? February 1 st 2008 Kerrighed Summit, Paris Erich Focht NEC
Virtualization for Kerrighed? February 1 st 2008 Kerrighed Summit, Paris Erich Focht NEC Why virtualization? Virtualization means many things! Multi-programming any UNIX is virtualizing resources to allow
More informationModule 1: Virtualization. Types of Interfaces
Module 1: Virtualization Virtualization: extend or replace an existing interface to mimic the behavior of another system. Introduced in 1970s: run legacy software on newer mainframe hardware Handle platform
More informationCS252 Spring 2017 Graduate Computer Architecture. Lecture 18: Virtual Machines
CS252 Spring 2017 Graduate Computer Architecture Lecture 18: Virtual Machines Lisa Wu, Krste Asanovic http://inst.eecs.berkeley.edu/~cs252/sp17 WU UCB CS252 SP17 Midterm Topics ISA -- e.g. RISC vs. CISC
More informationI/O and virtualization
I/O and virtualization CSE-C3200 Operating systems Autumn 2015 (I), Lecture 8 Vesa Hirvisalo Today I/O management Control of I/O Data transfers, DMA (Direct Memory Access) Buffering Single buffering Double
More informationLecture 7. Xen and the Art of Virtualization. Paul Braham, Boris Dragovic, Keir Fraser et al. 16 November, Advanced Operating Systems
Lecture 7 Xen and the Art of Virtualization Paul Braham, Boris Dragovic, Keir Fraser et al. Advanced Operating Systems 16 November, 2011 SOA/OS Lecture 7, Xen 1/38 Contents Virtualization Xen Memory CPU
More informationAdvanced Computer Architecture
ECE 563 Advanced Computer Architecture Fall 2007 Lecture 14: Virtual Machines 563 L14.1 Fall 2009 Outline Types of Virtual Machine User-level (or Process VMs) System-level Techniques for implementing all
More informationreferences Virtualization services Topics Virtualization
references Virtualization services Virtual machines Intel Virtualization technology IEEE xplorer, May 2005 Comparison of software and hardware techniques for x86 virtualization ASPLOS 2006 Memory resource
More informationCHAPTER 16 - VIRTUAL MACHINES
CHAPTER 16 - VIRTUAL MACHINES 1 OBJECTIVES Explore history and benefits of virtual machines. Discuss the various virtual machine technologies. Describe the methods used to implement virtualization. Show
More informationCSE 120 Principles of Operating Systems
CSE 120 Principles of Operating Systems Spring 2018 Lecture 16: Virtual Machine Monitors Geoffrey M. Voelker Virtual Machine Monitors 2 Virtual Machine Monitors Virtual Machine Monitors (VMMs) are a hot
More informationVirtualization. Operating Systems, 2016, Meni Adler, Danny Hendler & Amnon Meisels
Virtualization Operating Systems, 2016, Meni Adler, Danny Hendler & Amnon Meisels 1 What is virtualization? Creating a virtual version of something o Hardware, operating system, application, network, memory,
More informationCprE Virtualization. Dr. Yong Guan. Department of Electrical and Computer Engineering & Information Assurance Center Iowa State University
Virtualization Dr. Yong Guan Department of Electrical and Computer Engineering & Information Assurance Center Iowa State University Outline for Today s Talk Introduction Virtualization Technology Applications
More informationXen and the Art of Virtualization. CSE-291 (Cloud Computing) Fall 2016
Xen and the Art of Virtualization CSE-291 (Cloud Computing) Fall 2016 Why Virtualization? Share resources among many uses Allow heterogeneity in environments Allow differences in host and guest Provide
More informationSystem Virtual Machines
System Virtual Machines Outline Need and genesis of system Virtual Machines Basic concepts User Interface and Appearance State Management Resource Control Bare Metal and Hosted Virtual Machines Co-designed
More informationChapter 5 C. Virtual machines
Chapter 5 C Virtual machines Virtual Machines Host computer emulates guest operating system and machine resources Improved isolation of multiple guests Avoids security and reliability problems Aids sharing
More informationEmulation. Michael Jantz
Emulation Michael Jantz Acknowledgements Slides adapted from Chapter 2 in Virtual Machines: Versatile Platforms for Systems and Processes by James E. Smith and Ravi Nair Credit to Prasad A. Kulkarni some
More information24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant.
24-vm.txt Mon Nov 21 22:13:36 2011 1 Notes on Virtual Machines 15-440, Fall 2011 Carnegie Mellon University Randal E. Bryant References: Tannenbaum, 3.2 Barham, et al., "Xen and the art of virtualization,"
More informationOS Virtualization. Why Virtualize? Introduction. Virtualization Basics 12/10/2012. Motivation. Types of Virtualization.
Virtualization Basics Motivation OS Virtualization CSC 456 Final Presentation Brandon D. Shroyer Types of Virtualization Process virtualization (Java) System virtualization (classic, hosted) Emulation
More informationIntroduction to Virtual Machines
Introduction to Virtual Machines abstraction and interfaces virtualization Vs. abstraction computer system architecture process virtual machines system virtual machines Abstraction Abstraction is a mechanism
More informationCSCE 410/611: Virtualization!
CSCE 410/611: Virtualization! Definitions, Terminology! Why Virtual Machines?! Mechanics of Virtualization! Virtualization of Resources (Memory)! Some slides made available Courtesy of Gernot Heiser, UNSW.!
More informationVirtual Machines. To do. q VM over time q Implementation methods q Hardware features supporting VM q Next time: Midterm?
Virtual Machines To do q VM over time q Implementation methods q Hardware features supporting VM q Next time: Midterm? *Partially based on notes from C. Waldspurger, VMware, 2010 and Arpaci-Dusseau s Three
More informationVirtual Machine Monitors (VMMs) are a hot topic in
CSE 120 Principles of Operating Systems Winter 2007 Lecture 16: Virtual Machine Monitors Keith Marzullo and Geoffrey M. Voelker Virtual Machine Monitors Virtual Machine Monitors (VMMs) are a hot topic
More informationCOMPUTER ARCHITECTURE. Virtualization and Memory Hierarchy
COMPUTER ARCHITECTURE Virtualization and Memory Hierarchy 2 Contents Virtual memory. Policies and strategies. Page tables. Virtual machines. Requirements of virtual machines and ISA support. Virtual machines:
More information深 入解析 Docker 背后的 Linux 内核技术. 孙健波浙江 大学 SEL/VLIS 实验室
深 入解析 Docker 背后的 Linux 内核技术 孙健波浙江 大学 SEL/VLIS 实验室 www.sel.zju.edu.cn Agenda Namespace ipc uts pid network mount user Cgroup what are cgroups? usage concepts implementation What is Namespace? Lightweight
More informationBackground. IBM sold expensive mainframes to large organizations. Monitor sits between one or more OSes and HW
Virtual Machines Background IBM sold expensive mainframes to large organizations Some wanted to run different OSes at the same time (because applications were developed on old OSes) Solution: IBM developed
More informationCSC 5930/9010 Cloud S & P: Virtualization
CSC 5930/9010 Cloud S & P: Virtualization Professor Henry Carter Fall 2016 Recap Network traffic can be encrypted at different layers depending on application needs TLS: transport layer IPsec: network
More informationCS 252 Graduate Computer Architecture. Lecture 15: Virtual Machines
CS 252 Graduate Computer Architecture Lecture 15: Virtual Machines Krste Asanovic Electrical Engineering and Computer Sciences University of California, Berkeley http://www.eecs.berkeley.edu/~krste http://inst.eecs.berkeley.edu/~cs252
More informationAdvanced Operating Systems (CS 202) Virtualization
Advanced Operating Systems (CS 202) Virtualization Virtualization One of the natural consequences of the extensibility research we discussed What is virtualization and what are the benefits? 2 Virtualization
More informationZdeněk Kubala Senior QA
(Kernel) Isolation PV, HVM, OS-V technologies in Linux Introduction and description of the isolation diferences between HM, PV and OS-level virt. technologies. Zdeněk Kubala Senior QA Engineer zkubala@suse.com
More informationVirtualization. Starting Point: A Physical Machine. What is a Virtual Machine? Virtualization Properties. Types of Virtualization
Starting Point: A Physical Machine Virtualization Based on materials from: Introduction to Virtual Machines by Carl Waldspurger Understanding Intel Virtualization Technology (VT) by N. B. Sahgal and D.
More informationLearning Outcomes. Extended OS. Observations Operating systems provide well defined interfaces. Virtual Machines. Interface Levels
Learning Outcomes Extended OS An appreciation that the abstract interface to the system can be at different levels. Virtual machine monitors (VMMs) provide a lowlevel interface An understanding of trap
More informationVirtualization. ! Physical Hardware Processors, memory, chipset, I/O devices, etc. Resources often grossly underutilized
Starting Point: A Physical Machine Virtualization Based on materials from: Introduction to Virtual Machines by Carl Waldspurger Understanding Intel Virtualization Technology (VT) by N. B. Sahgal and D.
More informationSystem Virtual Machines
System Virtual Machines Outline Need and genesis of system Virtual Machines Basic concepts User Interface and Appearance State Management Resource Control Bare Metal and Hosted Virtual Machines Co-designed
More informationVirtual Machine Monitors!
ISA 673 Operating Systems Security Virtual Machine Monitors! Angelos Stavrou, George Mason University! Virtual Machine Monitors 2! Virtual Machine Monitors (VMMs) are everywhere! Industry commitment! Software:
More informationOverview of System Virtualization: The most powerful platform for program analysis and system security. Zhiqiang Lin
CS 6V81-05: System Security and Malicious Code Analysis Overview of System Virtualization: The most powerful platform for program analysis and system security Zhiqiang Lin Department of Computer Science
More informationCS 152 Computer Architecture and Engineering. Lecture 22: Virtual Machines
CS 152 Computer Architecture and Engineering Lecture 22: Virtual Machines Krste Asanovic Electrical Engineering and Computer Sciences University of California, Berkeley http://www.eecs.berkeley.edu/~krste
More informationVirtualization and memory hierarchy
Virtualization and memory hierarchy Computer Architecture J. Daniel García Sánchez (coordinator) David Expósito Singh Francisco Javier García Blas ARCOS Group Computer Science and Engineering Department
More informationVirtual Machine Security
Virtual Machine Security CSE443 - Spring 2012 Introduction to Computer and Network Security Professor Jaeger www.cse.psu.edu/~tjaeger/cse443-s12/ 1 Operating System Quandary Q: What is the primary goal
More informationSandboxing. CS-576 Systems Security Instructor: Georgios Portokalidis Spring 2018
Sandboxing CS-576 Systems Security Instructor: Georgios Portokalidis Sandboxing Means Isolation Why? Software has bugs Defenses slip Untrusted code Compartmentalization limits interference and damage!
More informationOS Virtualization. Linux Containers (LXC)
OS Virtualization Emulate OS-level interface with native interface Lightweight virtual machines No hypervisor, OS provides necessary support Referred to as containers Solaris containers, BSD jails, Linux
More informationMultiprocessor Scheduling. Multiprocessor Scheduling
Multiprocessor Scheduling Will consider only shared memory multiprocessor or multi-core CPU Salient features: One or more caches: cache affinity is important Semaphores/locks typically implemented as spin-locks:
More informationT Jarkko Turkulainen, F-Secure Corporation
T-110.6220 2010 Emulators and disassemblers Jarkko Turkulainen, F-Secure Corporation Agenda Disassemblers What is disassembly? What makes up an instruction? How disassemblers work Use of disassembly In
More informationUnit 5: Distributed, Real-Time, and Multimedia Systems
Unit 5: Distributed, Real-Time, and Multimedia Systems Unit Overview Unit 5 provides an extension to the core topics of operating systems. It introduces distributed systems and special-purpose operating
More informationXen and the Art of Virtualization
Xen and the Art of Virtualization Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield Presented by Thomas DuBuisson Outline Motivation
More informationVirtualisation: The KVM Way. Amit Shah
Virtualisation: The KVM Way Amit Shah amit.shah@qumranet.com foss.in/2007 Virtualisation Simulation of computer system in software Components Processor Management: register state, instructions, exceptions
More informationCS 5460/6460 Operating Systems
CS 5460/6460 Operating Systems Fall 2009 Instructor: Matthew Flatt Lecturer: Kevin Tew TAs: Bigyan Mukherjee, Amrish Kapoor 1 Join the Mailing List! Reminders Make sure you can log into the CADE machines
More informationCS 550 Operating Systems Spring Introduction to Virtual Machines
CS 550 Operating Systems Spring 2018 Introduction to Virtual Machines 1 How to share a physical computer Operating systems allows multiple processes/applications to run simultaneously Via process/memory
More informationFour Components of a Computer System
Four Components of a Computer System Operating System Concepts Essentials 2nd Edition 1.1 Silberschatz, Galvin and Gagne 2013 Operating System Definition OS is a resource allocator Manages all resources
More informationCSCI 8530 Advanced Operating Systems. Part 19 Virtualization
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
More informationC 1. Last time. CSE 490/590 Computer Architecture. Virtual Machines I. Types of Virtual Machine (VM) Outline. User Virtual Machine = ISA + Environment
CSE 490/590 Computer Architecture Last time Directory-based coherence protocol 4 cache states: C-invalid, C-shared, C-modified, and C-transient 4 memory states: R(dir), W(id), TR(dir), TW(id) Virtual Machines
More informationArchitectural Support for Operating Systems. Jinkyu Jeong ( Computer Systems Laboratory Sungkyunkwan University
Architectural Support for Operating Systems Jinkyu Jeong ( jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics Basic services of OS Basic computer system
More informationLecture 2: The Art of Emulation
CSCI-GA.3033-015 Virtual Machines: Concepts & Applications Lecture 2: The Art of Emulation Mohamed Zahran (aka Z) mzahran@cs.nyu.edu http://www.mzahran.com Disclaimer: Many slides of this lecture are based
More informationCOS 318: Operating Systems
COS 318: Operating Systems OS Structures and System Calls Prof. Margaret Martonosi Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall11/cos318/ Outline Protection
More informationXen is not just paravirtualization
Xen is not just paravirtualization Dongli Zhang Oracle Asia Research and Development Centers (Beijing) dongli.zhang@oracle.com December 16, 2016 Dongli Zhang (Oracle) Xen is not just paravirtualization
More informationLecture 5: February 3
CMPSCI 677 Operating Systems Spring 2014 Lecture 5: February 3 Lecturer: Prashant Shenoy Scribe: Aditya Sundarrajan 5.1 Virtualization Virtualization is a technique that extends or replaces an existing
More informationXen and the Art of Virtualization. Nikola Gvozdiev Georgian Mihaila
Xen and the Art of Virtualization Nikola Gvozdiev Georgian Mihaila Outline Xen and the Art of Virtualization Ian Pratt et al. I. The Art of Virtualization II. Xen, goals and design III. Xen evaluation
More informationCS370: Operating Systems [Spring 2017] Dept. Of Computer Science, Colorado State University
Frequently asked questions from the previous class survey CS 370: OPERATING SYSTEMS [VIRTUALIZATION] Shrideep Pallickara Computer Science Colorado State University Difference between physical and logical
More informationA Survey on Virtualization Technologies
A Survey on Virtualization Technologies Virtualization is HOT Microsoft acquires Connectix Corp. EMC acquires VMware Veritas acquires Ejascent IBM, already a pioneer Sun working hard on it HP picking up
More informationKnut Omang Ifi/Oracle 6 Nov, 2017
Software and hardware support for Network Virtualization part 1 Knut Omang Ifi/Oracle 6 Nov, 2017 1 Motivation Goal: Introduction to challenges in providing fast networking to virtual machines Prerequisites:
More informationLINUX Virtualization. Running other code under LINUX
LINUX Virtualization Running other code under LINUX Environment Virtualization Citrix/MetaFrame Virtual desktop under Windows NT. aka Windows Remote Desktop Protocol VNC, Dameware virtual console. XWindows
More informationEE 660: Computer Architecture Cloud Architecture: Virtualization
EE 660: Computer Architecture Cloud Architecture: Virtualization Yao Zheng Department of Electrical Engineering University of Hawaiʻi at Mānoa Based on the slides of Prof. Roy Campbell & Prof Reza Farivar
More informationCSE543 - Computer and Network Security Module: Virtualization
CSE543 - Computer and Network Security Module: Virtualization Professor Trent Jaeger CSE543 - Introduction to Computer and Network Security 1 Operating System Quandary Q: What is the primary goal of system
More informationServer Virtualization Approaches
Server Virtualization Approaches Virtual Machine Applications Emulation Replication Composition Emulation: Mix-and-match cross-platform portability Replication: Multiple VMs on single platform Composition:
More informationDocker A FRAMEWORK FOR DATA INTENSIVE COMPUTING
Docker A FRAMEWORK FOR DATA INTENSIVE COMPUTING Agenda Intro / Prep Environments Day 1: Docker Deep Dive Day 2: Kubernetes Deep Dive Day 3: Advanced Kubernetes: Concepts, Management, Middleware Day 4:
More informationLinux and Xen. Andrea Sarro. andrea.sarro(at)quadrics.it. Linux Kernel Hacking Free Course IV Edition
Linux and Xen Andrea Sarro andrea.sarro(at)quadrics.it Linux Kernel Hacking Free Course IV Edition Andrea Sarro (andrea.sarro(at)quadrics.it) Linux and Xen 07/05/2008 1 / 37 Introduction Xen and Virtualization
More informationCOS 318: Operating Systems. Virtual Machine Monitors
COS 318: Operating Systems Virtual Machine Monitors Prof. Margaret Martonosi Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall11/cos318/ Announcements Project
More informationWhat is KVM? KVM patch. Modern hypervisors must do many things that are already done by OSs Scheduler, Memory management, I/O stacks
LINUX-KVM The need for KVM x86 originally virtualization unfriendly No hardware provisions Instructions behave differently depending on privilege context(popf) Performance suffered on trap-and-emulate
More informationCHAPTER 16 - VIRTUAL MACHINES
CHAPTER 16 - VIRTUAL MACHINES 1 OBJECTIVES Explore history and bene ts of virtual machines. Discuss the various virtual machine technologies. Describe the methods used to implement virtualization. Show
More informationThe only open-source type-1 hypervisor
Monika Danikáková What is Xen? The only open-source type-1 hypervisor For Unix and Unix-like OS Linux, NetBSD and OpenSolaris From ancient greek term Xenos (ξένος), guest-friends Developed by the University
More informationCS-580K/480K Advanced Topics in Cloud Computing. VM Virtualization II
CS-580K/480K Advanced Topics in Cloud Computing VM Virtualization II 1 How to Build a Virtual Machine? 2 How to Run a Program Compiling Source Program Loading Instruction Instruction Instruction Instruction
More informationVirtual Machines. Virtual Machines
Virtual Machines Virtual Machines What is a virtual machine? Examples? Benefits? 1 Virtualization Creation of an isomorphism that maps a virtual guest system to a real host: Maps guest state S to host
More informationPROCESS MANAGEMENT Operating Systems Design Euiseong Seo
PROCESS MANAGEMENT 2016 Operating Systems Design Euiseong Seo (euiseong@skku.edu) Definition A process is a program in execution Context Resources Specifically, Register file state Address space File and
More informationCS370 Operating Systems
CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture 27 Virtualization Slides based on Various sources 1 1 Virtualization Why we need virtualization? The concepts and
More informationVirtualization and Virtual Machines. CS522 Principles of Computer Systems Dr. Edouard Bugnion
Virtualization and Virtual Machines CS522 Principles of Computer Systems Dr. Edouard Bugnion Virtualization and Virtual Machines 2 This week Introduction, definitions, A short history of virtualization
More informationCSE543 - Computer and Network Security Module: Virtualization
CSE543 - Computer and Network Security Module: Virtualization Professor Trent Jaeger CSE543 - Introduction to Computer and Network Security 1 1 Operating System Quandary Q: What is the primary goal of
More informationIntel s Virtualization Extensions (VT-x) So you want to build a hypervisor?
Intel s Virtualization Extensions (VT-x) So you want to build a hypervisor? Mr. Jacob Torrey May 13, 2014 Dartmouth College 153 Brooks Road, Rome, NY 315.336.3306 http://ainfosec.com @JacobTorrey torreyj@ainfosec.com
More informationNested Virtualization and Server Consolidation
Nested Virtualization and Server Consolidation Vara Varavithya Department of Electrical Engineering, KMUTNB varavithya@gmail.com 1 Outline Virtualization & Background Nested Virtualization Hybrid-Nested
More informationHigh-Level Language VMs
High-Level Language VMs Outline Motivation What is the need for HLL VMs? How are these different from System or Process VMs? Approach to HLL VMs Evolutionary history Pascal P-code Object oriented HLL VMs
More informationDistributed Systems COMP 212. Lecture 18 Othon Michail
Distributed Systems COMP 212 Lecture 18 Othon Michail Virtualisation & Cloud Computing 2/27 Protection rings It s all about protection rings in modern processors Hardware mechanism to protect data and
More informationVirtual Machines Disco and Xen (Lecture 10, cs262a) Ion Stoica & Ali Ghodsi UC Berkeley February 26, 2018
Virtual Machines Disco and Xen (Lecture 10, cs262a) Ion Stoica & Ali Ghodsi UC Berkeley February 26, 2018 Today s Papers Disco: Running Commodity Operating Systems on Scalable Multiprocessors, Edouard
More informationOS Containers. Michal Sekletár November 06, 2016
OS Containers Michal Sekletár msekleta@redhat.com November 06, 2016 whoami Senior Software Engineer @ Red Hat systemd and udev maintainer Free/Open Source Software contributor Michal Sekletár msekleta@redhat.com
More informationArchitectural Support for Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Architectural Support for Operating Systems Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics Basic structure of OS Basic computer
More informationCSE543 - Computer and Network Security Module: Virtualization
CSE543 - Computer and Network Security Module: Virtualization Professor Trent Jaeger CSE543 - Introduction to Computer and Network Security 1 Operating System Quandary Q: What is the primary goal of system
More informationIntroduction to Virtual Machines. Carl Waldspurger (SB SM 89 PhD 95) VMware R&D
Introduction to Virtual Machines Carl Waldspurger (SB SM 89 PhD 95) VMware R&D Overview Virtualization and VMs Processor Virtualization Memory Virtualization I/O Virtualization Typesof Virtualization Process
More informationVirtual Virtual Memory
Virtual Virtual Memory Jason Power 3/20/2015 With contributions from Jayneel Gandhi and Lena Olson 4/17/2015 UNIVERSITY OF WISCONSIN 1 Virtual Machine History 1970 s: VMMs 1997: Disco 1999: VMWare (binary
More informationVirtualization. Dr. Yingwu Zhu
Virtualization Dr. Yingwu Zhu Virtualization Definition Framework or methodology of dividing the resources of a computer into multiple execution environments. Types Platform Virtualization: Simulate a
More informationXen and the Art of Virtualiza2on
Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian PraF, Andrew Warfield University of Cambridge Computer Laboratory Kyle SchuF CS 5204 Virtualiza2on Abstrac2on
More information