x86 virtualization
play

x86 Virtualization Hardware/Software Techniques Host/Guest - PowerPoint PPT Presentation

x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 x86 Virtualization Hardware/Software Techniques Host/Guest Communication Corentin Derbois Marc Angel corentin@lse.epita.fr null@lse.epita.fr http://lse.epita.fr/ July


  1. x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 x86 Virtualization Hardware/Software Techniques Host/Guest Communication Corentin Derbois Marc Angel corentin@lse.epita.fr null@lse.epita.fr http://lse.epita.fr/ July 17, 2013

  2. x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 1 Virtualization 101 Hardware/Software Techniques Host/Guest 2 Hardware/Software Techniques Communication 3 Host/Guest Communication

  3. What? x86 Virtualization Corentin Derbois, Marc Angel • Single computer, multiple OSs • Hardware-level virtualization Virtualization 101 What Why • As opposed to OS-level virtualization How Hardware/Software • LXC, OpenVZ, FreeBSD jails. . . Techniques Host/Guest Communication

  4. Why? x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 What Why How • Kernel Debugging Hardware/Software Techniques • Money Host/Guest Communication • Flexibility • . . .

  5. How? x86 Virtualization Corentin Derbois, Marc Angel • Popek and Goldberg requirements Virtualization 101 • Fidelity What Why • Safety How Hardware/Software • Performance Techniques • Binary Translation Host/Guest Communication • VMware, VirtualBox, KQEMU • Paravirtualization • Xen • Full Virtualization • KVM, VMware, VirtualBox, Xen. . .

  6. Instruction Set Virtualization x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software • Run the VMM at a higher level of privilege Techniques Instruction Set Virt. • trap-and-emulate Memory Virtualization I/O Virtualization • Sensitive instructions yield control to ring 0 Host/Guest Communication • The VMM emulates them • Some instructions do not trap (popf, sidt. . . ) • 17 of those

  7. Software: Binary Translation x86 Virtualization • Replace critical instructions with traps Corentin Derbois, Marc Angel • Let the VMM emulate them • Run userland code “as is” Virtualization 101 • Need to emulate syscalls Hardware/Software Techniques Instruction Set Virt. Memory Virtualization I/O Virtualization Host/Guest Communication

  8. Software: Paravirtualization x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Instruction Set Virt. Memory Virtualization I/O Virtualization Host/Guest Communication

  9. Intel & AMD Hardware Solution x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Instruction Set Virt. • VT-x and AMD-v Memory Virtualization I/O Virtualization • One ring to rule them all Host/Guest Communication • new set of instructions at ring -1 • Guest OS goes back to ring 0

  10. Intel: VMX x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Instruction Set Virt. Memory Virtualization I/O Virtualization Host/Guest Communication

  11. AMD: SVM x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Instruction Set Virt. Memory Virtualization I/O Virtualization Host/Guest Communication

  12. Intel & AMD Hardware Solution x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 • Add protection to specific instructions Hardware/Software Techniques Instruction Set Virt. • CPUID Memory Virtualization I/O Virtualization • LGDT Host/Guest • . . . Communication • Two ways to handle critical instructions • Trigger VMEXIT • Let the processor handle them directly

  13. Hardware: VMEXIT & native x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Instruction Set Virt. • Processor data are stored in specific data structures Memory Virtualization I/O Virtualization • AMD: VMCB Host/Guest Communication • Intel: VMCS • Store to CRx, GDT, selectors. . .

  14. Hardware: VMEXIT & native x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software • Some behaviors can’t be automatically handled by the Techniques Instruction Set Virt. CPU Memory Virtualization I/O Virtualization • I/O Host/Guest • CPUID Communication • PageFault • In this case, a VMEXIT is triggered to ask the host OS to emulate them

  15. MMU Virtualization x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Instruction Set Virt. • Three levels of memory Memory Virtualization I/O Virtualization • Guest virtual address space Host/Guest Communication • Guest physical address space • VMM physical memory

  16. Software: Shadow Page Tables x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Instruction Set Virt. Memory Virtualization I/O Virtualization Host/Guest Communication

  17. Hardware: Intel EPT, AMD RVI x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Instruction Set Virt. Memory Virtualization I/O Virtualization Host/Guest Communication

  18. I/O Virtualization x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Instruction Set Virt. Memory Virtualization I/O Virtualization Host/Guest Communication

  19. IOMMU x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Instruction Set Virt. Memory Virtualization I/O Virtualization Host/Guest Communication

  20. CPUID x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software • Triggers VMEXIT Techniques Host/Guest • Offers a decent interface for Question/Answer Communication CPUID • Static I/O Ports PCI • Xen Virtio • CPUID is overwritable in PVM • Can get specific value from Xen

  21. I/O Ports x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 • Triggers VMEXIT Hardware/Software • Offers a large choice to make I/O requests Techniques • Dynamic discussion at each VMEXIT Host/Guest Communication • VMware CPUID I/O Ports PCI • Port: 0x5658 Virtio • Can get lots of information: • Processor Speed • VMware version • Memory size • . . .

  22. PCI x86 Virtualization Corentin Derbois, Marc Angel • PCI offers a decent interface to communicate Virtualization 101 Hardware/Software • Some HVM use it to make their video driver and do Techniques some communication Host/Guest Communication • Mainly for Desktop drivers CPUID I/O Ports PCI • VirtualBox Virtio • BEEF - > video driver • CAFE - > some other driver • VMware • PCI driver for SVGA monitor

  23. Virtio x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Host/Guest Communication CPUID I/O Ports PCI Virtio • A common framework for I/O virtualization for hypervisors • Main I/O virtualization platform in KVM • High performance

  24. Virtio Architecture x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Host/Guest Communication CPUID I/O Ports PCI Virtio

  25. Supported Devices x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software • Network Techniques • Block Host/Guest Communication • Console CPUID I/O Ports • Entropy PCI Virtio • Balloon • Rpmsg • SCSI Host

  26. Virtio Devices x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software • Presented by the host as a regular PCI device Techniques Host/Guest • Vendor ID: 0x1AF4 (Qumranet) Communication CPUID • Device ID for each type of device I/O Ports PCI • Configuration header at the start of the BAR Virtio • Memory mapped header for embedded devices without PCI support

  27. Virtio PCI Header x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Host/Guest Communication CPUID I/O Ports PCI Can be followed by device specific headers: Virtio • MAC addresses for network devices • Other information for block devices (cylinder/head/sector counts. . . )

  28. Virtio PCI Device Init x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Host/Guest Communication 1 RESET CPUID I/O Ports 2 ACKNOWLEDGE PCI Virtio • Valid virtio PCI device 3 DRIVER • We know how to use the device 4 DRIVER OK • Virtqueue configuration • Feature exchange

  29. Virtqueues x86 Virtualization • 0 or more virtqueues per devices Corentin Derbois, • Spans 2 pages Marc Angel Virtualization 101 Hardware/Software Techniques Host/Guest Communication CPUID I/O Ports PCI Virtio

  30. Conclusion x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Host/Guest Communication Conclusion

  31. Questions? x86 Virtualization Corentin Derbois, Marc Angel Virtualization 101 Hardware/Software Techniques Host/Guest Communication Thank you

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend