【发布时间】:2012-03-21 22:01:16
【问题描述】:
抱歉,这篇文章太长了。
我需要一些关于我将要进行的项目的意见。
我正在尝试制作一个应用程序,该应用程序从位于 VmWare 虚拟机内的来宾 Linux 操作系统收集内核调试信息,并将它们有效地发送到主机操作系统。
到目前为止,我发现了一个类似的项目,但是是为 Windows[1] 编写的。 该项目的作者编写了一个加载到内存中的DLL,并替换了KdSendPacket和KdReceivePacket函数的实现,以使用VmWare GuestRpc[2]机制,而不是慢速串口。 然后通过命名管道将数据发送到主机(Kd 或 WinDbg)上的调试应用程序。
作者声称通过避免串行端口传输,可以提高 45% 的速度。
我正在尝试实现类似的东西,但对于 Linux,并尝试使调试过程比使用串行端口快一点。
我的具体问题是:
- 是否存在类似的应用程序? 我没找到。
- 例如,将其功能与 netconsole[3] 进行比较,这样的应用程序是否值得?
- 您建议使用哪种截取 printk 消息的方法?
- Linux 上是否有等效的 KdSendPacket/KdReceivePacket ?
[1]。 http://virtualkd.sysprogs.org/dox/operation.html
[2]。 http://articles.sysprogs.org/kdvmware/guestrpc.shtml
[3]。 http://www.kernel.org/doc/Documentation/networking/netconsole.txt
【问题讨论】:
-
使用virtio控制台设备怎么样? virtio 比任何完全虚拟化的设备都要快得多。 ibm.com/developerworks/linux/library/l-virtio
标签: linux vmware virtualization kernel