发新话题
打印

能不能做一个虚拟机的专题评测

能不能做一个虚拟机的专题评测

现在的CPU大多支持虚拟技术,AMD大概是3800+以上均支持,Intel大概是E6xxx以上都支持。虽然现在暂时有意识去用虚拟技术的普通用户还不是很多,主要是很多用户缺乏了解。但是一个虚拟化的大潮不久就会到来,IntelAMD都不断在继续发展CPU支持虚拟化的技术当中,包括微软等大软件企业也在虚拟化是上不断加大投入。现在用VMWare,Virtual PC之类软件的人还是不少的。
同CPU普遍支持不相称的是,目前的硬件文件几乎都忽略了对虚拟技术支持情况的介绍。现在市面上这些大量的主板,到底哪些是支持的,哪些是不支持,完全没人搞的清楚,更别说哪些支持的好bug少,性能好。象微星的P35 neo2 FR是不支持的,BIOS里面选项都没有。七彩虹的P35 BIOS里是有选项,但据说用E2140的人也可以打开这个选项,这显然是没有去判别CPU,具体这个选项是不是摆设就不清楚。
所以我觉得出篇文章介绍下这方面的情况是非常必要的。如果可以的话,比较下他们对几个常用虚拟软件的支持程度,以及性能当然更好。这文章做出来绝对是全国独家,而且应该也是世界独家。

TOP

虚拟机是什么?
谁来解释一下.

TOP

虚拟机(virtual machine),在计算机科学中的体系结构里,是指一种特殊的软件,他可以在计算机平台終端用戶之间建立一种环境,而終端用戶则是基于这个环境来操作软件。a virtual machine in computer science is software that creates an environment between the computer platform and the end user in which the end user can operate software.
确切的说,“虚拟机”这个术语有几个不同的含义:Specifically, the term virtual machine has severa7l distinct meanings:



[编辑] 定义
[编辑] 原始含义一个更原始的关于虚拟机的说法是这样的。最初的程序员编写程序是直接写硬件指令的,这也是所谓编码(coding)一词的由来,后来出现了“自动编程工具与语言”,其实就是现在所谓的编译程序与编程语言,它们帮助程序员自动生成硬件指令,从此程序员不再需要和物理的计算机打交道了,而是和一个逻辑的计算机打交道,这就是最最原始的虚拟计算机的概念。在此基础之上发展出计算机操作系统。
虚拟机”较原始的一个含义是指一台电脑中精确的模拟一系列不同的电脑环境。这让每位用户感觉到他在一台完整、與其他用户互相隔离的计算机上操作;尽管事实上大家都在在同一台實體计算机上。提供给计算机这种能力的软件,宿主软件,通常被叫做虚拟机管理器(virtual machine monitor或hypervisor)。
另一个关于虚拟机的概念是这样的。在windows的现行版本中存在着多个子系统,例如DOS子系统、WIN32子系统,它们用来仿真旧的操作系统环境实现对继承下来的软件的支持,这些子系统显然就是虚拟机。


[编辑] 应用程序虚拟机此外, 虚拟机更普遍的意思:是一个使得用户的应用程序独立于电脑的电脑软件。因为不同的电脑平台有特别替它编写的虚拟机,面向虚拟机编写的应用程序就可以在不同的平台上运行,而不必为每个电脑和操作系统编写独立的应用程序版本。应用程序的运行是靠解释器或者实时编译技术


[编辑] 操作系统虚拟机这里虚拟机也用于指由一个模拟器所建立的一个环境,这个模拟器可以为最终用户在自己本地的操作系统上模拟另一个操作系统


[编辑] 并行虚拟机近年来,“虚拟机”这个词也可以用来指一个并行虚拟机(PVM)。将众多电脑串联起来,当作一个大型的平行运算电脑使用。


[编辑] 技术Techniques
[编辑] 硬件的仿真Emulation of the underlying raw hardware基于这种虚拟机,用户可以运行任何操作系统,比如可以在他们“个人的”虚拟电脑上运行兩個不同的操作系统(也被称为“访客(guests)”)。这样的话,新版的实验性操作系统就可以与旧版的较稳定版本一同在单独的虚拟机上运行。这个过程甚至可以重复(recursive);IBM就在运行于旧版的虚拟机上的虚拟机上调试它新版的虚拟机操作系统,VM
这个概念的一个早期使用者就是IBM的VM/CMS time-sharing产品,该产品使用的交互式计算单用户操作系统,CMS,相对来说比较简单,运行于VM上。通过这种方式,CMS编写起来就比较简单,就好像只有它一个在运行一样,VM操作系统就在幕后提供多任务以及资源管理服务。
当然,不是每个VM用户都必须运行CMS;有些用户选择在一个或者多个虚拟机上运行某种OS/360(或者MVS),来提供传统上的批处理服务。今天,IBM大型机还在使用VM,许多虚拟机上运行的是Linux操作系统。
VMwaretwoOStwo以及SVISTA软件包在现代PC上都在处理类似截获硬件访问,模拟除了处理器以外的任何主板上的器件的事情。
plex86属于另外一种情况,它使用特定的打过补丁的内核,只能运行于Linux下,而且只能在其之上运行Linux。因此,它不是仿真处理器,它利用bochs来仿真主板设备。
现代PC使用的x86处理器架构其实并不能满足Popek和Goldberg虚拟化要求。很明显,这种架构缺少所有特权机器指令都会产生异常的模式,而这种模式可以做到单指令的虚拟化。这导致VMware或类似的x86虚拟软件必须动态地重新编译特权模式代码。这种虚拟技术和运行于如IBM System/370、Motorola MC68020的原生态可虚拟架构上的VM相比,就会多出一些性能上的开销。IntelAMD都声称计划给未来的x86处理器加入x86虚拟化能力


