阅读:4278回复:4
虚拟化技术-入门篇
本文结合作者多年虚拟化开发体验(曾就职某研究院搞相应课题),试图以通俗语言讲述虚拟化技术相关内容。本文仅限于技术交流,不可用于任何商业用途。
0.发展历程 虚拟化技术真正发展从20世纪60年代开始。IBM最早发明一种操作系统虚拟机技术,允许用户在一台主机运行多个操作系统,让用户尽可能地充分利用昂贵的大型机资源。典型代表 IBM 7044计算机。同阶段,还流行另一种虚拟化技术--仿真处理器,也称P-Code机,该模型后来被Java利用,成为JVM。曾一度,随计算机发展,虚拟化技术一度无人问津,而只在高档服务器中等于生存。20世纪90年代末,以Vmware为代表的虚拟化软件厂商率先在x86服务器上开辟了道路,使得虚拟化技术再次被人们认识并发展 1.虚拟化技术分类 为了满足不同的功能需求,出现了不同的虚拟化技术解决方案,由于其采用不同的实现方式和抽象层次,使得这些虚拟化系统呈现不同的特征。虚拟化技术的分层完全同步计算机系统的分层机构。 a. 指令集虚拟化 指令集虚拟化通过纯软件方法,模拟出与实际运行的应用程序(或操作系统)所不同的指令集去执行,采用这种方法构建的虚拟机一般被称为模拟器。模拟器通过将客户虚拟机发出的所有指令翻译为本地指令集,然后再真实硬件上执行。当然,一个模拟器要成功的模拟一个真实的机器,它必须能够模拟真实及其所能做的一切事情,包括读ROM,重启,系统关闭等。 典型代表: BOCHS / Crusoe / QEMU / BIRD b.硬件虚拟化 硬件虚拟化,实际和指令集虚拟化非常相似,但不同之处在于,这种虚拟化所考虑的是一种特殊情况:客户执行环境和主机执行环境具有相同的指令集,并充分利用这一特点,让绝大多数的客户指令在主机上直接执行,从而大大提高执行的速度。这种技术要正确工作,所构建的虚拟机必须对其中的一些特权指令(如修改页表等操作)进行处理,执行时候产生陷入并把它传递给下层的虚拟机监视器(VMM)执行。 典型代表: VMware / VirtualPC / VirtualBox / Denali / Xen / KVM / UML /CoLinux 3.操作系统虚拟化 操作系统虚拟化,其特点是采用在OS和用户插入一层,为用户提供多个独立,隔离的应用环境。 典型代表: Jail / Ensim 4. 编程语言虚拟化 典型代表: Java / .Net CLI 5. 程序库虚拟化 典型代表: WINE / WABI / Visual MainWin 关于虚拟化技术下篇-- 指令集虚拟化,下回分解。 |
|
沙发#
发布于:2009-03-14 01:15
学习了,对第3种,比较感兴趣
|
|
|
板凳#
发布于:2009-03-14 15:21
有什么资料共享一下呀
|
|
地板#
发布于:2009-04-03 08:54
。。。。怎么到这里就没有消息了。?
|
|
地下室#
发布于:2009-06-26 22:38
挺好的,看了
|
|