KVM、QEMU和KQemu的区别:

本文详细解析了KVM(Kernel-based Virtual Machine)作为Linux内核模块如何转换处理器到用户模式,以及QEMU如何模拟不同架构的机器,包括代码重编译和硬件仿真。同时介绍了KQemu模块在源目标架构相同情况下的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、KVM包括很多部件,它是一个Linux内核模块(现在包括在主线中)用于转换处理器到一种新的用户 (guset)模式。Qemu是一个完整的可以单独运行的软件;作为一个内核模块,KQemu仅仅需要替换最底层的ring0-only指令。

2、Qemu它可以用来模拟机器,非常灵活和可移植。它主要通过一个特殊的'重编译器'将为特定处理器编写二进制代码转换为另一种。(也就是,在PPCmac上面运行MIPS代码,或者在X86 PC上运行ARM代码)

3、KQemu当源和目标代码有同样的架构的时候,同样需要解析代码去出去任何'特权指令'并且把它们替换为上下文转换。为了尽量使这个过程有效,有个内核模块KQemu处理这个事情。作为一个内核模块,KQemu仅仅需要替换最底层的ring0-only指令。KQemu不需要重新编译代码,它仅仅调用KQemu去扫描/打补丁/执行。所有外围的硬件仿真是在Qemu中做的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值