[编辑] 非原生系統的模擬Some of this class of virtual machines are emulators; these allow software written for one machine to run on another. Emulation for computer systems can include emulation for both different machine architectures, and operating systems.
Others produce behaviors and capabilities of a machine that doesn't necessarily exist as an actual piece of hardware but may only be a detailed specification. For example, the p-Code machine specification (one of the first, used for support of Pascal) was a description of a specific set of capabilities and behaviors that programmers could use to write programs that would run on any computer running virtual machine software that correctly implemented the specification.
More modern examples include the specification of the Java virtual machine and the Common Language Infrastructure virtual machine at the heart of the Microsoft .NET initiative.
These allow diverse computers all to run software written to that specification; the virtual machine software itself must be written separately for each type of computer on which it runs.


[编辑] 虛擬機器列表
  • Common Language Runtime (Microsoft .NET)
  • DOSBox (DOSBox)
  • FAUmachine (emulates a PC)
  • Glulx (for game playing, version not yet 1.0, similar to Z-machine)
  • Forth virtual machine
  • Java虚拟机 (JVM)
  • MMIX (hypothetical CPU for describing algorithms)
  • O-code machine (historical, used for BCPL, a fore-runner of C)
  • p-Code machine (historical, mainly used to run Pascal programs)
  • Perl (the virtual machine of Perl 5 is not separately accessible)
  • Parrot (a virtual machine which is currently developed for interpreted dynamic languages (Perl 6, Ruby, ...).
  • SECD machine (for Lisp-like languages)
  • ScummVM (for playing adventure games, current GNU implemantations available)
  • Smalltalk virtual machine
  • Squeak virtual machine (VM for the Smalltalk variant Squeak)
  • SVISTA (small powerful virtual machine, but project seems dead now)
  • twoOStwo (small powerful virtual machine, but project seems dead now)
  • Warren Abstract Machine (for executing Prolog programs)
  • Inferno (simulates an Operating System)
  • Ten15 virtual machine
  • TrueType virtual machine
  • User-mode Linux a virtual machine kernel modification for Linux.
  • Virtual PC (Microsoft's virtual machine software)
  • VMware (powerful, professional-level virtual machine software)
  • Xen
  • Z-machine (historical, used for text adventure games)

[编辑] 參看
  • Gerrit Blaauw (A significant designer of the IBM/360, an early virtual computing architecture)
  • Threaded code (A common implementation technique for application virtual machines)
  • Computing
  • LLVM (The University of Illinois's Low Level Virtual Machine, a compiler toolset)

[编辑] 外部連結
  • Citations from CiteSeer
  • TRANGO real-time embedded hypervisor
  • The Reincarnation of Virtual Machines, Article on ACM Queue by Mendel Rosenblum, Co-Founder, VMware
  • Xen
  • 虚拟机之家
来自“http://zh.wikipedia.org/wiki/%E8%99%9A%E6%8B%9F%E6%9C%BA
HL青

TOP

  Virtualization Technology(虚拟化技术)能够可以让一个CPU工作起来就像多个CPU并行运行,从而使得在一部电脑内同时运行多个操作系统成为可能,它的出现能够使用户在他们的个人电脑上建立多套虚拟的运行环境以便能够在同一台个人电脑上运行不同的操作系统。

  根据Intel的资料,虚拟技术的实现需要同时具有处理器、芯片组、BIOS、VMM软件的支持,这些特定的平台软件必须全部到位,同时性能方面要视不同的硬件和软件平台而定。


  Virtualization技术和多任务(Multitasking)、HyperThreading超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟技术中,你可以拥有多个操作系统同时运行,每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上。而HyperThreading超线程只是在SMP系统(Symmetric?Multi?Processing)中单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。

-----------------------------------

关于虚拟技术,普通用户应用的很少,包括我们,也相当陌生,我们将会在这方面作些尝试,谢谢这个非常好的建议。

TOP

发新话题