is not just paravirtualization

Dongli Zhang

Oracle Asia Research and Development Centers (Beijing) [email protected]

December 16, 2016

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 1 / 30 When discussing virtualizatin … 1) CPU ? 2) Memory Virtualization? 3) Device Virtualization?

Plan

Virtualization

Xen Virtualization

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 2 / 30 Plan

Virtualization

Xen Virtualization

When discussing virtualizatin … 1) CPU Virtualization? 2) Memory Virtualization? 3) Device Virtualization?

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 2 / 30 What is virtualization

A is taken to be an efficient, isolated duplicate of the real machine (by Formal Requirements for Virtualizable Third Generation Architectures, Gerald J.Popek and Rebert P. Goldberg, 1974)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 3 / 30 What is virtualization

A virtual machine is taken to be an efficient, isolated duplicate of the real machine (by Formal Requirements for Virtualizable Third Generation Architectures, Gerald J.Popek and Rebert P. Goldberg, 1974)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 3 / 30 Trap and Emulate

Virtual Machine (Guest) at Unprivileged Mode Virtual Machine Monitor (Host or ) at Priviledged Mode

Guest OS + Applications d

e

g

e

l

i

v

i

r

p

n U

Page Privileged vIRQ

Fault Instruction

d

e

g

e l

MMU Emulation CPU Emulation IRQ Emulation i

v

i

r P

Virtual Machine Monitor

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 4 / 30 18 critical instructions on (Analysis of the Intel Pentium’s Ability to Support a Secure Virtual Machine Monitor. USENIX Security 2000): SGDT/SIDT/SLDT, SMSW, PUSHF/POPF LAR/LSL, VERR/VERW, POP/PUSH CALL, JMP, INT n, RET STR, MOV Solutions: Binary Translation (QEMU, VMWare) Paravirtualization (Xen) Hardware-Assisted Virtualization (Xen, KVM, VMWare based on Intel-VT and AMD-V)

x86 is NOT virtualizable

Virtualizable Architecture: all sensitive instructions must also be privileged instructions (by Gerald J.Popek and Rebert P. Goldberg) critical instructions = sensitive instructions − privileged instructions

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 5 / 30 Solutions: Binary Translation (QEMU, VMWare) Paravirtualization (Xen) Hardware-Assisted Virtualization (Xen, KVM, VMWare based on Intel-VT and AMD-V)

x86 is NOT virtualizable

Virtualizable Architecture: all sensitive instructions must also be privileged instructions (by Gerald J.Popek and Rebert P. Goldberg) critical instructions = sensitive instructions − privileged instructions 18 critical instructions on x86 (Analysis of the Intel Pentium’s Ability to Support a Secure Virtual Machine Monitor. USENIX Security 2000): SGDT/SIDT/SLDT, SMSW, PUSHF/POPF LAR/LSL, VERR/VERW, POP/PUSH CALL, JMP, INT n, RET STR, MOV

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 5 / 30 x86 is NOT virtualizable

Virtualizable Architecture: all sensitive instructions must also be privileged instructions (by Gerald J.Popek and Rebert P. Goldberg) critical instructions = sensitive instructions − privileged instructions 18 critical instructions on x86 (Analysis of the Intel Pentium’s Ability to Support a Secure Virtual Machine Monitor. USENIX Security 2000): SGDT/SIDT/SLDT, SMSW, PUSHF/POPF LAR/LSL, VERR/VERW, POP/PUSH CALL, JMP, INT n, RET STR, MOV Solutions: Binary Translation (QEMU, VMWare) Paravirtualization (Xen) Hardware-Assisted Virtualization (Xen, KVM, VMWare based on Intel-VT and AMD-V)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 5 / 30 Solution 1/3: Binary Translation

philosophy: rewrite critical instructions

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 6 / 30 Solution 2/3: (Intel VT)

philosophy: instroduce new privileged mode

Ring 3 Ring 3

Ring 0 Ring 0

VM Entry Non-Root VM Entry Non-Root Mode (Guest) Mode (Guest)

VM Exit VM Exit Ring 3

Ring 0 VMXON VMOFF Root Mode (VMM)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 7 / 30 KVM (Kernel-based Virtual Machine)

CPU hardware virtualization extensions (Intel VT or AMD-V) Loadable kernel module (kvm.ko, kvm-intel.ko/kvm-amd.ko) QEMU as userspace

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 8 / 30 Solution 3/3: Paravirtualization

