我已經(jīng)在Linux中使用VMX設(shè)計(jì)了一個(gè)玩具管理程序,它可以與我的測(cè)試VM一起很好地工作?,F(xiàn)在,我正在嘗試使用玩具管理程序測(cè)試掛起并恢復(fù)我的測(cè)試虛擬機(jī)。我進(jìn)行了以下操作以掛起VM。VM以實(shí)模式啟動(dòng),然后進(jìn)入保護(hù)模式。它調(diào)用wrmsr,這將導(dǎo)致VMEXIT。系統(tǒng)管理程序獲取VMEXIT,然后將CPU上下文(gprs,段reg,描述符表等)和VM的內(nèi)存保存到磁盤文件中,然后退出。(未清除VMXON / VMCS區(qū)域)?,F(xiàn)在,重新啟動(dòng)VM加載程序,它將讀取磁盤文件,將CPU上下文保存到VMCS字段中,并填充VM的內(nèi)存。然后,通過(guò)調(diào)用“ vmlaunch”告訴系統(tǒng)管理程序啟動(dòng)VM。(在此之前,系統(tǒng)管理程序?qū)⒄{(diào)用vmxon,vmclear,vmptrld和vmwrite VMCS字段和來(lái)賓CPU上下文)。我的期望是虛擬機(jī)將從以前保存的RIP中恢復(fù)。但失敗并顯示“無(wú)效的訪客狀態(tài)”我用ch 26.3檢查了這些字段,但是找不到任何提示。請(qǐng)?jiān)谏厦嬲樟聊愕臒簟?
1 回答

慕桂英4014372
TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
FS ATTR和GS ATTR無(wú)效。請(qǐng)參閱26.3.1.2中對(duì)“訪問(wèn)權(quán)限字段”的檢查。如果位16為0,則位7:0必須為非零值,通常為0x93。
添加回答
舉報(bào)
0/150
提交
取消