虚拟化中如何实现设备模拟?

在计算机虚拟化领域中,对设备进行模拟是虚拟化实现的基础。设备的模拟主要包括一下三个方面:

  1. 设备状态的记录;

  2. 设备的运行逻辑的模拟,包括不同状态之间的转换关系,状态转换时对其他设备的影响(没有的话当然最好);

  3. 设备跟外界的交互接口,主要是各种总线接口或者I/O地址接口。

说白了其实就是复杂一点的状态机。


实现设备模拟可有两种方式,即纯软件模拟和硬件辅助的方式。


纯软件模拟的方式即借助第三方软件的运行,对设备的状态及运行方式进行模拟,真正运行的是第三方软件,而目标设备只是被间接地运行起来(或者再外界开来似乎是运行起来了),它并没有真正在硬件上运行。这种硬件模拟方式运行起来性能比较差,但是却可以充分发挥软件的灵活性,让第三方软件能够模拟出更多的硬件。


通过硬件辅助的方式进行设备模拟即借助硬件自身的模拟功能,让模拟的设备实实在在地在真是的硬件上运行。为了实现这种功能,即可以通过时分复用的方式也可以通过硬件分区的方式。

时分复用的方式即让某些高速的设备一会儿作为模拟的设备运行,一会儿作为非模拟的设备运行,比如x86 CPU的VMX功能,当VMX功能开启的时候,它就会再vCPU和物理CPU之间不停地切换,让vCPU和物理CPU交替地运行,只要运行和切换的速度足够快,用户就感觉不出来延迟,产生并行执行的错觉。好比演员,在真实世界中是一个人物,在电影、电视剧中又是一个另外的任务,处在一个完全不同的世界中。

硬件分区的方式即将一个完整的硬件划分为N个区域,每个区域运行一个模拟的设备,这个多个模拟的设备可以真正同时运行。这个有点类似于封建社会的分封制度,当某个帝王的儿子长大之后,他就在自己的底盘里画出一片区域,让他自个玩去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值