亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2303 | 回復(fù): 2
打印 上一主題 下一主題

[Xen] 關(guān)于libvmi的問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-09-26 15:00 |只看該作者 |倒序?yàn)g覽
libvmi是谷歌的一個(gè)開源項(xiàng)目,用于查看虛擬機(jī)內(nèi)部情況,如在Xen虛擬化環(huán)境下,可以在Dom0中,通過libvmi查看其它虛擬機(jī)的內(nèi)存情況,如獲取模塊鏈表、進(jìn)程鏈表等,我在這個(gè)庫的一個(gè)初始化地方有點(diǎn)疑問,希望可以和大家一起探討下。
  1. status_t linux_init (vmi_instance_t vmi)
  2. {
  3.     status_t ret = VMI_FAILURE;

  4.     if (vmi->cr3){
  5.         vmi->kpgd = vmi->cr3;
  6.     }
  7.         //如果vmi->cr3=0時(shí),將執(zhí)行這個(gè)分支
  8.     else if (VMI_SUCCESS == linux_system_map_symbol_to_address(vmi, "swapper_pg_dir", &vmi->kpgd)){//此時(shí),從System.map文件中獲取到了swapper_pg_dir的虛擬地址,并賦值給了vmi->kpgd
  9.         dbprint("--got vaddr for swapper_pg_dir (0x%.16llx).\n", vmi->kpgd);
  10.         if (driver_is_pv(vmi)){
  11.             vmi->kpgd = vmi_translate_kv2p(vmi, vmi->kpgd);       //這里通過 vmi_translate_kv2p函數(shù)將虛擬地址轉(zhuǎn)化為物理地址,轉(zhuǎn)到vmi_translate_kv2p函數(shù)
  12.             if (vmi_read_addr_pa(vmi, vmi->kpgd, &(vmi->kpgd)) == VMI_FAILURE){
  13.                 errprint("Failed to get physical addr for kpgd.\n");
  14.                 goto _exit;
  15.             }
  16.         }
  17.         else{
  18.             vmi->kpgd = vmi_translate_kv2p(vmi, vmi->kpgd);
  19.         }
  20.     }
  21.     else{
  22.         errprint("swapper_pg_dir not found and CR3 not set, exiting\n");
  23.         goto _exit;
  24.     }

  25.     vmi->kpgd = vmi->cr3;
  26.     dbprint("**set vmi->kpgd (0x%.16llx).\n", vmi->kpgd);

  27.     addr_t address = vmi_translate_ksym2v(vmi, "init_task");
  28.     address += vmi->os.linux_instance.tasks_offset;
  29.     if (VMI_FAILURE == vmi_read_addr_va(vmi, address, 0, &(vmi->init_task))){
  30.         errprint("Failed to get task list head 'init_task'.\n");
  31.         goto _exit;
  32.     }

  33.     ret = VMI_SUCCESS;
  34. _exit:
  35.     return ret;
  36. }
復(fù)制代碼
  1. addr_t vmi_translate_kv2p(vmi_instance_t vmi, addr_t virt_address)
  2. {
  3.     reg_t cr3 = 0;
  4.     if (vmi->kpgd){//由于在“l(fā)inux_init”函數(shù)中,vmi->kpgd已經(jīng)被賦值為"swapper_pg_dir"的虛擬地址,所以將執(zhí)行此分支
  5.         cr3 = vmi->kpgd;            //cr3被賦值為vmi->kpgd
  6.     }
  7.     else{
  8.         driver_get_vcpureg(vmi, &cr3, CR3, 0);
  9.     }
  10.     if (!cr3){
  11.         dbprint("--early bail on v2p lookup because cr3 is zero\n");
  12.         return 0;
  13.     }
  14.     else{
  15.         return vmi_pagetable_lookup(vmi, cr3, virt_address);   //在這里面進(jìn)行頁表查找操作,此時(shí)的cr3為swapper_pg_dir的虛擬地址
  16.     }
  17. }
復(fù)制代碼

想問下大家,覺得最后那一步vmi_pagetable_lookup,它以此時(shí)cr3的值為頁全局目錄地址,能夠查找到對應(yīng)虛擬地址的物理地址嗎?

論壇徽章:
29
技術(shù)圖書徽章
日期:2013-09-02 19:59:502015元宵節(jié)徽章
日期:2015-03-06 15:51:332015小元宵徽章
日期:2015-03-06 15:57:20操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-08-16 06:20:002015七夕節(jié)徽章
日期:2015-08-21 11:06:17操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-21 06:20:002015亞冠之水原三星
日期:2015-10-30 00:06:07數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-24 06:20:0015-16賽季CBA聯(lián)賽之上海
日期:2016-01-07 10:32:07操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-08 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-05-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-07-23 06:20:00
2 [報(bào)告]
發(fā)表于 2013-09-27 20:29 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2013-09-29 16:21 |只看該作者
回復(fù) 2# Hongqiyaodao


    哈哈,如果這邊沒人回答就只能去那邊也問問,謝謝回復(fù)
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP