虚拟化的层次与机制

     最近几年随着并行计算、集群等技术的火热,虚拟机领域焕发了第二春。虚拟化就是指多台虚拟机共享一台物理机硬件的计算机体系结构技术。虚拟化的基本思想是分割软硬件以产生更好的系统性能(实际上,软硬件资源并没有增加,只是利用率提高了)。一个例子就是常见的“虚拟内存”,通过将一部分不用的磁盘写为页面文件,可以获得更大的内存地址空间,我们就可以跑更大的程序了。

1.  层次
     我们都知道,传统方式是应用程序跑在操作系统上,而操作系统需要适应主机的特定体系结构,比如x86的机器上就只能跑win,linux,MaxOS等几种,AIX就没法跑了。
     有了虚拟化之后,用于的应用程序由相应的客户操作系统管理,且1-n个客户操作系统可以独立于主机的操作系统,运行在同一个硬件上,且不需要适配硬件的特定体系结构。这通常通过增加一个虚拟化层来实现,该虚拟化层称为hypervisor或VMM(Virtual Machine Monitor)。
     虚拟化层将主机的物理硬件资源虚拟为可被各虚拟机互斥使用的虚拟硬件资源,这可以在不同的层面实现,如下图:

层次 例子
应用程序级 JVM/.Net CLR
库支持(用户级API)级 WINE
操作系统级 Docker
硬件抽象级 VMware/Xen/KVM
指令集体系结构级 Bochs

     我们从下往上看。

     指令集体系结构级:
     也称为ISA(Instruction Set Architecture)级,通过使用物理主机的ISA模拟一个给定的ISA来实现。基本的模拟方式是“代码解释”,一个软件翻译层的程序将源指令逐条翻译为目标指令,一条源指令可能会对应上百条目标指令来实现相同的功能。为改进性能,出现了动态二进制翻译技术,将动态源指令的基本块转换为目标指令,基本块可以转化为超级块来进一步提升转换的效率。尽管如此,这种方式还是五种层次中效率最低的。
     一个典型的代表是Bochs,可以在
  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值