Welcome to P K Kelkar Library, Online Public Access Catalogue (OPAC)

Normal view MARC view ISBD view

Hardware and software support for virtualization /

By: Bugnion, Edouard [author.].
Contributor(s): Nieh, Jason [author.] | Tsafrir, Dan [author.].
Material type: materialTypeLabelBookSeries: Synthesis digital library of engineering and computer science: ; Synthesis lectures in computer architecture: # 38.Publisher: [San Rafael, California] : Morgan & Claypool, 2017.Description: 1 PDF (xix, 186 pages) : illustrations.Content type: text Media type: electronic Carrier type: online resourceISBN: 9781627056885.Subject(s): Virtual computer systems -- Design and construction | Computer architecture | computer architecture | virtualization | virtual machine | hypervisor | dynamic binary translationDDC classification: 005.43 Online resources: Abstract with links to resource Also available in print.
Contents:
1. Definitions -- 1.1 Virtualization -- 1.2 Virtual machines -- 1.3 Hypervisors -- 1.4 Type-1 and type-2 hypervisors -- 1.5 A sketch hypervisor: multiplexing and emulation -- 1.6 Names for memory -- 1.7 Approaches to virtualization and paravirtualization -- 1.8 Benefits of using virtual machines -- 1.9 Further reading --
2. The Popek/Goldberg theorem -- 2.1 The model -- 2.2 The theorem -- 2.3 Recursive virtualization and hybrid virtual machines -- 2.4 Discussion: replacing segmentation with paging -- 2.5 Well-known violations -- 2.5.1 MIPS -- 2.5.2 x86-32 -- 2.5.3 ARM -- 2.6 Further reading --
3. Virtualization without architectural support -- 3.1 Disco -- 3.1.1 Hypercalls -- 3.1.2 The L2TLB -- 3.1.3 Virtualizing physical memory -- 3.2 VMware workstation--full virtualization on x86-32 -- 3.2.1 x86-32 fundamentals -- 3.2.2 Virtualizing the x86-32 CPU -- 3.2.3 The VMware VMM and its binary translator -- 3.2.4 The role of the host operating system -- 3.2.5 Virtualizing memory -- 3.3 Xen, the paravirtualization alternative -- 3.4 Designs options for type-1 hypervisors -- 3.5 Lightweight paravirtualization on ARM -- 3.6 Further reading --
4. x86-64: CPU virtualization with VT-x -- 4.1 Design requirements -- 4.2 The VT-x architecture -- 4.2.1 VT-x and the Popek/Goldberg theorem -- 4.2.2 Transitions between root and non-root modes -- 4.2.3 A cautionary tale, virtualizing the CPU and ignoring the MMU -- 4.3 KVM, a hypervisor for VT-x -- 4.3.1 Challenges in leveraging VT-x -- 4.3.2 The KVM kernel module -- 4.3.3 The role of the host operating system -- 4.4 Performance considerations -- 4.5 Further reading --
5. x86-64: MMU virtualization with extended page tables -- 5.1 Extended paging -- 5.2 Virtualizing memory in KVM -- 5.3 Performance considerations -- 5.4 Further reading --
6. x86-64: I/O virtualization -- 6.1 Benefits of I/O interposition -- 6.2 Physical I/O -- 6.2.1 Discovering and interacting with I/O devices -- 6.2.2 Driving devices through ring buffers -- 6.2.3 PCIe -- 6.3 Virtual I/O without hardware support -- 6.3.1 I/O emulation (full virtualization) -- 6.3.2 I/O paravirtualization -- 6.3.3 Front-ends and back-ends -- 6.4 Virtual I/O with hardware support -- 6.4.1 IOMMU -- 6.4.2 SRIOV -- 6.4.3 Exitless interrupts -- 6.4.4 Posted interrupts -- 6.5 Advanced topics and further reading --
7. Virtualization support in ARM processors -- 7.1 Design principles of virtualization support on ARM -- 7.2 CPU virtualization -- 7.2.1 Virtualization extensions and the Popek/Goldberg theorem -- 7.3 Memory virtualization -- 7.4 Interrupt virtualization -- 7.5 Timer virtualization -- 7.6 KVM/ARM, a VMM based on ARM virtualization extensions -- 7.6.1 Split-mode virtualization -- 7.6.2 CPU virtualization -- 7.6.3 Memory virtualization -- 7.6.4 I/O virtualization -- 7.6.5 Interrupt virtualization -- 7.6.6 Timer virtualization -- 7.7 Performance measurements -- 7.8 Implementation complexity -- 7.9 Architecture improvements -- 7.10 Further reading --
8. Comparing ARM and x86 virtualization performance -- 8.1 KVM and Xen overview -- 8.2 Experimental design -- 8.3 Microbenchmark results -- 8.4 Application benchmark results -- 8.5 Further reading -- Bibliography -- Authors' biographies -- Index.
Abstract: This book focuses on the core question of the necessary architectural support provided by hardware to efficiently run virtual machines, and of the corresponding design of the hypervisors that run them. Virtualization is still possible when the instruction set architecture lacks such support, but the hypervisor remains more complex and must rely on additional techniques. Despite the focus on architectural support in current architectures, some historical perspective is necessary to appropriately frame the problem. The first half of the book provides the historical perspective of the theoretical framework developed four decades ago by Popek and Goldberg. It also describes earlier systems that enabled virtualization despite the lack of architectural support in hardware. As is often the case, theory defines a necessary--but not sufficient--set of features, and modern architectures are the result of the combination of the theoretical framework with insights derived from practical systems. The second half of the book describes state-of-the-art support for virtualization in both x86-64 and ARM processors. This book includes an in-depth description of the CPU, memory, and I/O virtualization of these two processor architectures, as well as case studies on the Linux/KVM, VMware, and Xen hypervisors. It concludes with a performance comparison of virtualization on current-generation x86- and ARM-based systems across multiple hypervisors.
    average rating: 0.0 (0 votes)
