在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 12263|回复: 80

M. K 2005 -- Virtual Machines: Versatile Platforms for Systems & Processes

[复制链接]
发表于 2008-3-30 16:15:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design)
by Jim Smith, Ravi Nair


                               
登录/注册后可看大图



[size=120%]Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design)
By Jim Smith, Ravi Nair


  • Publisher:   Morgan Kaufmann
  • Number Of Pages:   656
  • Publication Date:   2005-06-03
  • ISBN-10 / ASIN:   1558609105
  • ISBN-13 / EAN:   9781558609105
  • Binding:   Hardcover


Product 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 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.

* Examines virtual machine technologies across the disciplines that use themoperating systems, programming languages and computer architecturedefining 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.



Summary: Well-written overview of virtualization
Rating: 5
I purchased this book to get myself grounded quickly in virtualization, specifically to gain an understanding on how virtual machines are built, and the related issues. The book covers a wide variety of topics, from emulation, to machine virtualization (e.g., VMware server), hosted virtualization (e.g., VMware Fusion), binary translation, code virtualization (e.g., Java). The issues are spelled out clearly, the relevant theorems and papers are covered, and just the right amount of code/algorithms are presented to help make points clear. There are plenty of case studies, ranging from the historic to the modern day implementations (VMs are not new technology -- machine VMs date back to the early days of computing, as discussed in the book).

This is not a book for those wanting to deploy VMs, but is a book for those who want to understand issues related to their theory and implementation.


Summary: Nice, Unified Overview of Virtualization (in all its forms)
Rating: 4
A wonderful quote appears at the start of the book: "Hardware is hard, inflexible, produced by gnomes with sub-micron tools. Virtual machines wrap a layer of software around this hardware, and suddenly computers become flexible, malleable and start doing new tricks: running multiple operating systems, executing several instruction sets, allowing running programs to switch machines, or even rejecting unsafe code."

Many of the "new tricks" of virtualization are thoroughly explored in this book. The authors get "under the hood" of many VMs and go through the details of how they work. Also, they present the many types of virtualization in a well organized, unified framework. The book is also a good history lesson; various forms of virtualization have been around for decades, and the authors go through many case studies to show how many "modern" VM concepts are actually not as modern as you might think.

The first few chapters focus on emulators. They go into great detail about the realities of mapping register sets, memory, interrupts, etc in an emulator, as well as other nits such as how to deal with self-modifying code. Binary-to-binary translation is covered, as well as how the translation can rewrite sections that are hard to virtualize. Dynamic binary optimizers are also covered, as well as how they can profile running code & reorder it to improve locality & speed. The HP Dynamo project is then reviewed to demonstrate the performance gains that are possible using dynamic optimization.

Virtual machines for programming languages are covered next. The typical description of the Java VM is covered here, as well as the Microsoft CLR. However, the section about Pascal P-code from the late 1970's is a nice reminder that the use of VMs for programming languages is not new.

Whole-system VMs are also covered next (e.g. VMWare, Xen...). The discussion builds on the concepts in the early chapters, and describe how memory is mapped, critical instructions are patched & rewritten, system calls are caught, etc. And of course VMWare is one of the case studies.

