DIM*_*Sum 9 xen virtualization vmware esxi hypervisor
我目前正在使用Simics模块(参见第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);
}
Run Code Online (Sandbox Code Playgroud)
通过这样做,Simics将调用my_tool_entrypoint每个指令和每个数据访问; 允许我按照我认为合适的方式检测我正在运行的内核.毋庸置疑,这是一个非常酷且非常强大的功能.
我的问题是:
请注意,我不会问如何在VMware,Xen,Bochs等下运行Simics.我问是否可能/如何在指令提取和内存访问上运行回调(正如我在Simics上展示的那样)另一个平台,如VMware,Xen,Bochs,Qemu等.
听起来您想使用“vProbes”。vProbes 允许您动态检测来宾操作系统中的任何指令或数据访问,然后回调脚本。(不确定您是否听说过 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
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |