cis 700 machine virtualization cis700-6/ autumn 2004
TRANSCRIPT
CIS 700Machine Virtualization
http://www.seas.upenn.edu/~cis700-6/Autumn 2004
2
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
3
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
4
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
5
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)
6
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
7
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