1 / 7

CIS 700 Machine Virtualization

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

robyn
Download Presentation

CIS 700 Machine Virtualization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

More Related