虚拟技术详析

           虚拟机在我们的印象当中并不是一个陌生的词了,我们使用VMware或者virtual pc,以及其他如qemu等虚拟机来在一台计算机上模拟出几个可以同时运行的操作系统时,我们就应该感受到虚拟技术的强大了。可以说,如果没有虚拟机,计算机世界真的少了一道亮丽的风景线。可以看到,新出来的“云计算”概念中,虚拟化技术是其核心之一。
           但是,虚拟技术并不仅仅局限于像虚拟机这种抽象层次比较高的软件产品,它也可以由下到上的分为几个层次:
          
          最底层上,可以使用软件模拟硬件,这也是一种虚拟技术。最好的例子,就是使用软件指令来模拟浮点数的运算。在 处理器中没有浮点运算单元,同时也没有浮点运算协处理器的情况下,使用软件来模拟浮点运算处理器是一种重要手段。
          向上,是指令集的虚拟。在微指令计算机中,机器指令并非最底层执行元素,最底层的是微指令。各种计算机的硬件体系结构并不相同,我们最经常使用的是x86架构,这也是最为广泛使用的处理器架构。但是,并不是所有的计算机都是x86架构,sun公司的sparc架构,以及MIPS等等,所以,我们可以看到,在VMware中,我们无法安装ibm的aix系统,或者其他的依赖于特殊硬件体系结构的操作系统。在这一过程中,可以使用虚拟化技术,在软件层次上虚拟出一个特殊的硬件体系结构,然后我们就可以在这个虚拟出来的硬件平台上运行不加修改的操作系统了。但是,我们并没有看到这个层次上的商业化产品,这是为什么?依我之见,这层只有理论上存在的必要,而没有商业化存在的价值。因为各种硬件平台,除了x86以外,都是各个公司的专有产品,上面运行的操作系统也是各公司专门设计的操作系统,除了我们这些没钱买机器的人用来研究有这个需要之外,实际并无此需要,况且,这些公司并不会提供设计这层虚拟层次的技术资料。
          再向上,是高级程序语言层次,也就是在操作系统层次上的虚拟,它虚拟出一个完整的计算机硬件系统,然后使各种操作系统运行在这个硬件系统上。这也是我们用的最多的层次,VMware,virtual pc,virtual box等都属于这一层次。这一层次有两种情形:一种就是我们现在使用的虚拟机软件模式,先安装上一个主机操作系统,然后在这个操作系统上安装虚拟机软件,接着在虚拟机中安装各个虚拟机操作系统;第二种与第一种并无本质不同,只是把主机操作系统变得很薄,仅仅只是提供一个上层虚拟系统运行的基本环境而已。然后再把各个常用操作系统安装在一个完整的虚拟计算机系统中。还有一种不得不提的虚拟形式,xen半虚拟化技术,这种技术具有虚拟硬件虚拟机的大部分特性,其最大的不同点在于,Xen需要修改操作系统内核。目前,Xen只支持在Linux系统之上实现的Linux虚拟机。不过,其新的版本将支持Intel公司的硬件虚拟技术Intel-VT,这一个关键技术将可以用以解决Xen在虚拟化Windows系统方面的困难。
            接着再向上,到了应用程序的虚拟层次,它通过提供一个非本机操作系统平台的环境来运行其他操作系统上的软件。这一层次上也有软件产品,最常用的是Linux下的wine和java虚拟机。Linux下的wine,使用它,可以在Linux下运行windows下的应用软件,也就是可以直接点击.exe文件安装和使用windows程序。但是,由于实现wine的方法是重新实现windows的dll文件,由于很多dll文件并没有实现,所以并非所有windows的应用程序都可以很好的运行,甚至是运行有时都是问题,这取决于你探索wine的程度。而java虚拟机,屏蔽了硬件系统和操作系统的各种差异,使得编写的代码可以一次编译,处处运行。而处处运行就是运行在java虚拟机之上。
              在大规模集群系统中,几台、几十台、几百台,甚至是几千万台计算机表现的如同一台计算机一样,对外提供服务。这也是一种虚拟技术 ,时髦的说,是将计算机世界抽象成了“一朵云”,这朵云的内部对外部使用者是透明的。获取服务者只需接入“云”,付费后就可以获取服务。
              当然,虚拟技术并不局限于这些存在形式,它还以各种形式在计算机世界中存在。如计算机系统中的虚拟内存管理系统,虚拟文件管理系统等等。从这些虚拟技术中,我们可以看到,第一,虚拟技术是把一种形式的资源转化为另一种形式资源的桥梁;第二,虚拟技术的抽象层次不同,我们所看到的计算机系统的层次也有所不同。从虚拟技术在计算机中的使用所带来的巨大影响可以看出,虚拟技术对于计算机世界是必要的,甚至是非常关键性、决定性的技术。我们不能说虚拟技术已经到了头,任何时候都有改进、创新技术的可能性。

你可能感兴趣的:(职场,休闲,虚拟技术)