- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我正在研究 x86 指令集架构 (ISA) 的动态指令替换。到目前为止,我只针对基于 RISC-V 的处理器架构这样做。由于没有可以合成到 FPGA 的公共(public)域 x86 实现,我现在必须坚持使用可视化。
我的实验设置如下: guest 应用程序(使用 gcc 编译,无外部库)在 qemu-user-mode 下运行。 (我发现这篇文章确实很有帮助:QEMU - Code Flow [ Instruction cache and TCG])整个系统在 Fedora 25 Linux 操作系统上运行,并从最新的 git 源构建。
一些指令是(我自己的代码分析)内部派发给
static AddressParts gen_lea_modrm_0(CPUX86State *env, DisasContext *s, int modrm)
从那里,我无法判断此类指令发生了什么。
gen_nop_modrm(env, s, modrm); (translate.c:8108)
是调用方法。
我的主要目标是在指令被识别后添加指令,以延迟再次连续执行同一指令。
我了解了基于 KVM 的 QEMU 执行是如何工作的。显然,某种超监督是可能的(即使是 USB 交易:https://www.blackhat.com/docs/eu-14/materials/eu-14-Schumilo-Dont-Trust-Your-USB-How-To-Find-Bugs-In-USB-Device-Drivers-wp.pdf)架构(虽然非常复杂)到目前为止是直截了当的。
我感兴趣的是:
我用我的搜索词进行了如此彻底的搜索。任何类型的提示、提示或建议都会非常有帮助和感激。
最好的问候。
最佳答案
TCG 和 KVM 是 QEMU 完全独立的操作模式。如果您正在使用 KVM(通过命令行上的 -enable-kvm),那么所有 guest 指令要么由主机 CPU native 执行,要么(对于一些主要对模拟设备执行 I/O 的指令)在主机内核中模拟; QEMU 的 TCG 指令仿真(这是您在上面提到的代码)根本没有被使用过。相反,如果您在 TCG 模式(默认)下使用 QEMU,那么我们就是用户空间中的纯模拟器,不会使用主机 CPU 的管理程序功能。 qemu-user-mode 始终是 TCG 仿真,而不是 KVM。
为了回答您关于 TCG 代码的问题,gen_lea_modrm_0() 并未完全处理特定类别的指令。它只是处理这种形式的指令的解码部分——它查看指令的 modrm 字节,从指令流中加载一些其他字节,并返回一个结构,指示指令正在使用的寻址模式的详细信息.它还确保 PC 已在包括该立即数据在内的整个指令中前进。调用 gen_lea_modrm_0() 的代码然后使用寻址模式信息作为发射 TCG IR 操作的一部分来完成工作。 gen_nop_modrm() 是一种特殊情况,因为它是针对一种或另一种形式的 NOP 指令调用的。所以没有“真正的工作”要做,调用 gen_lea_modrm_0() 的唯一目的是确保我们已经将 PC 推进到 insn 编码的任何中间数据。我们不发出 TCG IR 操作,然后当生成的代码运行时,什么也没有发生,这正是您想要的 NOP...
关于x86 - 从指令替换的角度看QEMU与KVM的交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41960895/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我想玩新的 aspnet vnext,但它需要安装 kvm。 Here他们说我需要克隆存储库并运行 kvmsetup.cmd。但是当我克隆 repo 时没有这样的文件。 所以我回到了他们的 home
我是kvm新手,现在qemu-kvm和kvm都很复杂。任何人都可以介绍一些关于 qemu-kvm 和 kvm 的入门知识?非常感谢! 最佳答案 KVM 代表基于内核的虚拟机。它使您能够创建任意数量的虚
我在 eclipse for android 工作过,但现在我已经转移到 android studio,从 here 下载 android studio 之后: 使用studio设置sdk 创建安卓项
我有一个 x86_64 m/c,我在这个 m/c 上成功安装了 Sles12 和 RHEL7 guest。但是在创建 ubuntu guest (64 位)时,这是失败的。 virt-install
在我已经虚拟化的主机中,尝试将选项传递给选项 -enable-kvm -m 1024 , 将失败: qemu-system-x86_64 -vga std -enable-kvm -m 1024
我正在尝试使用 kvm 在 qemu 中进行一些操作系统开发。我使用的是 x86-64,我的主机 CPU 是 Intel i7-6700K (Skylake)。问题是当我使用 -cpu host 运行
我正在尝试在 KVM 的两个实例之间设置一个 RDMA channel 。我想使用 管理程序内部 中的 RDMA (Infiniband) Verbs API 在两个实例之间发送一个简单的字符串。我不
我正在尝试在我的 Macbook 上安装 vNext,但是当我运行时 source kvm.sh终端只是挂起。 我的设置: OSX 10.9.5(小牛队) 单声道 3.10.0 我的问题: 我按照从
如何正确设置 K Version Manager (KVM),以便稍后可以通过在 powershell 中的任意位置键入“KVM”来运行 KVM?我是否必须向 HOME 存储库添加路径? 最佳答案 运
我在 Elementry OS 上运行 android studio。我已经安装了 kvm 并且安装正确...请参见下面的屏幕截图... 但是当我尝试在 android studio 中运行模拟器时,
1、讲在前面(玩这个的心历路程) 最近一段时间想玩一些集群之类的东西,学习搞一下K8s,集群啥的,但是我没有多台服务器,如果购买云服务器成本太高,后来想到了买台台式机弄点虚拟机来玩,于是我就在某鱼上
作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211105852095/ 相关话题:https://ww
我正在尝试将 KVM guest (Ubuntu 18.04)添加到本地网络,就像网络中的其他真实服务器一样。我在主机系统(Ubuntu 18.04)中配置了 KVM 桥接接口(interface),
我正在尝试运行kvm,但是出现了这个错误: $ virsh -c qemu:///system list error: Failed to connect socket to '/var/run/li
我使用 git clone git://git.kernel.org/pub/scm/virt/kvm/kvm.git 获得了 kvm 源。 我想尝试使用 kvm 核心来添加和/或删除功能,并在每次构
是否可以跟踪KVM生成的所有系统调用/中断来与硬件交互。我知道有像 strace 这样的工具可以跟踪任何 C 程序生成的所有系统调用,但是如果您想获取虚拟机管理程序的所有系统调用,如何执行相同的操作。
我一直在尝试使用原始套接字发送 UDP 数据包,但是,本地未收到发送的数据包。如果发送到远程目的地,也会收到相同的数据包。测试在KVM下进行。相同的测试似乎在 Parallels 下运行。 套接字设置
我知道 qemu-kvm 在 KVM 中进行设备模拟。 qemu-kvm 是否在主机的用户空间中执行?所以当遇到kick函数时,通过hypercall退出VM进入hypervisor,然后hyperv
我想知道是否有一个 KVM API 允许您使用一个简单的命令从 python 脚本启动 KVM 虚拟机。 我的 Python 脚本会执行一系列检查,以确定我们是否需要启动特定的 VM,如果需要,我想启
我是一名优秀的程序员,十分优秀!