Item type Current location Call number Status Date due Barcode Item holds
E books E books PK Kelkar Library, IIT Kanpur
Available EBKE749
Total holds: 0

Mode of access: World Wide Web.

System requirements: Adobe Acrobat Reader.

Part of: Synthesis digital library of engineering and computer science.

Includes bibliographical references (pages 163-180) and index.

1. Definitions -- 1.1 Virtualization -- 1.2 Virtual machines -- 1.3 Hypervisors -- 1.4 Type-1 and type-2 hypervisors -- 1.5 A sketch hypervisor: multiplexing and emulation -- 1.6 Names for memory -- 1.7 Approaches to virtualization and paravirtualization -- 1.8 Benefits of using virtual machines -- 1.9 Further reading --

2. The Popek/Goldberg theorem -- 2.1 The model -- 2.2 The theorem -- 2.3 Recursive virtualization and hybrid virtual machines -- 2.4 Discussion: replacing segmentation with paging -- 2.5 Well-known violations -- 2.5.1 MIPS -- 2.5.2 x86-32 -- 2.5.3 ARM -- 2.6 Further reading --

3. Virtualization without architectural support -- 3.1 Disco -- 3.1.1 Hypercalls -- 3.1.2 The L2TLB -- 3.1.3 Virtualizing physical memory -- 3.2 VMware workstation--full virtualization on x86-32 -- 3.2.1 x86-32 fundamentals -- 3.2.2 Virtualizing the x86-32 CPU -- 3.2.3 The VMware VMM and its binary translator -- 3.2.4 The role of the host operating system -- 3.2.5 Virtualizing memory -- 3.3 Xen, the paravirtualization alternative -- 3.4 Designs options for type-1 hypervisors -- 3.5 Lightweight paravirtualization on ARM -- 3.6 Further reading --

