Ref: https://learn.cantrill.io/courses/1820301/lectures/41301314
OS Virtualization - Key Concept
- ๐งย Def: process of running more than one OS on a piece of physical HW or server, without the system crashing
- History: (i) no virtualization โ (ii) software virtualization (emulation & para-virtualization) โ (iii) hardware virtualization (HW assisted & SR-IOV)
- Amazon EC2 is IaaS (Infrastructure-as-a-Service), which is essentially Virtualization-as-a-Service, or VM-aaS in AWS
OS Virtualization - Historic Evolution
Traditional Infrastructure (No Virtualization)

- Kernel
- Small, core part of the OS
- Runs in privileged mode โ can directly interact with HW
- Applications
- Run in user mode (unprivileged mode) โ can't directly interact with HW
- Need to go through OS to interact with HW โ System calls to kernel
- If a non-kernel app tries to directly interact with HW โ system-wide error
- Crash of app or even whole system
First Attempt at OS Virtualization
- First attempt: use different OSs to run different types of HW

- ๐ย Problem: system crashes
- (back then) CPU could only have one thing running in privileged mode
- All OSes (in unmodified state) expect to be running in privileged mode
Emulated Virtualization