90 likes | 319 Views
What is Virtualization ?. Fully Utilizing Hardware. Virtualization. etc. Sharing Hardware Resource. Running Applications (x-platform). Security. Virtual Machine !. Why Virtualization is Difficult ? (1/2). 0/1/3 Ring, e.g. x86_32. OS is moved to ring1/3 On x86 Some instructions
E N D
What is Virtualization ? Fully Utilizing Hardware Virtualization etc Sharing Hardware Resource Running Applications (x-platform) Security Virtual Machine ! /45
Why Virtualization is Difficult ? (1/2) 0/1/3 Ring, e.g. x86_32 • OS is moved to ring1/3 • On x86 • Some instructions • Sensitive Instructions • Cannot be trapped OS 0/3/3 Ring, e.g. x86_64, ARM OS
Why Virtualization is Difficult ? (2/2) - Examples SGDT, SIDT and SLDT SGDT m // save gdtr to memory SIDT m // save idtr to memory SLDT r/m16 // save ldtr to memory Only one gdtr, idtr and ldtr on a cpu ! POP POP ss // need to satisfy RPL=CPL=DPL CPL changes to 1 or 3 !
How to Virtualize ? (1/2) • Binary translation • Hypercall Full Virtualization Para Virtualization Hardware Assisted Virtualization Intel VT-x & AMD SVM
How to Virtualize ? (2/2) Type I • Hypervisor (VMM) Type • Type I + Microkernel • Xen (open source, citrix), • Microsoft Hyper-V • Type I + Integrated kernel • VMware ESX, • KVM (kernel-base VM) • Type II (Host OS + Guest OS) • VMware GSX, workstation, • Microsoft virtual PC, • Microsoft virtual server, • Sun Virtual Box Type II
Xen Architecture (2/2) • Compare to common Linux