Exploring Machine Virtualization: Concepts, Techniques, and Applications in Modern Computing
This overview covers key concepts and applications of machine virtualization, highlighting how different operating systems can run concurrently on a single machine. It discusses virtualization methods like running Linux on PowerPC, executing Java bytecodes on Linux/x86, and leveraging virtual machines for server consolidation. The text addresses the techniques used by virtualization systems, including hypervisors, binary translation, and hardware support. It also examines the challenges of virtualization, particularly concerning interface definitions and the balance between performance and transparency.
Exploring Machine Virtualization: Concepts, Techniques, and Applications in Modern Computing
E N D
Presentation Transcript
CIS 700Machine Virtualization http://www.seas.upenn.edu/~cis700-6/ Autumn 2004
Examples of Machine Virtualization • Run Linux and Windows concurrently on one machine • Different operating systems, same ISA • Run Linux/x86 applications on Linux/PowerPC • Same operating system, different ISA • Run Windows/x86 on MacOSX/PowerPC • Different operating system, different ISA • Run many Linux/x86 virtual machines • Same operating system, same ISA • Run Java Bytecodes on Linux/x86
Traditional “Virtualization” • Virtual Memory • Provides protection, isolation, relocation, swapping • Requires hardware support for efficiency • Unix’s mmap() • Great for reading, what about writes? • RAID - one disk from many • Hardware versus software implementation • Layout becomes virtual • Two conflicting goals of virtualization • Transparency • Low overhead
Applications of Machine Virtualization (1 of 2) • Compatibility (ISA and/or operating system) • Ancient VAX/VMS software • Hardware independence (e.g., Java’s VM) • Related: Transmeta’s code morphing • Setup of new software test environments • Software migration • Development and debugging • Complex software systems • Processor design (simulation vs emulation) • General performance analysis
Applications of Machine Virtualization (2 of 2) • Error and attack containment • Why aren’t processes sufficient? • Faults and security considerations • Dynamically share resources (memory, disk, processors) • Sever consolidation • 10 virtual machine web servers on a two-processor machine • Virtual machines “leased” from real server owner • Server migration • Move a server across the room (or across the world) • Emerging applications (e.g., in sensor networks)
Techniques Employed by Virtualization Systems • Virtual Machine Monitors (VMMs) • “hypervisors” • Coordinate and virtualize resources • Binary translation • Dynamic, static, feedback directed • In software or hardware • Hardware support • Changes for transparent virtualization • Support for low-overhead virtualization • Traditional operating system tricks • E.g., copy-on-write, traps, privileged modes
Virtualization Challenges • Some interfaces not well defined • Or certainly not design with virtualization in mind • Interfaces at all levels • instructions, APIs, bytecodes, ABIs, I/O devices • Recall tension between transparency and performance • Especially difficult for software-only techniques • Many applications, many “system” techniques employed • Hopefully, an interesting and broad topic for this semester’s systems seminar