An overview of virtual machine architecture
Outline History Standardized System Components Virtual Machine Basics Process VMs System VMs Virtualizing Process Summary and Taxonomy
History In ancient times: System was handcrafted with its own instr. set Software was developed with specific instr. set Small user communities Simple programs Fixed hardware
History (Cont d) But User communities started to grow Operating systems became more complex Number of applications rapidly expanded So, how to make software run everywhere is a problem Portable and compatible software
History (Cont d) Attempt 1 (in hardware) : HW designers for various computer companies gravitated toward certain common features Big success in IBM 360 series computers ISA is precisely defined Software can run on any computer in this series People start to realize the importance of compatibility and portability
History (Cont d) Attempt 2 (in OS) : OS start to standardize their interfaces to the upper application layer It s also a big success We can develop large, complex, varied app now Software is now flexible and portable As a reminder, Operating systems are responsible for managing hw resources, isolation, sharing, hiding idiosyncrasies of the underlying hw.
History (Cont d) However, it s still NOT perfect We still have incompatible ISAs & OSes Software are closely limited to certain platforms and standards OS is tied to a specific instruction set, mm system, and I/O system interfaces
History (Cont d) Definition: Virtual machine is an extra software layer to an existing execution platform to give it the appearance of a different platform, or for that matter, to give the appearance of multiple platforms.
History (Cont d) Virtual Machine May have a different OS from underlying real hw May have an instruction set Or both A common misunderstanding: the upper layer which virtual machine supports must be operating systems. For example, only Xen or Vmware is virtual machine. ---- this is incomplete.
History (Cont d) Benefits of Virtual Machine Portability (as we ve just discussed) Software Consolidation (in Data Centers) Increase security Enhance performance Simplify software migration Etc. VM (abbr.) has already been investigated and built by system developers, compiler developers, language designers, and hardware designers.
Standardized System Components Standardized computers components Hardware The operating system Application programs
Virtual Machine Basics some new terms through an example New terms: Host, Virtualizing software (or VMM), Guest, Most important: Virtual Machine Pay attention to the difference between virtualizing software & virtual machine
VM Basics (Cont d) There are three application fields of virtualizing software Emulation Replication *Hybrid
VM Basics (Cont d) Emulation Emulation adds considerable flexibility by permitting mix and match cross-platform software portability One example of emulation: emulating one instruction set with another
VM Basics (Cont d) Replication Give a single platform the appearance of multiple platforms One example of replication: replicating a virtual machine so that multiple OSes can be supported simultaneously
Another Classification There are two types of virtual machines, it depends how we define the real machine From the perspective of a process, a real machine consists of Memory address space User level registers & instructions I/O system as a collection of files
VM Basics (Cont d) Process Virtual Machine Created along and terminates with its guest process For example: Java VM
Process VMs (Cont d) High Level VMs illustration
VM Basics (Cont d) System Virtual Machine Provides a complete system environment Support multiple processes, file system Provides processes with access to I/O devices Support GUI For example: KVM in linux
System VMs Usually, System VMs provide replication functions Divide hardware resources among multiple guest Oses VMM manage the hardware Oses are under control of VMM Advantages Consolidation Isolation
System VMs (Cont d) Two typical implementation methods Classic VM VMM is put on bare hardware But existing system should be wiped away And device drivers must be available for installation in VMM For example: Xen, VMWare ESX Server
System VMs (Cont d) Hosted VM VMM is put on top of an existing host OS Installation is easy Device drivers are in the host OS But efficiency is a problem For example: VMware Workstation, Virtual PC
System VMs (Cont d) System VMs can also provide emulation functions Whole System VMs Host and guest systems don t have a common ISA Virtualizing all software Typically VMM is put on top of an existing OS
Virtualizing Process If you want to implement a virtual machine, you will focus on the three key aspects of the virtualizing process Mapping of state (register, memory state) Instruction mapping (emulation) Precise state materialization
Virtualizing Process (Cont d) Key aspects of the virtualizing Process VMs
Virtualizing Process (Cont d) Key aspects of the virtualizing System VMs