书评-虚拟化技术的世界,远比你想象的宽广

后来发现,这本书已经出版了影印版,电子工业出版社《虚拟机——系统与进程的通用平台》,先看看书评吧:

虚拟机技术应用整机虚拟化的概念,摆脱实体机的兼容性和硬件资源的约束,实现更高程度的软件可移植性和适用性。虚拟机快速成为计算机系统设计中的基本要素,用于解决计算机系统各主要组件间连接界面的多种问题,在计算机各专业领域,包括操作系统、程序设计语言和计算机系统结构中占据了重要位置。

 虚拟机技术通过对整个机器的虚拟抽象,解决了物理硬件的兼容性和资源限制问题,提供了软件的可移植性和灵活性。(PSK询问:虚拟机出现的目的是什么?是提高硬件的利用率吗?似乎我现在的认识水平就停留在这里呢;是解决物理硬件的兼容性吗?那么Tivoli是不是解决了这个问题;这方面更加进一步说,是不是虚拟机的出现,实现了物理环境的统一?这里,统一的目的,不是前面说到的提高利用率和解决兼容性那么简单——看过了“墨攻”,我的第一个反应是“秦始皇太伟大了”,因为在他的手上统一了中国,这样子很多的痛苦,很多的问题都相应地解决了!也就不会出现墨攻中的百姓之苦,将领之苦,战争之苦。这里我要说出我所认为的虚拟机出现的目的以及伟大所在:提供了软件的可移植性和灵活性,或者说使整个IT架构的层次内部实现了统一,这样子在用户的视角看来,不同的硬件,不同的架构,不同的协议,都是一致的,用户不需要考虑背后实现的原理,这对于用户的生产力来说是,伟大的解放!用户只需要专注在自己的专长上面,而不需要被先前体制的混乱所束缚。)目前,虚拟机技术在计算机系统的各个层次中都得到了广泛的应用,事实上,已经成为计算机系统设计的重要因素。其应用包括:系统安全、跨平台兼容性、可靠性和灵活性、有效的资源管理等方面,虚拟机技术无处不在。例如,在“进程级”,虚拟机技术可用于实现动态二进制翻译平台无关的网络计算等功能。而在“系统级”,可在同一个平台或一个服务器集群上同时提供多个操作系统环境。(PSK点评:我现在关注的虚拟化技术,主要是集中在系统级,而对于进程级的涉猎,几乎没有;是不是必须经历过编程的细节,才能够体会虚拟化在进程级的优势呢。这里我还是停留在提高系统利用率和支持异构化平台的Level

回顾历史可见,在计算机学科的各个专业领域中,都各自开发了虚拟机技术,因而很难用一种简单捏合的方法揭示其潜在关系。在本书中,SmithNair另辟新路,将虚拟机作为一门统一的学科来探讨。由于对错综复杂的技术进行了融合,因而能够以一种结构合理的方式探讨和研究虚拟机的实现问题。

虚拟机技术的核心内容包括指令集仿真、动态程序翻译和优化、高级语言虚拟机(包括JavaCLI -- Common Language Infrastructure)以及系统虚拟机。即可用于单用户系统,也可用于服务器。

本书介绍了虚拟机技术在操作系统、程序设计语言和计算机系统结构方面的应用。本书内容全面,处于学科的最前沿;书中以清晰而深入的方式,借助有效的应用实例研究,包括IBMDaisyHPDynamo以及Intel/MicroSoftEL等各种系统,阐明了虚拟机的基本概念和原理。内容涉及虚拟机的分类、虚拟机的抽象、用目标指令集系统仿真源指令集系统、进程虚拟机的实现、用于提高仿真性能的代码优化技术、高级语言虚拟机及其实现、协同设计虚拟机、多处理器系统的虚拟化,以及其他新兴的虚拟机应用。

  
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),也是一种「虚拟化」,你会相信吗?而现在因英特尔与AMDx86处理器,都开始支持过去只能在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,已是行之有年的虚拟化应用了。


也许你会疑惑:这和虚拟化有什么关系?事实上,JavaJVMJava Virtual Machine)与C#CLICommon Language Infrastructure)本质上都是一种虚拟机器,拥有独立于底层硬件的堆栈式指令集架构,并非单纯的程序语言,不少计算器结构教科书还特别将其视为指令集架构的范例。


在以VMWare为首的全系统虚拟机器之外,这本书也探讨高阶服务器普遍具备的分割区(Partitioning),以及英特尔的Vanderpool处理器虚拟化技术,范围之广,由此可见一斑。


告诉你虚拟化技术的未来应用
形形色色的虚拟化技术,最终还得重回实际应用的原点。第十章「浮现中的应用」堪称集各章节内容的大成,预测虚拟机器的未来用途,如透过动态编译二进制执行文件来改进程序的强固性,在既有操作系统内建另一个虚拟机器,将把防火墙/IDS等安全性相关的应用程序,放在主控端操作系统里,藉以保护客户端操作系统安全,或者经由网络动态转移计算机设定组态至另一台电脑上。

诸如此类的应用,从此书出版至今的近两年,都陆续成为现实中存在的技术与产品,如英特尔的vPro以及预计在新一代vPro平台整合LaGrande安全运算技术的TXT Trusted Execution Technology);或是同一个指令集平台上能动态重新编译二进制执行文件的技术,像HP的「Dynamo」与后继的「DynamoRIO」等,亦可提升应用程序的安全性。


笔者2005年曾在英特尔总部参加一年一度的RD Day活动,首度得知「Internet Suspend/ResumeISR)」技术,在这个应用架构上,行动工作者想要把工作用计算机上的设定组态带着跑,可将虚拟机器的状态,搬移至扮演个人服务器角色的手机,再传送到另外一台电脑。如果这难以理解,你可以想象今天正在用VMWare执行一个操作系统,只是把这个操作系统的映像文件,透过手机转移到另一台执行VMWare的计算机上,摇身一变为随身携带的一台虚拟个人计算机。本章节不但没有遗漏这样的应用,更以此为开端,详述虚拟个人计算机系统移转的挑战,像如何加快收集系统运作状态与减少网络频宽的需求等。VMWare VirtualCenterVMotion虚拟服务器移转技术,也成为本章的一部分。


虚拟化发展至最终,我们将迈入「组织虚拟化」,也就是无数软硬件厂商高喊入云的网格运算,并描述其概观作为全书结尾。网格运算看似虚幻,对有心人来说,这导读是相当简洁易懂。


虚拟化的范围到底有多大?
英特尔资深院士兼软件解决方案事业群总经理Richard Wirt在八月Intel Software Insight杂志的「The Convergence of Virtualization, Grid, and SOA」文中表示,相较于微观的处理器虚拟化,网格运算与红透半边天的SOA,就是巨观的虚拟化,象征着融合成一个整体的IT运算架构。

换言之,我们从更大的视野去检视「虚拟化」一词,就可发现意义并不狭隘,它充满了巨大的发展空间。在未来,虚拟化势必改变IT架构的风貌,现在台面上琳琅满目的新名词,只是巨大变革的第一步,而这本不可多得的虚拟机器教科书,将成为引领你踏入这美丽新世界的指南针。文刘人豪

 

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 arent 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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值