sosojohn
论坛版主
论坛版主
  • 注册日期2006-01-29
  • 最后登录2021-06-25
  • 粉丝0
  • 关注1
  • 积分1047分
  • 威望535点
  • 贡献值1点
  • 好评度178点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:4183回复:4

虚拟化技术-入门篇

楼主#
更多 发布于:2009-03-11 10:06
本文结合作者多年虚拟化开发体验(曾就职某研究院搞相应课题),试图以通俗语言讲述虚拟化技术相关内容。本文仅限于技术交流,不可用于任何商业用途。
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

关于虚拟化技术下篇-- 指令集虚拟化,下回分解。
hgwolf
驱动中牛
驱动中牛
  • 注册日期2002-05-16
  • 最后登录2011-12-12
  • 粉丝0
  • 关注0
  • 积分1035分
  • 威望520点
  • 贡献值0点
  • 好评度316点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-03-14 01:15
学习了,对第3种,比较感兴趣
牛犊小牛中牛大牛老牛,天那,我什么时候能变成牛顿啊
375848581@qq.co
驱动牛犊
驱动牛犊
  • 注册日期2009-01-11
  • 最后登录2010-07-14
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望61点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-03-14 15:21
有什么资料共享一下呀
idealin
驱动牛犊
驱动牛犊
  • 注册日期2009-03-16
  • 最后登录2010-03-25
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望241点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-04-03 08:54
。。。。怎么到这里就没有消息了。?
isbaseqi
驱动牛犊
驱动牛犊
  • 注册日期2009-06-23
  • 最后登录2010-02-23
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望111点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-06-26 22:38
挺好的,看了
游客

返回顶部