SlideShare a Scribd company logo
1 of 43
Hypervisors
Inzemamul Haque
02 March 2015
Motivation
• In some situations, organizations need different computers but
actually do not want it.
Motivation
• In some situations, organizations need different computers but
actually do not want it.
• E.g. a company has e-mail server, web server, FTP server, etc.
Motivation
• In some situations, organizations need different computers but
actually do not want it.
• E.g. a company has e-mail server, web server, FTP server, etc.
• Due to reliability, use separate machines
Motivation
• In some situations, organizations need different computers but
actually do not want it.
• E.g. a company has e-mail server, web server, FTP server, etc.
• Due to reliability, use separate machines
Solution is virtualization
Virtualization
• Allows a single computer to run different virtual systems (Virtual
Machines).
Virtualization
• Allows a single computer to run different virtual systems (Virtual
Machines).
• Abstracts the hardware of a single computer into different execution
environments
Virtualization
• Allows a single computer to run different virtual systems (Virtual
Machines).
• Abstracts the hardware of a single computer into different execution
environments
• Creates illusion that each execution environment is running on its
own private computer
Virtualization
• Allows a single computer to run different virtual systems (Virtual
Machines).
• Abstracts the hardware of a single computer into different execution
environments
• Creates illusion that each execution environment is running on its
own private computer
• Failure in one virtual machine do not affect other virtual machines
Types of Hypervisors
• Type 1 hypervisor
Types of Hypervisors
• Type 1 hypervisor
Type 1 Hypervisor
Hardware
Windows Linux
Types of Hypervisors
• Type 1 hypervisor
• Type 2 hypervisor
Type 1 Hypervisor
Hardware
Windows Linux
Types of Hypervisors
• Type 1 hypervisor
• Type 2 hypervisor
Type 1 Hypervisor
Hardware
Windows Linux Type 2 Hypervisor
Hardware
Guest OS
Host Operating System
Other OS
processes
Type 1 Hypervisor Type 2 Hypervisor
Requirements for Virtualization
• CPU has some instructions which can only be executed in kernel
mode e.g. perform I/O, changing MMU settings, etc.
Requirements for Virtualization
• CPU has some instructions which can only be executed in kernel
mode e.g. perform I/O, changing MMU settings, etc.
• These instructions are called sensitive instructions
Requirements for Virtualization
• CPU has some instructions which can only be executed in kernel
mode e.g. perform I/O, changing MMU settings, etc.
• These instructions are called sensitive instructions
• Some instructions cause a trap if executed in user mode
Requirements for Virtualization
• CPU has some instructions which can only be executed in kernel
mode e.g. perform I/O, changing MMU settings, etc.
• These instructions are called sensitive instructions
• Some instructions cause a trap if executed in user mode
• These instructions are called privileged instructions
Requirements for Virtualization
• CPU has some instructions which can only be executed in kernel
mode e.g. perform I/O, changing MMU settings, etc.
• These instructions are called sensitive instructions
• Some instructions cause a trap if executed in user mode
• These instructions are called privileged instructions
• A machine is virtualizable if sensitive instructions are subset of
privileged instructions.
Popek and Goldberg, Formal Requirements for Virtualizable Third Generation Architectures, Commun. Of
ACM, 1974
Different Techniques of Implementation
• Binary translation
• Paravirtualization
• Hardware support
Binary Translation
….
….
Sensitive
instruction
….
….
Basic Block in
code of guest OS
Binary Translation
….
….
Sensitive
instruction
….
….
Basic Block in
code of guest OS
….
….
VMware
procedure
….
….
Paravirtualization
• Modifies guest OS source code, and directly executes hypervisor calls
Hardware Support – Bird’s-eye View
• In 2006, Intel introduced VT-x
Hardware
OS
User
Applications
VMM
Hardware Support – Bird’s-eye View
• In 2006, Intel introduced VT-x
Hardware
OS
User
Applications
VMM
VMX Root
Mode
VMX
Non-Root
Mode
VT-x Operating Modes
• Set of processor operations called VMX operations
VT-x Operating Modes
• Set of processor operations called VMX operations
• Two kinds of VMX operation
VT-x Operating Modes
• Set of processor operations called VMX operations
• Two kinds of VMX operation
• VMX root operation
• Fully privileged, generally for VMM
VT-x Operating Modes
• Set of processor operations called VMX operations
• Two kinds of VMX operation
• VMX root operation
• Fully privileged, generally for VMM
• VMX non-root operation
• Not fully privileged, generally for guest
• Reduces the privilege of guest software developed to operate in ring 0
VM Entry and Exit
• Two types of transitions
VM Entry and Exit
• Two types of transitions
• VM entry
• Transition from VM root operation to VM non root operation
• Loads guest state from VMCS
• Stores VMM state to VMCS
VM Entry and Exit
• Two types of transitions
• VM entry
• Transition from VM root operation to VM non root operation
• Loads guest state from VMCS
• Stores VMM state to VMCS
• VM exit
• Transition from VM non-root operation to VM root operation
• Stores guest state to VMCS
• Loads VMM state from VMCS
VM Entry and Exit
Guest 0 Guest 1
VMM
VMXON VMXOFF
VM
EntryVM Exit VM Exit
Picture: Copied from Intel Manual Sept 2014
Virtual Machine Control Structure
• Control Structures stored in memory
Virtual Machine Control Structure
• Control Structures stored in memory
• One VMCS active per virtual processor at a time
Virtual Machine Control Structure
• Control Structures stored in memory
• One VMCS active per virtual processor at a time
• Stores guest state, host state, VMX controls and VM-exit information
VM Exits in VMX Non-Root Operation
• Some instructions cause VM-exit unconditionally
• e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc.
VM Exits in VMX Non-Root Operation
• Some instructions cause VM-exit unconditionally
• e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc.
• Some instructions cause VM-exit conditionally based on VM-
execution control settings in VMCS
• e.g. HLT, INVLPG, MONITOR, VMREAD, etc.
VM Exits in VMX Non-Root Operation
• Some instructions cause VM-exit unconditionally
• e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc.
• Some instructions cause VM-exit conditionally based on VM-
execution control settings in VMCS
• e.g. HLT, INVLPG, MONITOR, VMREAD, etc.
• Exceptions
VM Exits in VMX Non-Root Operation
• Some instructions cause VM-exit unconditionally
• e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc.
• Some instructions cause VM-exit conditionally based on VM-
execution control settings in VMCS
• e.g. HLT, INVLPG, MONITOR, VMREAD, etc.
• Exceptions
• Triple Faults
VM Exits in VMX Non-Root Operation
• Some instructions cause VM-exit unconditionally
• e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc.
• Some instructions cause VM-exit conditionally based on VM-
execution control settings in VMCS
• e.g. HLT, INVLPG, MONITOR, VMREAD, etc.
• Exceptions
• Triple Faults
• External Interrupts
VM Exits in VMX Non-Root Operation
• Some instructions cause VM-exit unconditionally
• e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc.
• Some instructions cause VM-exit conditionally based on VM-
execution control settings in VMCS
• e.g. HLT, INVLPG, MONITOR, VMREAD, etc.
• Exceptions
• Triple Faults
• External Interrupts
• Non-Maskable Interrupts
VM Exits in VMX Non-Root Operation
• Some instructions cause VM-exit unconditionally
• e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc.
• Some instructions cause VM-exit conditionally based on VM-
execution control settings in VMCS
• e.g. HLT, INVLPG, MONITOR, VMREAD, etc.
• Exceptions
• Triple Faults
• External Interrupts
• Non-Maskable Interrupts
and more…
References
• A.S.Tanenbaum, Modern Operating Systems, 3rd Edition,2008
• Abraham Silberschatz, Peter B. Galvin, Greg Gagne, Operating System
Concepts, 8th Edition, 2010
• Understanding Full Virtualization, Paravirtualization and Hardware-assist
by VMware
• Understanding Intel Virtualization Technology (Power point presentation)
by Narendar B. Sahgal and Dion Rodgers
• Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 3