philosophy: replace critical instructions with hypercalls A hypercall is a software trap from a domain to the hypervisor, just as a syscall is a software trap from an application to the kernel x86 32: int 0x82 x86 64: syscall instruction x86 Intel-VT vmcall instruction

user user user System call via syscall non-root ring 3 ring 3 ring 3

kernel kernel kernel non-root Hypercall via int 0x82 ring 1 Hypercall via syscall ring 3 Hypercall via vmcall ring 0

xen xen xen ring 0 Xen hypervisor will checks ring 0 root in which mode the syscall instruction is triggered ring 0

x86 32-bit pvm x86 64-bit pvm x86 vt-x hvm/pvhvm

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 9 / 30 Paravirtualization (Xen) Hardware-assisted Virtualization (KVM, Xen, VMware) OS-level Virtualization ( Container) Programming Language Virtualization (Java, .NET CLR) Library Virtualization (Wine, Cygwin)

State of the Art Virtualization

Binary Translation (QEMU, Bochs, VMWare)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 10 / 30 Hardware-assisted Virtualization (KVM, Xen, VMware) OS-level Virtualization (Linux Container) Programming Language Virtualization (Java, .NET CLR) Library Virtualization (Wine, Cygwin)

State of the Art Virtualization

Binary Translation (QEMU, Bochs, VMWare) Paravirtualization (Xen)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 10 / 30 OS-level Virtualization (Linux Container) Programming Language Virtualization (Java, .NET CLR) Library Virtualization (Wine, Cygwin)

State of the Art Virtualization

Binary Translation (QEMU, Bochs, VMWare) Paravirtualization (Xen) Hardware-assisted Virtualization (KVM, Xen, VMware)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 10 / 30 Programming Language Virtualization (Java, .NET CLR) Library Virtualization (Wine, Cygwin)

State of the Art Virtualization

Binary Translation (QEMU, Bochs, VMWare) Paravirtualization (Xen) Hardware-assisted Virtualization (KVM, Xen, VMware) OS-level Virtualization (Linux Container)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 10 / 30 Library Virtualization (Wine, Cygwin)

State of the Art Virtualization

Binary Translation (QEMU, Bochs, VMWare) Paravirtualization (Xen) Hardware-assisted Virtualization (KVM, Xen, VMware) OS-level Virtualization (Linux Container) Programming Language Virtualization (Java, .NET CLR)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 10 / 30 State of the Art Virtualization

Binary Translation (QEMU, Bochs, VMWare) Paravirtualization (Xen) Hardware-assisted Virtualization (KVM, Xen, VMware) OS-level Virtualization (Linux Container) Programming Language Virtualization (Java, .NET CLR) Library Virtualization (Wine, Cygwin)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 10 / 30 SOSP 2003: Xen and the Art of Virtualization This paper presents Xen, an x86 virtual machine monitor which allows multiple commodity operating systems to share conventional hardware in a safe and resource managed fashion, but without sacrificing either performance or functionality.

Basic Idea of Paravirtualization Actively inform the hypervisor with the action guest is going to taken via hypercall

What is Xen

Wikipedia Xen Project is a hypervisor using a microkernel design, providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently.

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 11 / 30 Basic Idea of Paravirtualization Actively inform the hypervisor with the action guest is going to taken via hypercall

What is Xen

Wikipedia Xen Project is a hypervisor using a microkernel design, providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently.

SOSP 2003: Xen and the Art of Virtualization This paper presents Xen, an x86 virtual machine monitor which allows multiple commodity operating systems to share conventional hardware in a safe and resource managed fashion, but without sacrificing either performance or functionality.

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 11 / 30 What is Xen

Wikipedia Xen Project is a hypervisor using a microkernel design, providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently.

SOSP 2003: Xen and the Art of Virtualization This paper presents Xen, an x86 virtual machine monitor which allows multiple commodity operating systems to share conventional hardware in a safe and resource managed fashion, but without sacrificing either performance or functionality.

Basic Idea of Paravirtualization Actively inform the hypervisor with the action guest is going to taken via hypercall

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 11 / 30 dom0 (host): privileged admin xm/xend/xl (libxc) pygrub/hvmloader xenstored and paravirtual driver backend native device driver

domU (guest): non-privileged user paravirtual driver frontend

Xen Framework 1/2

