Description

Virtual Machine technology applies the concept of virtualization to an entire machine, circumventing real machine compatibility constraints and hardware resource constraints to enable a higher degree of software portability and flexibility. Virtual machines are rapidly becoming an essential element in computer system design. They provide system security, flexibility, cross-platform compatibility, reliability, and resource efficiency. Designed to solve problems in combining and using major computer system components, virtual machine technologies play a key role in many disciplines, including operating systems, programming languages, and computer architecture. For example, at the process level, virtualizing technologies support dynamic program translation and platform-independent network computing. At the system level, they support multiple operating system environments on the same hardware platform and in servers. Historically, individual virtual machine techniques have been developed within the specific disciplines that employ them (in some cases they aren’t even referred to as “virtual machines”), making it difficult to see their common underlying relationships in a cohesive way. In this text, Smith and Nair take a new approach by examining virtual machines as a unified discipline. Pulling together cross-cutting technologies allows virtual machine implementations to be studied and engineered in a well-structured manner. Topics include instruction set emulation, dynamic program translation and optimization, high level virtual machines (including Java and CLI), and system virtual machines for both single-user systems and servers.

Key Features

* Examines virtual machine technologies across the disciplines that use them—operating systems, programming languages and computer architecture—defining a new and unified discipline. * Reviewed by principle researchers at Microsoft, HP, and by other industry research groups. * Written by two authors who combine several decades of expertise in computer system research and development, both in academia and industry.

Readership

Designers and developers in OS, Programming languages, and architecture; researchers in academia and industry; and graduate students in computer science and engineering

Table of Contents

Foreword Preface Chapter 1: Introduction to Virtual Machines Chapter 2: Emulation: Interpretation and Binary Translation Chapter 3: Process Virtual Machines Chapter 4: Dynamic Binary Optimization Chapter 5: High-Level Language Virtual Machine Architecture Chapter 6: High-Level virtual Machine Implementation Chapter 7: Codesigned Virtual Machines Chapter 8: System Virtual Machines Chapter 9: Multiprocessor Virtualization Chapter 10: Emerging Applications Appendix A: Real Machines References

Details

No. of pages:
656
Language:
English
Copyright:
© 2005
Published:
Imprint:
Morgan Kaufmann
eBook ISBN:
9780080525402
Print ISBN:
9781558609105
Print ISBN:
9781493303762

About the authors

Jim Smith

Affiliations and Expertise

University of Wisconsin

Ravi Nair

Affiliations and Expertise

IBM, Thomas J. Watson Research Center, New York

Awards

Intel Recommended Reading List for Developers, 1st Half 2013 – Books for IT Professionals, Intel
Intel Recommended Reading List for Developers, 2nd Half 2013 – Books for IT Professionals, Intel
Intel Recommended Reading List for Developers, 1st Half 2014 – Books for IT Professionals, Intel

Reviews

Virtual Machine technology applies the concept of virtualization to an entire machine, circumventing real machine compatibility constraints and hardware resource constraints to enable a higher degree of software portability and flexibility. Virtual machines are rapidly becoming an essential element in computer system design. They provide system security, flexibility, cross-platform compatibility, reliability, and resource efficiency. Designed to solve problems in combining and using major computer system components, virtual machine technologies play a key role in many disciplines, including operating systems, programming languages, and computer architecture. For example, at the process level, virtualizing technologies support dynamic program translation and platform-independent network computing. At the system level, they support multiple operating system environments on the same hardware platform and in servers. Historically, individual virtual machine techniques have been developed within the specific disciplines that employ them (in some cases they aren’t even referred to as “virtual machines”), making it difficult to see their common underlying relationships in a cohesive way. In this text, Smith and Nair take a new approach by examining virtual machines as a unified discipline. Pulling together cross-cutting technologies allows virtual machine implementations to be studied and engineered in a well-structured manner. Topics include instruction set emulation, dynamic program translation and optimization, high level virtual machines (including Java and CLI), and system virtual machines for both single-user systems and servers.