More Related Content

What's hot

Virtualization presentation
Virtualization presentationVirtualization presentation
Virtualization presentation
Mangesh Gunjal
 
Hardware virtualization basic
Hardware virtualization basicHardware virtualization basic
Hardware virtualization basic
Sanoj Kumar
 

What's hot (20)

Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVMHypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
 
Virtualization 101
Virtualization 101Virtualization 101
Virtualization 101
 
The kvm virtualization way
The kvm virtualization wayThe kvm virtualization way
The kvm virtualization way
 
1.Introduction to virtualization
1.Introduction to virtualization1.Introduction to virtualization
1.Introduction to virtualization
 
Virtualization
VirtualizationVirtualization
Virtualization
 
Virtualization using VMWare Workstation
Virtualization using VMWare WorkstationVirtualization using VMWare Workstation
Virtualization using VMWare Workstation
 
VMware Esx Short Presentation
VMware Esx Short PresentationVMware Esx Short Presentation
VMware Esx Short Presentation
 
Virtualization presentation
Virtualization presentationVirtualization presentation
Virtualization presentation
 
Virtualization.ppt
Virtualization.pptVirtualization.ppt
Virtualization.ppt
 
VMware Presentation
VMware PresentationVMware Presentation
VMware Presentation
 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVM
 
