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>