About Virtualization

  • Hans Huang
  • 5 Minutes
  • December 23, 2019

For we software developer, the computer system can be category as below 4 layer:

  1. Application Layer
  2. Library Layer
  3. OS Layer
  4. Hardware Layer

Every layer consumes API from bottom layer, and also provides API to offer services/functions to upper layer.

Between each layer, abstraction layer can be created, that is called: Virtualization. From virtualization below benefits is provided:

  1. Unify & standardize the the APIs form different manufacturers
  2. Improve portability for programs
  3. Isolate the impact of processes from each other
  4. Resource reuse/measure & control

The virtualization between App & Lib layer

Samples:

Many languages benefit from the virtual machine for the platform independent. As different platform provides different system level function libraries, VM is the one build abstraction layer upon on them.

For developers only need to coding with APIs of VM, the VM will handle native interaction with different platform.

VM usually will also provide additional services to speed up our application development. e.g.

The virtualization between Lib & OS layer

Samples could be popular “Container” engine:

THe container mocked the API of system layer

The virtualization between OS & Hardware layer

Samples: