48 lines
1.6 KiB
Markdown
48 lines
1.6 KiB
Markdown
|
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 |
|