Introduction

Basics

<aside> 👉 What is Virtualisation?

</aside>

<aside> 👉 VM-based Virtualisation

</aside>

<aside> 👉 History of Virtualisation?

</aside>

<aside> 👉 Container-based virtualization

</aside>

This technique doesn’t abstract the hardware but uses techniques within the kernel to isolate access for different resources viz. different network subsystem, different process tree, separate file system etc.

Host and Guest OS

<aside> 👉 Host Operating System

</aside>

<aside> 👉 Guest Operating System

</aside>

Hypervisor

Introduction

Basics

A special piece of software used to virtualize the OS, and it consists of two parts:

What does a VMM do?

<aside> 👉 Running multiple OS’es on the same piece of hardware

</aside>

A VMM multiplexes multiple machines over the same hardware, just like how context switching is done by the OS, but now instead of processes, it’s the guest machines which are getting switched from time to time.

Untitled

But an OS expects its Kernel to run in Ring 0 and have unrestricted access to the hardware, but that’s not possible in the case of guest machines, because we can’t allow a guest to do privileged operations because a malicious one might take over the hardware.

<aside> 👉 Isolation

</aside>

The VMM must isolate guest OS’es from one another

The VMM must make sure the performance is as native as possible, by running majority of the instructions directly on the hardware and only trapping privileged instructions.

<aside> 👉

Ensuring performance

</aside>

<aside> 👉 Handling interrupts and exceptions

</aside>

Categories of Hypervisors

<aside> 👉 Baremetal Hypervisors (Type 1)

</aside>

<aside> 👉 Hosted Hypervisors (Type 2)

</aside>

Type 1 and Type 2 Hypervisors

Type 1 and Type 2 Hypervisors

VMM design techniques (CPU virtualisation)

Trap and Emulate

<aside> 👉 Basics

</aside>