Virtualization

Virtualization can be achieved at various levels.

  • Library calls.

    • Same OS and hardware, individual libraries.

  • System calls.

    • Same hardware, individual vision over the OS.

  • Hardware calls.

    • Individual hardware.

It is a very abstract concept.

  • It involves virtual memory, virtual filesystem, and virtual networks (VPNs), among other things.

Virtualization allows a single computer to perform the tasks of many by sharing resources among various environments.

Virtualization allows us to run various distinct systems in the same hardware, in a completely isolated manner.

“VMM satisfies efficiency, resource control, equivalence”

“Formal Requirements for Virtualizable Third Generation Architectures” Gerald J. and Robert P. Goldberg, Communications of the ACM, Volume 17, Issue 7, Julho 1974

“Theorem – For any conventional third generation machine, a VMM may be constructed if the set of sensitive instructions for that computer is a subset of the set of privileged instructions.”

History

  • 1960/70 - Mainframe IBM S/360 allows the timesharing of applications by resorting to resource partitioning.

    • Introduction of the LPAR (Logical Resource Partitioning) concept and later of the DLPAR (Dynamic LPAR).

    • Multiple OSs.

  • 1990 - Bochs make emulated environments available.

    • Mostly for debugging.

    • Totally emulated hardware environment.

  • 1998 - VMWare.

    • Founded at Standford.

    • Part of EMC/Dell.

    • Releases hypervisors that allow for complete isolation.

  • 2003 - XEN.

    • Founded at Cambridge.

    • Allows para-virtualization (host-assisted).

Architecture

Eco-sistema

Hardware-level

  • Bare-Metal / Hypervisor.

    • HP Integrity VM.

    • IBM zSeries z/VM.

    • VMware ESX Server.

    • Xen.

  • Hosted.

    • Microsoft Virtual Server.

    • Microsoft Virtual PC.

    • Parallels Desktop.

    • VMware Player.

    • Proxmox.

    • ...

  • Para-virtualization.

    • Virtual Iron.

    • VMware VMI.

    • Xen.

OS-Level

  • FreeBSD Jail.

  • HP Secure Resource Partitions.

  • Sun Solaris Zones.

  • SWsoft Virtuozzo.

  • User-Mode Linux.

Emulators.

  • Bochs.

  • Microsoft VPC for Mac.

  • QEMU.

  • Virtutech Simics.

High-Level Language

  • Java.

  • Microsoft .NET / Mono

  • Smalltalk.

Last updated