Finally, I thought one of the more interesting chapters is about "codesigned" VMs; these use low-level 'firmware' (not microcode) running in a minimal processor to effectively emulate another processors instruction set (though at hardware speeds). The processor firmware performs the functions that more complex processors do in silicon, such as instruction reordering, branch prediction, etc. The recent Transmeta Crusoe processor (designed in the late 90's) is reviewed as a recent example of this technique. But another case study -- of the IBM AS/400 designed in the late 80's -- shows that the codesigned VM concept is not new, either.

Overall, this textbook is a nice overview of VMs in multiple forms (that is, for systems, for languages, for emulators, etc). It takes a high-level, computer-science perspective, so it's not product specific. I thought it went into sufficient detail so that it didn't seem too impractical or watered down. My only complaint is that it was a bit wordy in spots, as textbooks sometimes are. But if you're interested in the broad topic of VMs, it'll be a good addition to your library.



Summary: OK
Rating: 4
A good first book on VMs. Starts with general foundations, then overviews both JVM and CLR. More of an overview than an indepth book though (which, for an introduction, is not bad, so I'm not complaining).

One thing I could do w/o though is a fair amount of hype about how VMs are great and so on. First, there's nothing new about them, they've been in existence for decades (it's just at the time MS believed that the future belongs to DDE); second, it can be argued that their current entry into the mainstream is due more to commercial interest and accompanying marketing hype than technical merit; third and last -- I'm tired of pretense excitement about this or that nine-days wonder's being a silver bullet, the Final Great Thing That Solves All Problems. I've seen too many of them appear in blasts of glory and be gone w/o trace within a couple of years despite all MS (or, in our case, Sun) self-serving clairvoyantry. We'll see, says I; meantime, less propaganda would be nice.

But overall, the book's OK though, a good place to start if curious. Btw, there's another one, by Iain Craig, that, I think is even better.

PS. As always, I warn the reader about the below reviewer, W.Boudville. Check his reviews page: he posts like a dozen exclusively positive reviews per day, every day, going back to the beginning of time: he cannot possibly have read one tenth of the books he's reviewed. Probably a "hired hand"; I smell a rat.


Summary: Perfect introduction to moder virtual machine implementation techniques
Rating: 5
Virtual machines and virtualization are a hot topics in the IT industry today. This is a perfect book and a very good introduction to the topic if you consider programming your own virtual machine. This is also a good introduction for you want to understant the techology behind modern virtual machines. I have a few virtual machine related books in my self and this is the best general introduction to virtual machines. The book deals with practical problems related to implementing your own virtual machine and improving its performance.

If you are just interested in virtualization of your current hardware to support multiple operating systems using virtualization software such as VMWare, Xen or Microsoft Virtual Server, then this defenitely is NOT the book for you! If your main interest is on the Java Virtual Machine, then you should consider purchasing Java VM specific book such as Java Virtual Machine Specification.


Summary: nice abstraction
Rating: 4
To many people in computing, the most common context for running into a virtual machine might be a familiarity or use of Java. The program that runs a Java program is called a JVM, which stands for Java Virtual Machine. It presents a software construct to the Java program, that masquerades as a computer. This book takes the idea and shows its broader applicability. Nor is the discussion restricted to using Java as an example. The text also looks at Microsoft's CLI, which is part of its .NET framework. CLI lets a program written in a language picked from a certain set of Microsoft-supported languages call routines or classes written in other languages from that set. CLI also uses the idea of a common virtual machine to enable this functionality.

Smith explains that a virtual machine generalises the idea of source code. The latter has been around since at least Fortran in the early 60s. Source code freed programmers from many details about their hardware. But typically, it did this in part by assuming very little about the computer it ran on. Nowadays, a virtual machine offers broader scope. Its resources might include bandwidth and Internet access, and hard disk reading and writing.

There is also the possibility that virtual machines might facilitate utility computing, if users could access remote computing resources without concern of the type of hardware that these actually ran on.

The book might inspire you to help build out future virtual machines.

[ 本帖最后由 lotusky 于 2008-3-30 23:01 编辑 ]

Virtual Machines.part01.rar

4.79 MB, 下载次数: 291 , 下载积分: 资产 -3 信元, 下载支出 3 信元

Virtual Machines.part02.rar

4.79 MB, 下载次数: 232 , 下载积分: 资产 -3 信元, 下载支出 3 信元

Virtual Machines.part03.rar

4.79 MB, 下载次数: 383 , 下载积分: 资产 -3 信元, 下载支出 3 信元

Virtual Machines.part04.rar

4.79 MB, 下载次数: 354 , 下载积分: 资产 -3 信元, 下载支出 3 信元

Virtual Machines.part06.rar

4.79 MB, 下载次数: 301 , 下载积分: 资产 -3 信元, 下载支出 3 信元

Virtual Machines.part07.rar

4.79 MB, 下载次数: 276 , 下载积分: 资产 -3 信元, 下载支出 3 信元

Virtual Machines.part08.rar

4.79 MB, 下载次数: 242 , 下载积分: 资产 -3 信元, 下载支出 3 信元

Virtual Machines.part09.rar

4.52 MB, 下载次数: 360 , 下载积分: 资产 -3 信元, 下载支出 3 信元

Virtual Machines.part05.rar

4.79 MB, 下载次数: 383 , 下载积分: 资产 -3 信元, 下载支出 3 信元

发表于 2008-3-30 20:00:27 | 显示全部楼层
Thanks!
发表于 2008-3-30 20:01:52 | 显示全部楼层
Ding!
发表于 2008-3-30 20:11:03 | 显示全部楼层
This is a good book!
发表于 2008-3-30 20:34:37 | 显示全部楼层
Super!
 楼主| 发表于 2008-3-30 23:44:25 | 显示全部楼层


原帖由 dxzhang 于 2008-3-30 22:34 发表
05,09包有问题,解不开,CRC错误啊



不好意思,网络太慢导致上传出问题,已经更新了。。。。。
发表于 2008-3-31 11:42:35 | 显示全部楼层
Appreciate!
发表于 2008-3-31 11:43:31 | 显示全部楼层
Very informative in learning virtual machine.
发表于 2008-3-31 11:44:20 | 显示全部楼层
Thank you very much for sharing!
发表于 2008-3-31 11:45:43 | 显示全部楼层
This is a very good book!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-7 15:19 , Processed in 0.027217 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表