gpt4 book ai didi

vmware - 在 VMware ESXi 中生成对数据访问的函数调用

转载 作者:行者123 更新时间:2023-12-04 04:37:11 27 4
gpt4 key购买 nike

我目前正在使用 Simics module (见第 6 章)监听指令获取和数据访问,并对所有这些事件运行回调,以便检测在 Simics x86 上运行的内核。例如,我可以创建一个 Simics 模块,如下所示:

/* Initialize our Simics module. */
void init_local(void)
{
const class_data_t funcs = {
.new_instance = ls_new_instance,
.class_desc = "desc",
.description = "A simics module."
};

/* Register the empty device class. */
conf_class_t *conf_class = SIM_register_class(SIM_MODULE_NAME, &funcs);

/* Register our class class as a trace consumer. */
static const trace_consume_interface_t trace_int = {
.consume = (void (*)(conf_object_t *, trace_entry_t *))my_tool_entrypoint
};
SIM_register_interface(conf_class, TRACE_CONSUME_INTERFACE, &trace_int);
}

通过这样做,Simics 将调用 my_tool_entrypoint在每条指令和每一次数据访问中;允许我按照我认为合适的方式检测我正在运行的内核。不用说,这是一个非常酷且非常强大的功能。

我的问题是:
  • 在 VMware ESXi(或 VMware Workstation)Hypervisor 上运行的程序是否可以使用此类功能?如果是这样,该功能的文档在哪里?
  • 如果它在 ESXi 上不可用,那么它是否在任何其他虚拟机管理程序(如 Xen)上可用?

  • 请注意,我不是在问如何在 VMware、Xen、Bochs 等下/之上运行 Simics。我是在问是否有可能/如何在指令获取和内存访问上运行回调(正如我所展示的那样,使用 Simics 是可能的)另一个平台,例如 VMware、Xen、Bochs、Qemu 等。

    最佳答案

    听起来您想使用“vProbes”。 vProbe 允许您动态检测 guest 操作系统中的任何指令或数据访问,然后调用回调脚本。 (不确定您是否听说过 Solaris 的“Dtrace”,但它很相似)例如,我用它来跟踪 Linux 调度程序内部的函数调用。脚本必须用一种名为 Emmett 的类 C 语言编写。这篇文章很好地了解了这项技术以及可能的情况:https://labs.vmware.com/vmtj/vprobes-deep-observability-into-the-esxi-hypervisor

    此外,这里是 Workstation 和 Fusion 引用指南的链接。它似乎有点旧,但我认为它没有太大变化。 (顺便说一句,它适用于 ESXi 以及 Workstation 和 Fusion)
    http://www.vmware.com/pdf/ws7_f3_vprobes_reference.pdf

    关于vmware - 在 VMware ESXi 中生成对数据访问的函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40955429/

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