Virtualization in cloud computing ppt
Virtualization in cloud computing pptVirtualization in cloud computing ppt
Virtualization in cloud computing ppt
 
VMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project PresentationVMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project Presentation
 
Hypervisors
HypervisorsHypervisors
Hypervisors
 
Hardware virtualization basic
Hardware virtualization basicHardware virtualization basic
Hardware virtualization basic
 
Introduction to Hyper-V
Introduction to Hyper-VIntroduction to Hyper-V
Introduction to Hyper-V
 
Principles of virtualization
Principles of virtualizationPrinciples of virtualization
Principles of virtualization
 
Virtualization
VirtualizationVirtualization
Virtualization
 
Virtualization for Cloud Environment
Virtualization for Cloud EnvironmentVirtualization for Cloud Environment
Virtualization for Cloud Environment
 
Server virtualization
Server virtualizationServer virtualization
Server virtualization
 

Viewers also liked

Software Quality Assurance(Intro)
Software Quality Assurance(Intro)Software Quality Assurance(Intro)
Software Quality Assurance(Intro)
Sidra Ashraf
 
Formal Methods lecture 01
Formal Methods lecture 01Formal Methods lecture 01
Formal Methods lecture 01
Sidra Ashraf
 

Viewers also liked (20)

Formal methods 7 - category theory
Formal methods   7 - category theoryFormal methods   7 - category theory
Formal methods 7 - category theory
 
Formal methods 3 - languages and machines
Formal methods   3 - languages and machinesFormal methods   3 - languages and machines
Formal methods 3 - languages and machines
 
Formal methods 5 - Pi calculus
Formal methods   5 - Pi calculusFormal methods   5 - Pi calculus
Formal methods 5 - Pi calculus
 
Formal methods 6 - elements of algebra
Formal methods   6 - elements of algebraFormal methods   6 - elements of algebra
Formal methods 6 - elements of algebra
 
Formal meth
Formal methFormal meth
Formal meth
 
#7 formal methods – loop proof examples
#7 formal methods – loop proof   examples#7 formal methods – loop proof   examples
#7 formal methods – loop proof examples
 
Formal methods 2 - languages and machines
Formal methods   2 - languages and machinesFormal methods   2 - languages and machines
Formal methods 2 - languages and machines
 
#2 formal methods – principles of logic
#2 formal methods – principles of logic#2 formal methods – principles of logic
#2 formal methods – principles of logic
 
Introduction to formal methods
Introduction to formal methodsIntroduction to formal methods
Introduction to formal methods
 
Formal methods 1 - introduction
Formal methods   1 - introductionFormal methods   1 - introduction
Formal methods 1 - introduction
 
Software Quality Assurance(Intro)
Software Quality Assurance(Intro)Software Quality Assurance(Intro)
Software Quality Assurance(Intro)
 
#8 formal methods – pro logic
#8 formal methods – pro logic#8 formal methods – pro logic
#8 formal methods – pro logic
 
Virtualization support by intel
Virtualization support by intelVirtualization support by intel
Virtualization support by intel
 
Formal methods 8 - category theory (last one)
Formal methods   8 - category theory (last one)Formal methods   8 - category theory (last one)
Formal methods 8 - category theory (last one)
 
#5 formal methods – hoare logic
#5 formal methods – hoare logic#5 formal methods – hoare logic
#5 formal methods – hoare logic
 
