Download presentation
Presentation is loading. Please wait.
Published byRalph Elliott Modified over 8 years ago
1
Xen and the Art of Virtualization Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield
2
Apology / Disclaimer
3
Why Virtualise? Consolidate machines Isolate performance Stay flexible
4
HARDWARE
5
???
6
HARDWARE ??? LinuxWinXP
7
HARDWARE ??? LinuxWinXPMirage
8
HARDWARE Virtual Machine Monitor LinuxWinXPMirage
9
How to Build a VMM 1: Emulation HARDWARE Normal OS EMULATOR PROCESS Guest Kernel Guest App “Physical” memory Virtual MMU Virtual System Calls Virtual CPU
10
How to Build a VMM 2: Trap and Emulate HARDWARE Normal OS EMULATOR PROCESS Guest Kernel “Physical” memory Virtual MMU Virtual System Calls Guest App
11
How to Build a VMM 2: Trap and Emulate HARDWARE Normal OS EMULATOR PROCESS Guest Kernel “Physical” memory Virtual MMU Virtual System Calls Guest App add %eax, %ebx
12
How to Build a VMM 2: Trap and Emulate HARDWARE Normal OS EMULATOR PROCESS Guest Kernel “Physical” memory Virtual MMU Virtual System Calls Guest App outb %al
13
How to Build a VMM 2: Trap and Emulate HARDWARE Normal OS EMULATOR PROCESS Guest Kernel “Physical” memory Virtual MMU Virtual System Calls Guest App outb %al
14
How to Build a VMM 2: Trap and Emulate HARDWARE Normal OS EMULATOR PROCESS Guest Kernel “Physical” memory Virtual MMU Virtual System Calls Guest App sysenter handle_sysenter
15
How to Build a VMM 2: Trap and Emulate for(i = 0; i < 256; i++) mangle_pagetable_entry(&ptes[i]); 256 traps into the emulator Severe performance penalty
16
How to Build a VMM 3: Dynamic Binary Translation HARDWARE Normal OS TRANSLATOR PROCESS Rewritten Guest Kernel Rewritten Guest App “Physical” memory Virtual MMU Virtual System Calls
17
How to Build a VMM 3: Dynamic Binary Translation for(i = 0; i < 256; i++) mangle_pagetable_entry(&ptes[i]);
18
How to Build a VMM 3: Dynamic Binary Translation pte_t new_ptes[256]; for(i = 0; i < 256; i++) new_ptes[i] = mangled_entry(&ptes[i]); register_new_ptes(new_ptes, 256); But when is this a safe alteration?
19
How to Build a VMM 4: Xen Q. But when is this a safe alteration? A. Let the humans worry about that. Manually hack the OS: “paravirtualisation”.
20
Xen: Founding Principles Minimally alter guest OS Don't disguise multiplexing Thusly, be faster than the competition
21
VMWare Memory Management VAS Pages“Physical” frames
22
VMWare Memory Management VAS Pages“Physical” frames Page Table
23
VMWare Memory Management VAS PagesPhysical frames Page Table (not really)
24
VMWare Memory Management VAS PagesPhysical frames Shadow Page Table
25
Xen Memory Management VAS PagesPhysical frames
26
Xen Memory Management VAS PagesPhysical frames Page Table
27
VMWare I/O “Physical” Memory “Device” Memory “I/O Ports” “Device” Ports NE2000 Model Rubbish NIC One op at a time Shared buffers
28
Xen I/O Own Memor y Packet Async Queue --> <-- Async Queue Hypervisor
29
Xen I/O Own Memor y Packet Async Queue --> <-- Async Queue Hypervisor
30
Xen I/O Own Memor y Buffer Async Queue --> <-- Async Queue Hypervisor
31
Strawman Warning VMWare does that too “Guest additions” are basically paravirt
32
Is it Any Good?
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.