[英]Implementing a kernel debugging module for a Linux guest OS inside a VmWare VM
對不起,相當長的帖子。
我需要一些關於我將要進行的項目的意見。
我正在嘗試創建一個應用程序,它從位於VmWare虛擬機內的來賓Linux操作系統收集內核調試信息,並有效地將它們發送到主機操作系統。
到目前為止,我已經找到了一個類似的項目,但是為Windows編寫[1]。 該項目的作者編寫了一個加載到內存中的DLL,並替換了KdSendPacket和KdReceivePacket函數的實現,以使用VmWare GuestRpc [2]機制,而不是慢速串行端口。 然后通過命名管道將數據發送到主機(Kd或WinDbg)上的調試應用程序。
作者聲稱,通過避免串口傳輸,速度提高了45%。
我試圖實現類似的東西,但對於Linux,並嘗試使調試過程比使用串行端口快一點。
我的具體問題是:
[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
許多方法可用於實現您的目標,如果網絡連接,可以應用以下方法:
使用syslog服務並通過網絡將日志傳送到您的服務器:syslogd,syslogng似乎支持將日志發送到具有一些過濾器標准的日志服務器。
直接調用內核模塊中的tcp / udp套接字函數,將收集到的數據發送回服務器。
在其他方法中,您可以在主機上編寫應用程序,調用hypervisor的共享內存訪問函數來讀取內核模塊的內存緩沖區。 但是,xen / kvm管理程序都支持這些api,我不確定天氣vmware是否有這種庫。
使用串口實際上並不是最理想的。即使(虛擬)網絡也會比這更好,但回到主客戶IPC頻道,VMware的VMCI浮現在腦海中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.