#6 formal methods – loop proof using induction method
#6 formal methods – loop proof using induction method#6 formal methods – loop proof using induction method
#6 formal methods – loop proof using induction method
 
Slides chapters 28-32
Slides chapters 28-32Slides chapters 28-32
Slides chapters 28-32
 
Truth, deduction, computation lecture 7
Truth, deduction, computation   lecture 7Truth, deduction, computation   lecture 7
Truth, deduction, computation lecture 7
 
Formal Methods lecture 01
Formal Methods lecture 01Formal Methods lecture 01
Formal Methods lecture 01
 
PhD Presentation (Doctorate)
PhD Presentation (Doctorate)PhD Presentation (Doctorate)
PhD Presentation (Doctorate)
 

Similar to Hypervisors

More on Virtualization 2.pptx
More on Virtualization 2.pptxMore on Virtualization 2.pptx
More on Virtualization 2.pptx
shruti533256
 
AOS Lab 11: Virtualization
AOS Lab 11: VirtualizationAOS Lab 11: Virtualization
AOS Lab 11: Virtualization
Zubair Nabi
 
Overview of System Virtualization
Overview of System VirtualizationOverview of System Virtualization
Overview of System Virtualization
Andre Odendaal
 

Similar to Hypervisors (20)

virtual machine.ppt
virtual machine.pptvirtual machine.ppt
virtual machine.ppt
 
More on Virtualization 2.pptx
More on Virtualization 2.pptxMore on Virtualization 2.pptx
More on Virtualization 2.pptx
 
Server virtualization
Server virtualizationServer virtualization
Server virtualization
 
003-vmm.pptx
003-vmm.pptx003-vmm.pptx
003-vmm.pptx
 
AOS Lab 11: Virtualization
AOS Lab 11: VirtualizationAOS Lab 11: Virtualization
AOS Lab 11: Virtualization
 
17-virtualization.pptx
17-virtualization.pptx17-virtualization.pptx
17-virtualization.pptx
 
Hyun goo oVirt study - Presentation
Hyun goo oVirt study - PresentationHyun goo oVirt study - Presentation
Hyun goo oVirt study - Presentation
 
Intro to Deploying and administering server virtualization with Hyper-V and S...
Intro to Deploying and administering server virtualization with Hyper-V and S...Intro to Deploying and administering server virtualization with Hyper-V and S...
Intro to Deploying and administering server virtualization with Hyper-V and S...
 
Embedded Systems Conference 2014 Presentation
Embedded Systems Conference 2014 PresentationEmbedded Systems Conference 2014 Presentation
Embedded Systems Conference 2014 Presentation
 
Virtualization, the cloud enabler
Virtualization, the cloud enablerVirtualization, the cloud enabler
Virtualization, the cloud enabler
 
Hardware support for efficient virtualization
Hardware support for efficient virtualizationHardware support for efficient virtualization
Hardware support for efficient virtualization
 
Virtualization-the Cloud Enabler by INSPIRE-groups
Virtualization-the Cloud Enabler by INSPIRE-groupsVirtualization-the Cloud Enabler by INSPIRE-groups
Virtualization-the Cloud Enabler by INSPIRE-groups
 
Simplifying Hyper-V Management for VMware Administrators
Simplifying Hyper-V Management for VMware AdministratorsSimplifying Hyper-V Management for VMware Administrators
Simplifying Hyper-V Management for VMware Administrators
 
Cloud Computing Virtualization and containers
Cloud Computing Virtualization and containersCloud Computing Virtualization and containers
Cloud Computing Virtualization and containers
 
VSS-2.pdf
VSS-2.pdfVSS-2.pdf
VSS-2.pdf
 
Server virtualization 2
Server virtualization   2Server virtualization   2
Server virtualization 2
 
3. CPU virtualization and scheduling
3. CPU virtualization and scheduling3. CPU virtualization and scheduling
3. CPU virtualization and scheduling
 
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
 
Principles of Virtualization - Introduction to Virtualization Software
Principles of Virtualization - Introduction to Virtualization Software Principles of Virtualization - Introduction to Virtualization Software
Principles of Virtualization - Introduction to Virtualization Software
 
