gpt4 book ai didi

emulation - "emulator"和 "virtual machine"之间的具体区别是什么?

转载 作者:行者123 更新时间:2023-12-03 08:22:18 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Full emulation vs. full virtualization

(9 个回答)


6年前关闭。




我看到它们是不同的东西,但我真的不知道为什么。
有人说:“模拟器是用来玩游戏的,虚拟机是用来做操作系统的”
我不同意这个答案,因为除了视频游戏机之外还有其他平台的模拟器(AMIGA(?))

你能帮我吗?

最佳答案

虚拟机利用 CPU 自我虚拟化,无论其存在程度如何,为真实硬件提供虚拟化接口(interface)。模拟器模拟硬件而不依赖于 CPU 能够直接运行代码并将一些操作重定向到控制虚拟容器的管理程序。

一个特定的 x86 示例可能会有所帮助:Bochs是一个模拟器,即使它在兼容的物理处理器上运行,也可以在软件中模拟整个处理器; qemu也是一个模拟器,虽然使用内核端 kqemu当模拟机器匹配物理硬件时,它获得了一些有限的虚拟化能力——但它不能真正利用完整的 x86 自虚拟化,所以它是一个有限的管理程序; kvm是一个虚拟机管理程序。

可以说管理程序“模拟” protected 访问。但是,它并不模拟处理器,更正确的说法是它调解 protected 访问。

protected 访问意味着诸如设置页表或读/写 I/O 端口之类的事情。对于前者,管理程序验证(并且通常修改,以匹配管理程序自己的内存)页表操作并执行 protected 指令本身; I/O 操作映射到模拟设备硬件而不是模拟 CPU。

只是为了让事情复杂化,Wine与模拟器(因此“Wine 不是模拟器”)相比,它更像是一个管理程序/虚拟机(尽管 ABI 级别更高)。

关于emulation - "emulator"和 "virtual machine"之间的具体区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6234711/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com