xen hypervisor (microkernel): dictator scheduling, memory management, interrupt and device control per-domain and per-vcpu info management

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 12 / 30 domU (guest): non-privileged user paravirtual driver frontend

Xen Framework 1/2

xen hypervisor (microkernel): dictator scheduling, memory management, interrupt and device control per-domain and per-vcpu info management

dom0 (host): privileged admin xm/xend/xl (libxc) pygrub/hvmloader xenstored qemu and paravirtual driver backend native device driver

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 12 / 30 Xen Framework 1/2

xen hypervisor (microkernel): dictator scheduling, memory management, interrupt and device control per-domain and per-vcpu info management

dom0 (host): privileged admin xm/xend/xl (libxc) pygrub/hvmloader xenstored qemu and paravirtual driver backend native device driver

domU (guest): non-privileged user paravirtual driver frontend

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 12 / 30 Xen Framework 2/2

Domain 0 PVM HVM PVHVM xm xl xenstore

xend QEMUs

Legacy Backend Frontend Legacy Frontend privcmd Device PV PV Device PV driver Drivers Drivers Drivers Drivers Drivers

Memory CPU Timer Xen Hypervisor Management Virtualization Virtualization

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 13 / 30 Convert Linux to Paravirtual Dom0/DomU

ELF notes (Linux) or xen guest section (MiniOS) in kernel image Enable xen features in .config when building kernel

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 14 / 30 PV, HVM or PVHVM

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 15 / 30 Xen CPU Virtualization

vcpu ≈ task struct domain ≈ container or process group xen schedules vcpu

user user user 1. system call 2. system call 1. system call non-root ring 3 ring 3 ring 3

kernel kernel kernel 3. Handled in non-root ring 1 guest kernel ring 3 3. Trap to and handled 2. Trap to and handled ring 0 in guest kernel In guest kernel directly

xen xen xen 1. set a per-domain system ring 0 ring 0 root call handler when the domain 2. Route to guest kernel ring 0 gets scheduled system call handler

x86 32-bit pvm x86 64-bit pvm x86 vt-x hvm/pvhvm

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 16 / 30 Xen Interrupt Virtualization: Event Channel 1/2

Event Channel Types Interdomain Event Virtual IRQ Event Physical IRQ Event IPI Event

Registration PVM registers event channel handler to Xen via register callback(CALLBACKTYPE event, xen hypervisor callback) PVHVM sets HYPERVISOR CALLBACK VECTOR via HYPERVISOR hvm op(HVMOP set param, &a)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 17 / 30 Xen Interrupt Virtualization: Event Channel 2/2

Domain 0 PVM HVM PVHVM

xen_evtchn_do_upcall will traverse and handle each pending event xen_evtchn_do_upcall xen_evtchn_do_upcall will traverse and handle will traverse and handle Guest will handle interrupt each pending event each pending event as native machine IRQ handler for vector 0xf3 is called

vcpu vcpu vcpu vcpu vcpu vcpu vcpu vcpu

Global Event Channel Info Global Event Channel Mask Global Event Channel Mask Global Event Channel Mask

Per-vcpu Event Channel Info Per-vcpu Event Channel Mask Per-vcpu Event Channel Mask Per-vcpu Event Channel Mask

set eip to set eip to Intel-vt based Intel-vt based xen_hypervisor_callback xen_hypervisor_callback interrupt injection and interrupt injection and during scheduling during scheduling one vector for each irq vector 0xf3 for each event if vcpu has pending event if vcpu has pending event

Xen Hypervisor Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 18 / 30 Xen Memory Virtualization 1/2

Address Types GVA (Guest Virtual Address) GPA (Guest Physical Address) or GFN (Guest page Frame Number) HPA (Host Physical Address) or MFN (Machine page Frame Number) Hardware-assisted Memory Virtualization (Method 1/3): Second-Level Page Table : Intel: Extended Page Table (EPT) : AMD: Nested Page Table (NPT)

Non-Root Mode Root Mode

Guest CR3 Register Host EPTP Register

Guest Host Guest Virtual Address Page Guest Physical Address Page Host Physical Address Tables Tables

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 19 / 30 Xen Memory Virtualization 2/2

Direct Paging (Method 2/3): guest manage the (GVA, HPA) page table directly Shadow Paging (Method 3/3): xen hypervisor maintains a shadow (GVA, HPA) page table which is not awared by guest

PFN MFN P2m Table is mapped to guest by hypervisor … ... MFN PFN

MFN MFN PFN PFN Guest OS Guest OS

