1
如果我修改主機內核的timeofday()調用,那麼會在來賓內核調用修改過的系統調用,或者HyperVisor會以某種方式處理它?如何在VM(使用KVM)中處理timeofday()系統調用?
有人可以得到有關幕後發生的詳細答案嗎?
另外,我想知道這是怎麼內核版本3.10.9和內核版本進行4.2
如果我修改主機內核的timeofday()調用,那麼會在來賓內核調用修改過的系統調用,或者HyperVisor會以某種方式處理它?如何在VM(使用KVM)中處理timeofday()系統調用?
有人可以得到有關幕後發生的詳細答案嗎?
另外,我想知道這是怎麼內核版本3.10.9和內核版本進行4.2
KVM需要與硬件虛擬化支持(VT-x/AMD-V)的處理器。在硬件虛擬化中,所有訪客中斷都會在主機操作系統上產生陷阱。主機然後確定中斷是爲自己還是爲客人。對於前一種情況,主機OS將處理該中斷;稍後,它會通知KVM。
KVM使用kvm_clock從虛擬機管理程序KVM定期寫入時間的共享內存位置(在VM中)讀取數據。因此,如果您在主機上修改gettimeofday(),管理程序將使用它獲取時間,並將更新時間寫入共享內存位置。
您可以在原始紙張中閱讀有關KVM的更多信息:Paper