4. x86-64: CPU virtualization with VT-x -- 4.1 Design requirements -- 4.2 The VT-x architecture -- 4.2.1 VT-x and the Popek/Goldberg theorem -- 4.2.2 Transitions between root and non-root modes -- 4.2.3 A cautionary tale, virtualizing the CPU and ignoring the MMU -- 4.3 KVM, a hypervisor for VT-x -- 4.3.1 Challenges in leveraging VT-x -- 4.3.2 The KVM kernel module -- 4.3.3 The role of the host operating system -- 4.4 Performance considerations -- 4.5 Further reading --

5. x86-64: MMU virtualization with extended page tables -- 5.1 Extended paging -- 5.2 Virtualizing memory in KVM -- 5.3 Performance considerations -- 5.4 Further reading --

6. x86-64: I/O virtualization -- 6.1 Benefits of I/O interposition -- 6.2 Physical I/O -- 6.2.1 Discovering and interacting with I/O devices -- 6.2.2 Driving devices through ring buffers -- 6.2.3 PCIe -- 6.3 Virtual I/O without hardware support -- 6.3.1 I/O emulation (full virtualization) -- 6.3.2 I/O paravirtualization -- 6.3.3 Front-ends and back-ends -- 6.4 Virtual I/O with hardware support -- 6.4.1 IOMMU -- 6.4.2 SRIOV -- 6.4.3 Exitless interrupts -- 6.4.4 Posted interrupts -- 6.5 Advanced topics and further reading --

7. Virtualization support in ARM processors -- 7.1 Design principles of virtualization support on ARM -- 7.2 CPU virtualization -- 7.2.1 Virtualization extensions and the Popek/Goldberg theorem -- 7.3 Memory virtualization -- 7.4 Interrupt virtualization -- 7.5 Timer virtualization -- 7.6 KVM/ARM, a VMM based on ARM virtualization extensions -- 7.6.1 Split-mode virtualization -- 7.6.2 CPU virtualization -- 7.6.3 Memory virtualization -- 7.6.4 I/O virtualization -- 7.6.5 Interrupt virtualization -- 7.6.6 Timer virtualization -- 7.7 Performance measurements -- 7.8 Implementation complexity -- 7.9 Architecture improvements -- 7.10 Further reading --

8. Comparing ARM and x86 virtualization performance -- 8.1 KVM and Xen overview -- 8.2 Experimental design -- 8.3 Microbenchmark results -- 8.4 Application benchmark results -- 8.5 Further reading -- Bibliography -- Authors' biographies -- Index.

Abstract freely available; full-text restricted to subscribers or individual document purchasers.

Compendex

INSPEC

Google scholar

Google book search

This book focuses on the core question of the necessary architectural support provided by hardware to efficiently run virtual machines, and of the corresponding design of the hypervisors that run them. Virtualization is still possible when the instruction set architecture lacks such support, but the hypervisor remains more complex and must rely on additional techniques. Despite the focus on architectural support in current architectures, some historical perspective is necessary to appropriately frame the problem. The first half of the book provides the historical perspective of the theoretical framework developed four decades ago by Popek and Goldberg. It also describes earlier systems that enabled virtualization despite the lack of architectural support in hardware. As is often the case, theory defines a necessary--but not sufficient--set of features, and modern architectures are the result of the combination of the theoretical framework with insights derived from practical systems. The second half of the book describes state-of-the-art support for virtualization in both x86-64 and ARM processors. This book includes an in-depth description of the CPU, memory, and I/O virtualization of these two processor architectures, as well as case studies on the Linux/KVM, VMware, and Xen hypervisors. It concludes with a performance comparison of virtualization on current-generation x86- and ARM-based systems across multiple hypervisors.

Also available in print.

Title from PDF title page (viewed on February 24, 2017).

There are no comments for this item.

Log in to your account to post a comment.

Powered by Koha