版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
xen架構(gòu)與源碼分析xen架構(gòu)與源碼分析1xen架構(gòu)與源碼分析xen源碼概覽xen架構(gòu)實現(xiàn)與源碼分析Xen啟動過程關(guān)注點下周計劃xen架構(gòu)與源碼分析xen源碼概覽2xen架構(gòu)與源碼分析xen源碼概覽xen架構(gòu)實現(xiàn)與源碼分析Xen啟動過程關(guān)注點下周計劃xen架構(gòu)與源碼分析xen源碼概覽3Xen-3.4.0/buildconfigs/config/docs/extras/stubdom/tools/unmodified_drivers/xen/.bk-to-hg.hg_archival.txt.hgignore.hgtags.hg-to-bk.rootkeysConfig.mkCopyinginstall.shMakefileREADMEXen-3.4.0/buildconfigs/.bk-to-4xen源碼概覽buildconfigs/config/該文件夾下包含在多種操作系統(tǒng)下編譯xen的配置參數(shù)設(shè)置文件。docsLaTEK格式的Xen文檔以及man文檔xen源碼概覽buildconfigs/5xen源碼概覽extras/--mini-OS,內(nèi)含可運(yùn)行在XenDomainU的微操作系統(tǒng)stubdom/IOEMUStubDomU,PV-GRUBStubDomU,以及創(chuàng)建新的stubdomainU的示例代碼。tools/用于支持或增強(qiáng)xen監(jiān)控器的工具集合xen源碼概覽extras/--mini-OS,內(nèi)含可運(yùn)6xen源碼概覽unmodified_drivers/Linux2.6驅(qū)動程序xen/Xen監(jiān)控器內(nèi)核xen源碼概覽unmodified_drivers/7xen-3.4.0/xenarch/架構(gòu)相關(guān),函數(shù)實現(xiàn)common/公用crypto/加解密drivers/驅(qū)動include/頭文件目錄,函數(shù)定義tools/工具xsm/安全模塊COPYINGMakefileRules.mkmake配置規(guī)則xen-3.4.0/xenarch/架構(gòu)相關(guān),函數(shù)實現(xiàn)CO8xen架構(gòu)與源碼分析xen源碼概覽xen架構(gòu)實現(xiàn)與源碼分析MMUCPUIOVMXXen啟動過程關(guān)注點xen架構(gòu)與源碼分析xen源碼概覽9xen--XenandtheArtofVirtualizationRevisited,IanPratt,CitrixSystemsIncxen--XenandtheArtofVirtua10Xen源碼分析虛擬化四個核心技術(shù)MMU虛擬化CPU虛擬化事件通道IO虛擬化硬件支持VMX技術(shù)Xen源碼分析虛擬化四個核心技術(shù)11xen架構(gòu)與源碼分析xen源碼概覽xen架構(gòu)實現(xiàn)與源碼分析MMUxen內(nèi)存管理Guest內(nèi)存管理CPUIOVMXXen啟動過程關(guān)注點xen架構(gòu)與源碼分析xen源碼概覽12MMU/xen/include/asm-x86/config.h/xen/include/mm.h/xen/arch/x86/mm.c/xen/include/asm-x86/p2m.h/xen/include/public/memory.h/xen/common/memory.c/xen/include/public/xen.hXen-guest內(nèi)存分配/隔離分頁機(jī)制,分段機(jī)制地址轉(zhuǎn)換MMU/xen/include/asm-x86/config13e.g.xen內(nèi)存/xen/include/asm-x86/config.h最高168M給xen專用e.g.xen內(nèi)存/xen/include/asm-x8614e.g.Guest內(nèi)存/xen/include/asm-x86/p2m.h偽物理內(nèi)存模型e.g.Guest內(nèi)存/xen/include/asm-x15xen架構(gòu)與源碼分析xen源碼概覽xen架構(gòu)實現(xiàn)與源碼分析MMUCPUIOVMXXen啟動過程關(guān)注點xen架構(gòu)與源碼分析xen源碼概覽16CPU/xen/arch/x86/irq.c/xen/include/xen/irq.h/linux*/include/linux/Interrupt.h/xen/arch/x86/trap.c/xen/include/asm-x86/processor.h/xen/include/asm-x86/desc.h/xen/include/xen/sched.h/xen/include/xen/timer.h/xen/common/timer.c/xen/arch/x86/time.c/xen/include/public/xen.h/linux*/arch/i386/kernel/time-xen.c/xen/include/public/vcpu.h/xen/include/asm-x86/domain.h/xen/include/public/arch-x86/xen.h/xen/arch/x86/setup.c/xen/common/domain.c/xen/common/schedule.c/xen/include/xen/sched-if.h中斷/異常處理時間/計時器VCPU及其調(diào)度CPU/xen/arch/x86/irq.c中斷/異常處理17xen架構(gòu)與源碼分析xen架構(gòu)實現(xiàn)與源碼分析MMUCPU物理中斷虛擬中斷異常處理xen異常處理Guest異常處理IOVMXxen架構(gòu)與源碼分析xen架構(gòu)實現(xiàn)與源碼分析18xen架構(gòu)與源碼分析xen架構(gòu)實現(xiàn)與源碼分析MMUCPU物理中斷虛擬中斷異常處理xen異常處理Guest異常處理IOVMXxen架構(gòu)與源碼分析xen架構(gòu)實現(xiàn)與源碼分析19物理中斷處理/xen/arch/x86/irq.cXen自行處理兩個中斷:--串口中斷+計時器中斷Guest處理中斷--利用異步通信機(jī)制xen->guest--通知所有注冊該中斷的GuestOS物理中斷處理/xen/arch/x86/irq.cXen自行20物理中斷向量表/xen/arch/x86/trap.c定義IDT/xen/include/asm-x86/processor.h/xen/include/asm-x86/desc.h物理中斷向量表/xen/arch/x86/trap.c定義21IDT初始化/xen/arch/x86/boot/x86_32.S第一次初始化/xen/arch/x86/i8259.c第二次初始化IDT初始化/xen/arch/x86/boot/x86_322xen架構(gòu)與源碼分析xen架構(gòu)實現(xiàn)與源碼分析MMUCPU物理中斷虛擬中斷異常處理xen異常處理Guest異常處理IOVMXxen架構(gòu)與源碼分析xen架構(gòu)實現(xiàn)與源碼分析23虛擬中斷/xen/include/public/xen.hVIRQ定義虛擬中斷,8種(3個局部vcpu,5個全局中斷)虛擬中斷/xen/include/public/xen.h24虛擬中斷/linux-*/drivers/xen/core/evtchn.cL101IRQ<->VIRQ映射/xen/common/event_channel.cXen發(fā)送中斷通知虛擬中斷/linux-*/drivers/xen/core/25xen架構(gòu)與源碼分析xen架構(gòu)實現(xiàn)與源碼分析MMUCPU物理中斷虛擬中斷異常處理xen異常處理Guest異常處理IOVMXxen架構(gòu)與源碼分析xen架構(gòu)實現(xiàn)與源碼分析26異常處理—xenxen內(nèi)核異常處理IDT中0-31的中斷向量+hypercall(0x82)重要源文件/xen/arch/x86/traps.c/xen/arch/x86/x86_32/entry.S/xen/include/asm-x86/processor.h異常處理—xenxen內(nèi)核異常處理27異常處理—GuestGuest內(nèi)核異常處理VIDT,GuestOS自行處理異常一旦domain不運(yùn)行,對應(yīng)VIDT被刪除重要源文件/xen/include/public/arch-x86/xen.h/linux-*/arch/i386/kernel/traps-xen.c/xen/arch/x86/traps.c/xen/include/asm-x86/domain.h/xen/arch/x86/x86_32/entry.S異常處理—GuestGuest內(nèi)核異常處理28xen異常處理/xen/arch/x86/traps.c將處理程序插入IDT表項xen異常處理/xen/arch/x86/traps.c29xen異常處理/xen/arch/x86/traps.cxen異常處理/xen/arch/x86/traps.c30xen異常處理/xen/arch/x86/traps.c初始化IDThypercall雙重錯誤NMI延遲xen異常處理/xen/arch/x86/traps.c初31xen異常處理/xen/arch/x86/traps.c初始化IDThypercall雙重錯誤NMI延遲xen異常處理/xen/arch/x86/traps.c初32e.g.INT3/xen/arch/x86/x86_32/entry.STRAP_int3為中斷向量定義在/xen/include/asm-x86/processor.hL87-110hanlde_exception定義在/xen/arch/x86/x86_32/entry.S保存寄存器->調(diào)用C語言處理函數(shù)->退出處理函數(shù)e.g.INT3/xen/arch/x86/x86_32/33e.g.INT3/xen/arch/x86/x86_32/entry.Se.g.INT3/xen/arch/x86/x86_32/34e.g.INT3/xen/arch/x86/x86_32/entry.Sdo_int3由C語言實現(xiàn)/xen/arch/x86/traps.ce.g.INT3/xen/arch/x86/x86_32/35xen架構(gòu)與源碼分析xen架構(gòu)實現(xiàn)與源碼分析MMUCPU物理中斷虛擬中斷異常處理xen異常處理Guest異常處理IOVMXxen架構(gòu)與源碼分析xen架構(gòu)實現(xiàn)與源碼分析36Guest異常處理初始化VIDTGuestOS可直接使用xen的IDT表處理異常,也可以使用自己的VIDT自行處理異常GuestOS啟動時會將自己的異常表發(fā)送給xen,注冊到VCPU相應(yīng)的數(shù)據(jù)結(jié)構(gòu)。重要源碼/xen/include/public/arch-x86/xen.h:structtrap_info/linux*/arch/i386/kernel/traps.xen.c:trap_init()注冊到xen/xen/arch/x86/traps.c:do_set_trap_table()完成VCPU注冊Guest異常處理初始化VIDT37Guest異常處理處理流程domain內(nèi)部異常>xen捕獲/識別>xen在Guest中創(chuàng)建異常棧框>交由Guest處理/xen/arch/x86/traps.cGuest異常處理處理流程38系統(tǒng)調(diào)用快速異常處理程序FastHandler重要源碼/xen/include/public/arch-x86/xen.h/linux-*/arch/i386/kernel/traps-xen.c/xen/arch/x86/traps.c/xen/include/asm-x86/domain.h/xen/arch/x86/x86_32/entry.S系統(tǒng)調(diào)用快速異常處理程序FastHandler39系統(tǒng)調(diào)用快速異常處理程序FastHandler/xen/arch/x86/x86_32/traps.cVoidinit_int80_direct_trap(structvcpu*u)VCPU中int80_desc成員當(dāng)GuestOS中產(chǎn)生系統(tǒng)調(diào)用時,將會直接調(diào)用該描述符中記錄的處理程序,而不需要由xen處理/xen/include/asm-x86/domain.h系統(tǒng)調(diào)用快速異常處理程序FastHandler40xen架構(gòu)與源碼分析xen源碼概覽xen架構(gòu)實現(xiàn)與源碼分析MMUCPUIOVMXXen啟動過程關(guān)注點xen校驗domain0MMU監(jiān)控:進(jìn)程頁/段的完整性CPU監(jiān)控:Hypercall/system_call校驗發(fā)起對象IO監(jiān)控:校驗發(fā)起對象xen架構(gòu)與源碼分析xen源碼概覽41IO設(shè)備虛擬化/xen/include/public/io/ring.h/xen/include/public/io/blkif.h/linux*/drivers/xen/blkfront/blkfront.c/xen/include/public/io/netif.h/xen/include/public/io/xs_wire.h/linux*/drivers/xen/xenbus/xenbus_xs.c/xen/include/public/io/xenbus.h/linux*/drivers/xen/xenbus/xenbus_probe.c/linux*/drivers/xen/blkback/xenbus.cIO環(huán)事件通道授權(quán)表xenstore和xenbusIO設(shè)備虛擬化/xen/include/public/io/42設(shè)備模型仿真設(shè)備模型Qemu直接分配設(shè)備模型IOMMU虛擬設(shè)備模型–半虛擬化修改guestOS,性能最好前端后端設(shè)備驅(qū)動分離頁面共享設(shè)備模型仿真設(shè)備模型43設(shè)備模型仿真設(shè)備模型Qemu直接分配設(shè)備模型IOMMU虛擬設(shè)備模型–半虛擬化修改guestOS,性能最好前端后端設(shè)備驅(qū)動分離頁面共享設(shè)備模型仿真設(shè)備模型44設(shè)備模型虛擬設(shè)備模型–半虛擬化設(shè)備IO環(huán)生產(chǎn)者消費者通訊方式事件通道一位表示一個事件,虛擬的“硬件中斷”授權(quán)表Domain之間共享內(nèi)存,授權(quán)表記錄權(quán)限xenstore樹狀數(shù)據(jù)庫,存放虛擬機(jī)的配置數(shù)據(jù)。xenbus數(shù)據(jù)交換中心,為設(shè)備讀寫的前后端提供安全通道。設(shè)備模型虛擬設(shè)備模型–半虛擬化45設(shè)備IO環(huán)/xen/include/public/io/ring.hIO環(huán)定義文件/xen/include/public/io/blkif.h塊設(shè)備IO接口/linux*/drivers/xen/blkfront/blkfront.c塊設(shè)備前端/xen/include/public/io/netif.h網(wǎng)絡(luò)設(shè)備IO接口設(shè)備IO環(huán)/xen/include/public/io/ri46xenstore&xenbusxenstore/xen/include/public/io/xs_wire.h/linux*/drivers/xen/xenbus/xenbus_xs.cxenbus/xen/include/public/io/xenbus.h/linux*/drivers/xen/xenbus/xenbus_probe.c/linux*/drivers/xen/blkback/xenbus.cxenstore&xenbusxenstore47xen架構(gòu)與源碼分析xen源碼概覽xen架構(gòu)實現(xiàn)與源碼分析MMUCPUIOVMXXen啟動過程關(guān)注點xen校驗domain0MMU監(jiān)控:進(jìn)程頁/段的完整性CPU監(jiān)控:Hypercall/system_call校驗發(fā)起對象IO監(jiān)控:校驗發(fā)起對象xen架構(gòu)與源碼分析xen源碼概覽48VMX技術(shù)/xen/include/asm-x86/hvm/*VMCS初始化陷入事件處理程序VMX技術(shù)/xen/include/asm-x86/hvm/49VMCS的設(shè)置VMCS定義/創(chuàng)建/設(shè)置/xen/include/asm-x86/hvm/vmx/vmcs.hVMCS的設(shè)置VMCS定義/創(chuàng)建/設(shè)置50xen架構(gòu)與源碼分析xen源碼概覽xen架構(gòu)實
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度二手車買賣合同范本含車輛維修保養(yǎng)協(xié)議3篇
- 轉(zhuǎn)向拉桿課程設(shè)計
- 二零二五年度信息安全咨詢服務(wù)保密協(xié)議范本2篇
- 二零二五年度無人機(jī)采購安裝與培訓(xùn)合同3篇
- 二零二五年度工程車租賃及運(yùn)輸服務(wù)合同3篇
- 二零二五年度合伙人聯(lián)合市場推廣協(xié)議
- 電力二次系統(tǒng)安全防護(hù)處置方案例文(2篇)
- 2025年小學(xué)二年級數(shù)學(xué)上冊教學(xué)工作總結(jié)(3篇)
- 2025年六年級上學(xué)期語文教師工作總結(jié)范文(2篇)
- 2025年畢業(yè)典禮教師演講稿范文(2篇)
- (42)-妊娠合并內(nèi)外科疾病
- 骨科手術(shù)后患者營養(yǎng)情況及營養(yǎng)不良的原因分析,骨傷科論文
- 糕點生產(chǎn)檢驗記錄表
- GB/T 1040.3-2006塑料拉伸性能的測定第3部分:薄膜和薄片的試驗條件
- 河北省房屋建筑和市政基礎(chǔ)設(shè)施施工圖設(shè)計文件審查要點(版)
- 醫(yī)院院長年終工作總結(jié)報告精編ppt
- 綠化養(yǎng)護(hù)重點難點分析及解決措施
- “三排查三清零”回頭看問題整改臺賬
- 造價咨詢結(jié)算審核服務(wù)方案
- 中國人民財產(chǎn)保險股份有限公司機(jī)動車綜合商業(yè)保險條款
- 八年級物理上冊計算題精選(50道)
評論
0/150
提交評論