后来发现,这本书已经出版了影印版,电子工业出版社《虚拟机——系统与进程的通用平台》,先看看书评吧:
虚拟机技术应用整机虚拟化的概念,摆脱实体机的兼容性和硬件资源的约束,实现更高程度的软件可移植性和适用性。虚拟机快速成为计算机系统设计中的基本要素,用于解决计算机系统各主要组件间连接界面的多种问题,在计算机各专业领域,包括操作系统、程序设计语言和计算机系统结构中占据了重要位置。
虚拟机技术通过对整个机器的虚拟抽象,解决了物理硬件的兼容性和资源限制问题,提供了软件的可移植性和灵活性。(PSK询问:虚拟机出现的目的是什么?是提高硬件的利用率吗?似乎我现在的认识水平就停留在这里呢;是解决物理硬件的兼容性吗?那么Tivoli是不是解决了这个问题;这方面更加进一步说,是不是虚拟机的出现,实现了物理环境的统一?这里,统一的目的,不是前面说到的提高利用率和解决兼容性那么简单——看过了“墨攻”,我的第一个反应是“秦始皇太伟大了”,因为在他的手上统一了中国,这样子很多的痛苦,很多的问题都相应地解决了!也就不会出现墨攻中的百姓之苦,将领之苦,战争之苦。这里我要说出我所认为的虚拟机出现的目的以及伟大所在:提供了软件的可移植性和灵活性,或者说使整个IT架构的层次内部实现了统一,这样子在用户的视角看来,不同的硬件,不同的架构,不同的协议,都是一致的,用户不需要考虑背后实现的原理,这对于用户的生产力来说是,伟大的解放!用户只需要专注在自己的专长上面,而不需要被先前体制的混乱所束缚。)目前,虚拟机技术在计算机系统的各个层次中都得到了广泛的应用,事实上,已经成为计算机系统设计的重要因素。其应用包括:系统安全、跨平台兼容性、可靠性和灵活性、有效的资源管理等方面,虚拟机技术无处不在。例如,在“进程级”,虚拟机技术可用于实现动态二进制翻译、平台无关的网络计算等功能。而在“系统级”,可在同一个平台或一个服务器集群上同时提供多个操作系统环境。(PSK点评:我现在关注的虚拟化技术,主要是集中在系统级,而对于进程级的涉猎,几乎没有;是不是必须经历过编程的细节,才能够体会虚拟化在进程级的优势呢。这里我还是停留在提高系统利用率和支持异构化平台的Level)
回顾历史可见,在计算机学科的各个专业领域中,都各自开发了虚拟机技术,因而很难用一种简单捏合的方法揭示其潜在关系。在本书中,Smith和Nair另辟新路,将虚拟机作为一门统一的学科来探讨。由于对错综复杂的技术进行了融合,因而能够以一种结构合理的方式探讨和研究虚拟机的实现问题。
虚拟机技术的核心内容包括指令集仿真、动态程序翻译和优化、高级语言虚拟机(包括Java和CLI -- Common Language Infrastructure)以及系统虚拟机。即可用于单用户系统,也可用于服务器。
本书介绍了虚拟机技术在操作系统、程序设计语言和计算机系统结构方面的应用。本书内容全面,处于学科的最前沿;书中以清晰而深入的方式,借助有效的应用实例研究,包括IBM的Daisy,HP的Dynamo以及Intel/MicroSoft的EL等各种系统,阐明了虚拟机的基本概念和原理。内容涉及虚拟机的分类、虚拟机的抽象、用目标指令集系统仿真源指令集系统、进程虚拟机的实现、用于提高仿真性能的代码优化技术、高级语言虚拟机及其实现、协同设计虚拟机、多处理器系统的虚拟化,以及其他新兴的虚拟机应用。
|
Virtual Machines: Versatile Platforms
For Systems and Processes James E.Smith & Ravi Nair/ 著 Elsevier 出版 James E.Smith
- Professor in University of Wisconsin-Madsion
Ravi Nair
- Research Staff Member at IBM Thomas J. Watson Center |
虚拟化是众人琅琅上口的IT技术流行字汇,但假如今天有人说:从网格运算到操作系统的多行程(Process),也是一种「虚拟化」,你会相信吗?而现在因英特尔与AMD的x86处理器,都开始支持过去只能在CISC大型主机与高阶RISC服务器才能享受到的虚拟化技术,重要性已水涨船高,也占领越来越多的媒体篇幅,但虚拟化技术就这么单纯吗?只是「左手画圆,右手画方」而已吗?
《Virtual Machines: Versatile Platforms For Systems and Processes》一书的问世,将彻底改变你的成见与看法,这也是我们认为目前唯一深入介绍所有虚拟机器技术的专书。
抽丝剥茧,巨细靡遗,直探各种虚拟化技术的核心
此书每个章节均数据详实且巨细靡遗,剖析各类型虚拟机器的技术细节、内部运作流程和设计层面的取舍。像第八章「系统虚拟机器」以VMWare公司的产品为案例,解释x86指令集先天的诸多限制与VMWare提出的解决之道,进而讨论英特尔Vanderpool的存在价值和不足之处,甚至以非常难以虚拟化的RDTSC指令作例子,详细描绘出Vanderpool运作的全貌和优点。总而言之,此类精密分析遍布全书,极为精彩。
在了解「虚拟」机器之前,我们绝不能缺乏对「真实」计算机的认知。书中提供简介指令集架构、操作系统、系统初始化流程与多处理器环境的「Real Machines」附录,协助读者掌握阅读前的基本知识。但整体而言,因内容既深且广,要充分理解仍非常困难,建议你阅读前,能再重温计算器结构、编译器与操作系统等基础科目。
从单一行程延伸整体系统的虚拟化技术光谱
除了建立虚拟机器与模拟(Emulation)观念的前两章和总结的最后一章外,本书可分为两大部分:单一行程(Process)与整体系统(System)的虚拟化技术。前者包含了二进制执行文件转换器、高阶程序语言虚拟机器,以及藉由硬件辅助的指令集转换机制,后者进一步延伸至全系统虚拟机器、半虚拟化技术(Paravirtualization)与多处理器环境的虚拟化。
值得注意的是,过去便于移植Pascal编译器的P-Code到今天的Java和.NET,已是行之有年的虚拟化应用了。
也许你会疑惑:这和虚拟化有什么关系?事实上,Java的JVM(Java Virtual Machine)与C#的CLI(Common Language Infrastructure)本质上都是一种虚拟机器,拥有独立于底层硬件的堆栈式指令集架构,并非单纯的程序语言,不少计算器结构教科书还特别将其视为指令集架构的范例。
在以VMWare为首的全系统虚拟机器之外,这本书也探讨高阶服务器普遍具备的分割区(Partitioning),以及英特尔的Vanderpool处理器虚拟化技术,范围之广,由此可见一斑。
告诉你虚拟化技术的未来应用
形形色色的虚拟化技术,最终还得重回实际应用的原点。第十章「浮现中的应用」堪称集各章节内容的大成,预测虚拟机器的未来用途,如透过动态编译二进制执行文件来改进程序的强固性,在既有操作系统内建另一个虚拟机器,将把防火墙/IDS等安全性相关的应用程序,放在主控端操作系统里,藉以保护客户端操作系统安全,或者经由网络动态转移计算机设定组态至另一台电脑上。
诸如此类的应用,从此书出版至今的近两年,都陆续成为现实中存在的技术与产品,如英特尔的vPro以及预计在新一代vPro平台整合LaGrande安全运算技术的TXT (Trusted Execution Technology);或是同一个指令集平台上能动态重新编译二进制执行文件的技术,像HP的「Dynamo」与后继的「DynamoRIO」等,亦可提升应用程序的安全性。
笔者2005年曾在英特尔总部参加一年一度的RD Day活动,首度得知「Internet Suspend/Resume(ISR)」技术,在这个应用架构上,行动工作者想要把工作用计算机上的设定组态带着跑,可将虚拟机器的状态,搬移至扮演个人服务器角色的手机,再传送到另外一台电脑。如果这难以理解,你可以想象今天正在用VMWare执行一个操作系统,只是把这个操作系统的映像文件,透过手机转移到另一台执行VMWare的计算机上,摇身一变为随身携带的一台虚拟个人计算机。本章节不但没有遗漏这样的应用,更以此为开端,详述虚拟个人计算机系统移转的挑战,像如何加快收集系统运作状态与减少网络频宽的需求等。VMWare VirtualCenter的VMotion虚拟服务器移转技术,也成为本章的一部分。
虚拟化发展至最终,我们将迈入「组织虚拟化」,也就是无数软硬件厂商高喊入云的网格运算,并描述其概观作为全书结尾。网格运算看似虚幻,对有心人来说,这导读是相当简洁易懂。
虚拟化的范围到底有多大?
英特尔资深院士兼软件解决方案事业群总经理Richard Wirt在八月Intel Software Insight杂志的「The Convergence of Virtualization, Grid, and SOA」文中表示,相较于微观的处理器虚拟化,网格运算与红透半边天的SOA,就是巨观的虚拟化,象征着融合成一个整体的IT运算架构。
换言之,我们从更大的视野去检视「虚拟化」一词,就可发现意义并不狭隘,它充满了巨大的发展空间。在未来,虚拟化势必改变IT架构的风貌,现在台面上琳琅满目的新名词,只是巨大变革的第一步,而这本不可多得的虚拟机器教科书,将成为引领你踏入这美丽新世界的指南针。文⊙刘人豪