70 likes | 201 Views
CIS 700 Machine 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
E N D
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