Shadow Table PFN

Xen Xen Hypervisor Hypervisor PFN PFN

MFN MFN MMU MFN MMU MFN MFN MFN

Direct Paging (MMU Paravirtualization) Shadow Page Table

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 20 / 30 Paravirtual (PV) drivers Device Passthrough (vt-d) Virtual Function (vt-d)

Xen Device Virtualization

HVM emulated legacy device (QEMU)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 21 / 30 Device Passthrough (vt-d) Virtual Function (vt-d)

Xen Device Virtualization

HVM emulated legacy device (QEMU) Paravirtual (PV) drivers

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 21 / 30 Virtual Function (vt-d)

Xen Device Virtualization

HVM emulated legacy device (QEMU) Paravirtual (PV) drivers Device Passthrough (vt-d)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 21 / 30 Xen Device Virtualization

HVM emulated legacy device (QEMU) Paravirtual (PV) drivers Device Passthrough (vt-d) Virtual Function (vt-d)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 21 / 30 Xen Device Virtualization

HVM emulated legacy device (QEMU) Paravirtual (PV) drivers Device Passthrough (vt-d) Virtual Function (vt-d)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 21 / 30 xenbus device, xenbus driver Xenstore Xenstore Memory Ring Buffer Grant Table Event Channel

PV driver vs. PCI driver

PCI driver PV driver device abstraction pci device, pci driver device discovery PCI Tree device configuration PCI Config Space (IO/MMIO) data flow DMA Ring Buffer shared memory N/A or IOMMU interrupt IOAPIC, MSI, MSI-X

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 22 / 30 Xenstore Xenstore Memory Ring Buffer Grant Table Event Channel

PV driver vs. PCI driver

PCI driver PV driver device abstraction pci device, pci driver xenbus device, xenbus driver device discovery PCI Tree device configuration PCI Config Space (IO/MMIO) data flow DMA Ring Buffer shared memory N/A or IOMMU interrupt IOAPIC, MSI, MSI-X

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 22 / 30 Xenstore Memory Ring Buffer Grant Table Event Channel

PV driver vs. PCI driver

PCI driver PV driver device abstraction pci device, pci driver xenbus device, xenbus driver device discovery PCI Tree Xenstore device configuration PCI Config Space (IO/MMIO) data flow DMA Ring Buffer shared memory N/A or IOMMU interrupt IOAPIC, MSI, MSI-X

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 22 / 30 Memory Ring Buffer Grant Table Event Channel

PV driver vs. PCI driver

PCI driver PV driver device abstraction pci device, pci driver xenbus device, xenbus driver device discovery PCI Tree Xenstore device configuration PCI Config Space (IO/MMIO) Xenstore data flow DMA Ring Buffer shared memory N/A or IOMMU interrupt IOAPIC, MSI, MSI-X

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 22 / 30 Grant Table Event Channel

PV driver vs. PCI driver

PCI driver PV driver device abstraction pci device, pci driver xenbus device, xenbus driver device discovery PCI Tree Xenstore device configuration PCI Config Space (IO/MMIO) Xenstore data flow DMA Ring Buffer Memory Ring Buffer shared memory N/A or IOMMU interrupt IOAPIC, MSI, MSI-X

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 22 / 30 Event Channel

PV driver vs. PCI driver

PCI driver PV driver device abstraction pci device, pci driver xenbus device, xenbus driver device discovery PCI Tree Xenstore device configuration PCI Config Space (IO/MMIO) Xenstore data flow DMA Ring Buffer Memory Ring Buffer shared memory N/A or IOMMU Grant Table interrupt IOAPIC, MSI, MSI-X

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 22 / 30 PV driver vs. PCI driver

PCI driver PV driver device abstraction pci device, pci driver xenbus device, xenbus driver device discovery PCI Tree Xenstore device configuration PCI Config Space (IO/MMIO) Xenstore data flow DMA Ring Buffer Memory Ring Buffer shared memory N/A or IOMMU Grant Table interrupt IOAPIC, MSI, MSI-X Event Channel

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 22 / 30 Xenstore/Xenbus

write VM config to xenstore: * device info * memory hotplug ... monitor changes xm / xl in xenstore with xenwatch xenstore xenbus

monitor changes in xenstore with xenwatch

xenbus Domain 0 Domain U

Xen Hypervisor

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 23 / 30 Grant Table

Domain 0 pfn 1024