Overview of System Virtualization
Overview of System VirtualizationOverview of System Virtualization
Overview of System Virtualization
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 

Hypervisors

  • 2. Motivation • In some situations, organizations need different computers but actually do not want it.
  • 3. Motivation • In some situations, organizations need different computers but actually do not want it. • E.g. a company has e-mail server, web server, FTP server, etc.
  • 4. Motivation • In some situations, organizations need different computers but actually do not want it. • E.g. a company has e-mail server, web server, FTP server, etc. • Due to reliability, use separate machines
  • 5. Motivation • In some situations, organizations need different computers but actually do not want it. • E.g. a company has e-mail server, web server, FTP server, etc. • Due to reliability, use separate machines Solution is virtualization
  • 6. Virtualization • Allows a single computer to run different virtual systems (Virtual Machines).
  • 7. Virtualization • Allows a single computer to run different virtual systems (Virtual Machines). • Abstracts the hardware of a single computer into different execution environments
  • 8. Virtualization • Allows a single computer to run different virtual systems (Virtual Machines). • Abstracts the hardware of a single computer into different execution environments • Creates illusion that each execution environment is running on its own private computer
  • 9. Virtualization • Allows a single computer to run different virtual systems (Virtual Machines). • Abstracts the hardware of a single computer into different execution environments • Creates illusion that each execution environment is running on its own private computer • Failure in one virtual machine do not affect other virtual machines
  • 10. Types of Hypervisors • Type 1 hypervisor
  • 11. Types of Hypervisors • Type 1 hypervisor Type 1 Hypervisor Hardware Windows Linux
  • 12. Types of Hypervisors • Type 1 hypervisor • Type 2 hypervisor Type 1 Hypervisor Hardware Windows Linux
  • 13. Types of Hypervisors • Type 1 hypervisor • Type 2 hypervisor Type 1 Hypervisor Hardware Windows Linux Type 2 Hypervisor Hardware Guest OS Host Operating System Other OS processes Type 1 Hypervisor Type 2 Hypervisor
  • 14. Requirements for Virtualization • CPU has some instructions which can only be executed in kernel mode e.g. perform I/O, changing MMU settings, etc.
  • 15. Requirements for Virtualization • CPU has some instructions which can only be executed in kernel mode e.g. perform I/O, changing MMU settings, etc. • These instructions are called sensitive instructions
  • 16. Requirements for Virtualization • CPU has some instructions which can only be executed in kernel mode e.g. perform I/O, changing MMU settings, etc. • These instructions are called sensitive instructions • Some instructions cause a trap if executed in user mode
  • 17. Requirements for Virtualization • CPU has some instructions which can only be executed in kernel mode e.g. perform I/O, changing MMU settings, etc. • These instructions are called sensitive instructions • Some instructions cause a trap if executed in user mode • These instructions are called privileged instructions
  • 18. Requirements for Virtualization • CPU has some instructions which can only be executed in kernel mode e.g. perform I/O, changing MMU settings, etc. • These instructions are called sensitive instructions • Some instructions cause a trap if executed in user mode • These instructions are called privileged instructions • A machine is virtualizable if sensitive instructions are subset of privileged instructions. Popek and Goldberg, Formal Requirements for Virtualizable Third Generation Architectures, Commun. Of ACM, 1974
  • 19. Different Techniques of Implementation • Binary translation • Paravirtualization • Hardware support
  • 21. Binary Translation …. …. Sensitive instruction …. …. Basic Block in code of guest OS …. …. VMware procedure …. ….
  • 22. Paravirtualization • Modifies guest OS source code, and directly executes hypervisor calls
  • 23. Hardware Support – Bird’s-eye View • In 2006, Intel introduced VT-x Hardware OS User Applications VMM
  • 24. Hardware Support – Bird’s-eye View • In 2006, Intel introduced VT-x Hardware OS User Applications VMM VMX Root Mode VMX Non-Root Mode
  • 25. VT-x Operating Modes • Set of processor operations called VMX operations
  • 26. VT-x Operating Modes • Set of processor operations called VMX operations • Two kinds of VMX operation
  • 27. VT-x Operating Modes • Set of processor operations called VMX operations • Two kinds of VMX operation • VMX root operation • Fully privileged, generally for VMM
  • 28. VT-x Operating Modes • Set of processor operations called VMX operations • Two kinds of VMX operation • VMX root operation • Fully privileged, generally for VMM • VMX non-root operation • Not fully privileged, generally for guest • Reduces the privilege of guest software developed to operate in ring 0
  • 29. VM Entry and Exit • Two types of transitions
  • 30. VM Entry and Exit • Two types of transitions • VM entry • Transition from VM root operation to VM non root operation • Loads guest state from VMCS • Stores VMM state to VMCS
  • 31. VM Entry and Exit • Two types of transitions • VM entry • Transition from VM root operation to VM non root operation • Loads guest state from VMCS • Stores VMM state to VMCS • VM exit • Transition from VM non-root operation to VM root operation • Stores guest state to VMCS • Loads VMM state from VMCS
  • 32. VM Entry and Exit Guest 0 Guest 1 VMM VMXON VMXOFF VM EntryVM Exit VM Exit Picture: Copied from Intel Manual Sept 2014
  • 33. Virtual Machine Control Structure • Control Structures stored in memory
  • 34. Virtual Machine Control Structure • Control Structures stored in memory • One VMCS active per virtual processor at a time
  • 35. Virtual Machine Control Structure • Control Structures stored in memory • One VMCS active per virtual processor at a time • Stores guest state, host state, VMX controls and VM-exit information
  • 36. VM Exits in VMX Non-Root Operation • Some instructions cause VM-exit unconditionally • e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc.
  • 37. VM Exits in VMX Non-Root Operation • Some instructions cause VM-exit unconditionally • e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc. • Some instructions cause VM-exit conditionally based on VM- execution control settings in VMCS • e.g. HLT, INVLPG, MONITOR, VMREAD, etc.
  • 38. VM Exits in VMX Non-Root Operation • Some instructions cause VM-exit unconditionally • e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc. • Some instructions cause VM-exit conditionally based on VM- execution control settings in VMCS • e.g. HLT, INVLPG, MONITOR, VMREAD, etc. • Exceptions
  • 39. VM Exits in VMX Non-Root Operation • Some instructions cause VM-exit unconditionally • e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc. • Some instructions cause VM-exit conditionally based on VM- execution control settings in VMCS • e.g. HLT, INVLPG, MONITOR, VMREAD, etc. • Exceptions • Triple Faults
  • 40. VM Exits in VMX Non-Root Operation • Some instructions cause VM-exit unconditionally • e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc. • Some instructions cause VM-exit conditionally based on VM- execution control settings in VMCS • e.g. HLT, INVLPG, MONITOR, VMREAD, etc. • Exceptions • Triple Faults • External Interrupts
  • 41. VM Exits in VMX Non-Root Operation • Some instructions cause VM-exit unconditionally • e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc. • Some instructions cause VM-exit conditionally based on VM- execution control settings in VMCS • e.g. HLT, INVLPG, MONITOR, VMREAD, etc. • Exceptions • Triple Faults • External Interrupts • Non-Maskable Interrupts
  • 42. VM Exits in VMX Non-Root Operation • Some instructions cause VM-exit unconditionally • e.g. CPUID, INVD, XSETBV, INVEPT, VMCLEAR, VMLAUNCH, etc. • Some instructions cause VM-exit conditionally based on VM- execution control settings in VMCS • e.g. HLT, INVLPG, MONITOR, VMREAD, etc. • Exceptions • Triple Faults • External Interrupts • Non-Maskable Interrupts and more…
  • 43. References • A.S.Tanenbaum, Modern Operating Systems, 3rd Edition,2008 • Abraham Silberschatz, Peter B. Galvin, Greg Gagne, Operating System Concepts, 8th Edition, 2010 • Understanding Full Virtualization, Paravirtualization and Hardware-assist by VMware • Understanding Intel Virtualization Technology (Power point presentation) by Narendar B. Sahgal and Dion Rodgers • Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 3

Editor's Notes

  1. Basic block is defined in compiler theory. It is a block of instructions which has single entry point and single exit point. By definition, they cannot have any instructions which can modify the program counter except at the end.
  2. Basic block is defined in compiler theory. It is a block of instructions which has single entry point and single exit point. By definition, they cannot have any instructions which can modify the program counter except at the end.