Lecture Topic: Virtualization | | Windows | Linux | | ----------------- | -------------- | --------------------- | | Executable Format | .exe .bat .ps1 | .sh ELF standard .out | | Library Format | .dll | ELF .o .so | Executables tend to not be portable, on Linux usually due to differences in the flavor of Linux, and even on windows due to different platform architecture. Interoperability is not guaranteed. The differences between simulation and emulation Simulation: getting the result Emulation: mimicking the behavior Virtualization: Alternative to emulation and simulation: allows access to hardware by generating appropriate machine code Why Virtualization? - Access to hardware - Safety, sandboxed, controlled environment - Multiple Users Kinds of VMs Type 1 virtual machine: manages the VMs directly, with no interaction with a base kernel Type 2 virtual machine: manages the VMs through interactions with the hardware with a main kernel Process VM - One purpose functionality VM - Java VM as an example OS VM - Virtual machine that emulates entire OS/machine functionality Example VM stack - VirtualBox VM - VirtualBox VMM - Windows - Hyper-V - Hardware | Virtualbox | Hyper-V | | ---------------- | -------------- | | OS VM, Type 2 VM | VMM, Type 1 VM | | WSL | Docker | | --------------------------------------------- | -------------------------------- | | Uses Hyper-V, Reuses system calls if possible | Containers, minimal dependencies |