Network 3. Share ref 19 to domain 0 Packets Domain 1 via xenstore or other ways xen-netback xen-netfront

4. Can I map (copy) ref 19 to my memory space? 2. I want to share pfn 1024 as grant table reference 19 to Domain 0. Domain 0 can map or copy from this page 1. Pick up a free grant table reference 19

Grant Table for Grant Table for Domain 0 Domain 1

5. You are allowed to access ref 19. I will map or copy the data to your memory space Xen Hypervisor Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 24 / 30 I/O Ring Buffer

Usually put grant ref (not data) in ring Grant ref of ring pages are shared via xenstore Usually one ring buffer for each device queue One or more pages for each ring Producer and Consumer (barrier)

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 25 / 30 Xen Paravirtual Networking Framework

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 26 / 30 VM Creation Workflow

Boot PVM into XML-RPC Ask xen hypervisor to via socket xend create a VM, initiate .cfg xm create vcpu, p2m, etc. (libxc) xen Extract hypervisor kernel and ramdisk Boot HVM/PVHVM from vdisk into real mode via pygrub via hvmloader xl create for PVM (libxc) Write VM device info to xenstore xenstore

Watching at xenstore. Initiate device driver at frontend DomU xensore Guest Synchronize with each other via Watching at xenstore. Ask userspace xenstore and Initiate device driver hotplug script to Bridging vif to bridge or finish! at backend help configure obtain major/minor number backend udev on of VM disk image file hotplug Dom0 xenstore Dom0 script

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 27 / 30 LivePatch Stealthy monitoring with Xen altp2m Real-Time-Deferrable-Server(RTDS) CPU Scheduler Windows PV Receive Side Scaling More at Xen Summit and xen-devel

Selected Xen Projects

COLO - Coarse Grain Lock Stepping

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 28 / 30 Stealthy monitoring with Xen altp2m Real-Time-Deferrable-Server(RTDS) CPU Scheduler Windows PV Receive Side Scaling More at Xen Summit and xen-devel

Selected Xen Projects

COLO - Coarse Grain Lock Stepping LivePatch

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 28 / 30 Real-Time-Deferrable-Server(RTDS) CPU Scheduler Windows PV Receive Side Scaling More at Xen Summit and xen-devel

Selected Xen Projects

COLO - Coarse Grain Lock Stepping LivePatch Stealthy monitoring with Xen altp2m

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 28 / 30 Windows PV Receive Side Scaling More at Xen Summit and xen-devel

Selected Xen Projects

COLO - Coarse Grain Lock Stepping LivePatch Stealthy monitoring with Xen altp2m Real-Time-Deferrable-Server(RTDS) CPU Scheduler

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 28 / 30 More at Xen Summit and xen-devel

Selected Xen Projects

COLO - Coarse Grain Lock Stepping LivePatch Stealthy monitoring with Xen altp2m Real-Time-Deferrable-Server(RTDS) CPU Scheduler Windows PV Receive Side Scaling

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 28 / 30 Selected Xen Projects

COLO - Coarse Grain Lock Stepping LivePatch Stealthy monitoring with Xen altp2m Real-Time-Deferrable-Server(RTDS) CPU Scheduler Windows PV Receive Side Scaling More at Xen Summit and xen-devel

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 28 / 30 Reference

Publications Xen and the art of virtualization. Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield. SOSP 2003 The Definitive Guide to the Xen Hypervisor. David Chisnall. 2007 Intel 64 and IA-32 Architectures Software Developer Manuals Various system & security research paper and presentation

Miscellaneous Xen Project Developer Summit https://blog.xenproject.org https://github.com/finallyjustice/JOS-vmx

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 29 / 30 Paravirtualization and Hardware-assisted Virtualization Xen vs. KVM Grant Table, Event Channel, Paravirtual Drivers

Take-Home Message

What is virtualization

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 30 / 30 Xen vs. KVM Grant Table, Event Channel, Paravirtual Drivers

Take-Home Message

What is virtualization Paravirtualization and Hardware-assisted Virtualization

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 30 / 30 Grant Table, Event Channel, Paravirtual Drivers

Take-Home Message

What is virtualization Paravirtualization and Hardware-assisted Virtualization Xen vs. KVM

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 30 / 30 Take-Home Message

What is virtualization Paravirtualization and Hardware-assisted Virtualization Xen vs. KVM Grant Table, Event Channel, Paravirtual Drivers

Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 30 / 30