出版时间:2009-3 出版社:机械工业出版社 作者:[美] James E. Smith,Ravi Nair 页数:382 译者:安虹,张昱,吴俊敏
Tag标签:无
前言
为了获得新的能力,解决与计算机系统主要组件接口的多种问题,操作系统、编程语言和编译器、计算机体系结构三个领域都发展了虚拟机技术。支持操作系统的虚拟机技术过去曾相对活跃过,现在又重新引起人们的兴趣,因为它可以在保持高度安全性的同时获得高效的资源共享。虚拟技术在服务器以及其他网络应用,尤其是对安全要求很高的领域越来越受欢迎。在编程语言方面,虚拟机提供了平台无关性,而且支持动态和透明的翻译和优化。在处理器体系结构方面,虚拟机技术允许引入新的指令集以及动态优化,以降低功耗、提高性能。工业界对一些标准接口的统一,使得虚拟机技术很可能在上面提到的各个领域的革新中起到重要的作用。新的指令集、操作系统、编程语言要想被广泛接受都需要与虚拟机技术结合。许多虚拟机技术发展的推动力及近来获得的大多数重要进步都来自工业界。历史上,各种虚拟机技术均延伸到了计算机科学和工程学科中。不过,存在许多基础的交叉技术,如果能发挥这些技术的作用就能够以更好的组织方式来研究和设计虚拟机的实现。本书是按统一原则进行虚拟机技术研究的结晶。本书介绍了对计算机体系结构的理解。按照传统的定义,体系结构就是一个接口。虚拟机把接口连在一起,同时扩大接口的灵活性和功能性。理解体系结构是理解虚拟技术的关键,本书从体系结构研究者的角度,首先保持与接口的相关问题的清晰,使得读者在阅读后对计算机系统接口的重要性,以及它们在计算机主要部件间相互作用时所扮演的角色有更深的认识。虚拟机应用的广泛性意味着本书有各种各样需求的读者。虽然目前虚拟机还没有被大学作为一个学科来看待,但因为它与计算机科学和工程学的关键原理:体系结构、操作系统、编程语言紧密结合,使得虚拟机成为研究生课程一个很好的方向。本书的初版已经在四所不同大学的研究生课程中使用,并且取得了一定的成功。本书可以作为关于动态优化的编译器课程或包含典型系统虚拟机的操作系统课程的辅助教材。虚拟机技术正在被工业界广泛而快速地接受,从事相关工作的专业人士将会发现本书也可以用于自学前沿技术。本书还可以作为一本参考资料,因为它收集了许多领域的资料。本书首先总结了各种不同的虚拟机,从一个视角建立起统一的讨论框架。后面的章节中将描述主要的几类虚拟机,突出它们之间的共同点和低层技术。下面粗略地介绍一下每章的纲要。第1章我们引人了目前计算机系统中流行的抽象概念和接口定义。随后讨论了虚拟化以及其与接口的关系。接着介绍了计算机体系结构概念,总结了各种不同类型的虚拟机。虚拟机可以分为两个主要类型:进程虚拟机和系统虚拟机。本章的最后,我们深入讨论了虚拟机的分类,并提出了一种虚拟机的分类方法。第2章我们讨论了用目标指令集体系结构(ISA)仿真源指令集体系结构的相关问题。说明了基本解释程序的工作,以及如何用线索化解释(threaded interpretation)来提高性能,并使用一种CISC源指令集Intel LA-32、一种RISC目标指令集IBM PowerPC来说明所开发出的技术。接着介绍二进制转换的概念,并讨论代码发现和代码定位的问题。随后讨论控制转移的处理,许多指令集体系结构都有一些必须用特别方法处理的特殊特征(有些情况下,它们被称为“quirks”)。最后用一个在Shade模拟系统中仿真的例子来结束本章。
内容概要
本书的作者从计算机体系结构研究者的角度,以计算机系统接口抽象层次中两个最重要的接口——应用的二进制接口(Application Binary Interface,ABI)和应用程序接口(Application Program Interface,API)为边界,将计算机系统资源的各种虚拟化技术划分为进程虚拟机和系统虚拟机两大类展开讨论,清晰地展现了虚拟化技术各种方法的各个层面和各类应用。 本书可以作为讲授计算机系统结构研究生课程《虚拟机技术》的教材或教学参考书。工作在虚拟机技术领域的专业人士可以用于自学这些领域的前沿技术。本书还可以作为一本计算机系统软硬件参考资料。
作者简介
James E. Smith,威斯康星大学麦迪逊分校电子与计算机工程系教授。从伊利诺伊大学获得计算机科学博士学位。1979至1981年间在美国的控制数据公司工作,参与CYBER 180/990的设计。其后,曾参与ACA ZS-1的开发工作。1989年加入Cray研究公司,率研究小组开发和分析未来超级计算机
书籍目录
第1章 虚拟机导论 1.1 计算机体系结构 1.2 虚拟机基础 1.3 进程虚拟机 1.3.1 多道程序设计 1.3.2 仿真器和动态二进制翻译器 1.3.3 相同ISA下的二进制优化器 1.3.4 高级语言虚拟机:平台独立性 1.4 系统虚拟机 1.4.1 系统虚拟机的实现 1.4.2 全系统虚拟机:仿真 1.4.3 协同设计虚拟机:硬件优化 1.5 一种分类方法 1.6 总结:虚拟机功能的多样性 1.7 本书的其他部分 第2章 仿真:解释和二进制翻译 2.1 基本的解释 2.2 线索解释 2.3 预译码和直接线程解释 2.3.1 基本的预译码 2.3.2 直接线索解释 2.4 解释一个复杂的指令集 2.4.1 IA-32 ISA的解释 2.4.2 线索解释 2.4.3 一个高性能IA-32解释器 2.5 二进制翻译 2.6 代码发现和动态翻译 2.6.1 代码发现的问题 2.6.2 代码定位问题 2.6.3 增量式预译码和翻译 2.6.4 相同ISA仿真 2.7 控制转移优化 2.7.1 翻译链接 2.7.2 软件间接跳转预测 2.7.3 影子栈 2.8 指令集问题 2.8.1 寄存器结构 2.8.2 条件码 2.8.3 数据格式和运算 2.8.4 内存地址解析 2.8.5 内存数据对齐 2.8.6 字节序 2.8.7 寻址结构 2.9 案例研究:SHADE和模拟过程中的仿真角色 2.10 总结:性能折衷 第3章 进程虚拟机 3.1 虚拟机实现 3.2 兼容性 3.2.1 兼容性的级别 3.2.2 一个兼容性框架 3.2.3 实现依赖 3.3 状态映射 3.3.1 寄存器映射 3.3.2 内存地址空间映射 3.4 内存结构仿真 3.4.1 内存保护 3.4.2 自引用和自修改代码 3.5 指令仿真 3.5.1 性能权衡 3.5.2 分阶段的仿真 3.6 异常仿真 3.6.1 异常检测 3.6.2 中断处理 3.6.3 确定精确的客户机状态 ……第4章 动态二进制优化 第5章 高级语言虚拟机结构 第6章 高级语言虚拟机实现 第7章 协同设计虚拟机 第8章 系统虚拟机 第9章 多处理器虚拟化 第10章 新兴应用 附录A 实际机器 参考文献索引
章节摘录
插图:第1章 虚拟机导论现代计算机是人类工程学中最先进的结构,人类对极度复杂性的控制能力成就了现代计算机今日的辉煌。计算机系统由许多硅芯片组成,而每个芯片则由上亿个晶体管构成。这些芯片相互连接,并与高速的输入/输出设备、网络设施一起组成可以运行软件的平台。操作系统、应用程序和库、图形和网络软件,所有这些协同工作,为数据管理、教育、通信、娱乐以及许多其他应用提供了强大的计算机环境。管理计算机系统复杂性的关键是通过一些定义明确的接口把计算机系统划分成不同的抽象层次。抽象层次允许忽略或简化系统设计的底层实现细节,从而简化高层组件的设计。例如,硬盘被划分为不同的磁道和扇区,它的细节经过操作系统的抽象,使应用程序看到的硬盘是不同大小的文件集合(图1—1)。在这之后应用程序可以创建、读、写文件,而并不需要了解硬盘是如何构造和组建的。计算机系统的抽象层次通过分层组织,底层由硬件实现,高层由软件实现。在硬件层,所有的组件都是物理的,有真实的特性,各部分通过定义的接口物理地连接在一起。在软件层,组件都是逻辑的,较少受物理特性的限制。本书主要涉及硬件和软件分界处及其附近的抽象层次,在这些层次上软件从运行它的机器中分离出来。计算机软件由“机器”来执行(“机器(Machine)”这个术语从计算机出现时就有,现在比较流行的是“平台(Platform)”这个术语)。从操作系统的角度看,“机器”主要由一些硬件组成,包括一个或多个运行特定指令集的处理器、实存储器、I/O设备。但是,“机器”这个术语的使用并不局限于计算机的硬部件。例如,从应用程序的角度看,“机器”是指操作系统与通过用户级二进制指令可访问的那部分硬件的组合。
媒体关注与评论
硬件是借助微电子工具构建起来的缺乏灵活性的东西。虚拟机用一层软件将硬件包裹起来,从而使得计算机灵活可变。正在发展的一些新技术,能够实现在同一个硬件上运行多个操作系统、执行多套指令集,允许程序在执行过程中切换机器,甚至排斥不安全的代码。虚拟机正改变着计算机和操作系统的设计方法、编程语言的实现方法,以及安全专家对计算机和计算的认知。Smith和Nair的这本书是迄今为止仅有的对虚拟机及其众多应用的综述。 ——Jim Larus, 微软研究院 虚拟机已经无处不在。Jim Smith和Ravi Navi极为清晰地阐明了虚拟机技术对现代计算机体系结构、程序设计语言、操作系统以及安全技术的深刻影响。对未来计算机系统感兴趣的人有必要研读本书,我极力推荐本书! ——Michael D. Smith, 哈佛大学
编辑推荐
《虚拟机:系统与进程的通用平台》总结了各种不同的虚拟机技术,为计算机各个领域的学者和研发人员提供了一个新的交叉研究领域,便子以更好的组织方式来研究、设计和实现虚拟机。纵观历史,操作系统、编程语言和编译器、计算机体系结构等多个领域都发展了各自的虚拟机技术,但没有从统一的角度搭建这些技术的基本关系。现代计算机系统的硬件结构正朝着片上多核。系统多级并行处理的方向发展,并且通过Innternet互联起来,构成功能更强大、应用更广泛的系统。在系统的物理资源大大增加的同时,系统的物理实现也变得极为复杂,系统在可扩展性、可靠性。可用性,可管理性和安全性等方面都遇到了难以用单点体系结构技术来解决的一系列问题。虚拟机技术在应对这一系列问题上越来越显现出前所未有的重要性。《虚拟机:系统与进程的通用平台》特色:·结构清晰。《虚拟机:系统与进程的通用平台》以计算机系统接口抽象层次中两个最重要的接口——应用的二进制接口和应用程序接口为边界,将计算机系统资源的各种虚拟化技术划分为进程虚拟机和系统虚拟机两大类展开讨论,清晰地层现了虚拟化技术各种方法的各个层面及各类应用。·全面系统。作者从学术和工业应厨两个方面对虚拟机技术几十年的研究和发展历史进行了综述,从体系结构、程序设计语言和编译、操作系统及系统安全等多个专业领域深入探讨了虚拟机技术的应用。·理实交融。本书提供了大量实际虚拟机系统的原理说明及翔实的参考文献,包括Shade模拟系统、FX!32系统、Dynamo/RIO、Java和CLI等流行语言虚拟机、Jikes RVM、Transmeta Crusoe处理器、IBM的AS/400和z/VM系统、VMware的主机虚拟机。Intel的VT-X虚拟技术以及多处理器虚拟系统——Cellular Disco,微软、惠普及其他工业研究团体韵本领域研究人员对全书进行了审阅。·面向未来。《虚拟机:系统与进程的通用平台》在最后一章专门讨论了一些新兴的虚拟机应用,包括安全领域(讨论入侵检测系统的原理以及虚拟机在系统攻防方面的应用潜力)、移动计算环境(讨论商业上的应用:VMware的vmotion)以及计算网格(展示典型的系统虚拟机对新兴网格系统出现的重要作用)方面的应用。
名人推荐
虚拟机正改变着计算机和操作系统的设计方法、编程语言的实现方法,以及安全专家对计算机和计算的认知。Smith和Nair的这本书是迄今为止仅有的对虚拟机及其众多应用的综述。 ——Jim Larus, 微软研究院 虚拟机已经无处不在。Jim Smith和Ravi Navi极为清晰地阐明了虚拟机技术对现代计算机体系结构、程序设计语言、操作系统以及安全技术的深刻影响。对未来计算机系统感兴趣的人有必要研读本书,我极力推荐本书! ——Michael D. Smith, 哈佛大学读者(英文版)点评:此书每个章节均数据详实且巨细靡遗,剖析各类型虚拟机器的技术细节、内部运作流程和设计层面的取舍。像第八章「系统虚拟机器」以VMWare公司的产品为案例,解释x86指令集先天的诸多限制与VMWare提出的解决之道,进而讨论英特尔Vanderpool的存在价值和不足之处,甚至以非常难以虚拟化的RDTSC指令作例子,详细描绘出Vanderpool运作的全貌和优点。总而言之,此类精密分析遍布全书,极为精彩。《虚拟机:系统与进程的通用平台》一书的问世,将彻底改变你的成见与看法,这也是我们认为目前唯一深入介绍所有虚拟机器技术的专书。
图书封面
图书标签Tags
无
评论、评分、阅读与下载