网站大量收购闲置独家精品文档,联系QQ:2885784924

xen架构与源码分析.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
xen架构与源码分析

xen异常处理 /xen/arch/x86/traps.c 初始化IDT hypercall 双重错误 NMI延迟 e.g. INT3 /xen/arch/x86/x86_32/entry.S TRAP_int3为中断向量 定义在/xen/include/asm-x86/processor.h L87-110 hanlde_exception 定义在/xen/arch/x86/x86_32/entry.S 保存寄存器-调用C语言处理函数-退出处理函数 e.g. INT3 /xen/arch/x86/x86_32/entry.S e.g. INT3 /xen/arch/x86/x86_32/entry.S do_int3由C语言实现 /xen/arch/x86/traps.c xen架构与源码分析 xen架构实现与源码分析 MMU CPU 物理中断 虚拟中断 异常处理 xen异常处理 Guest异常处理 IO VMX Guest异常处理 初始化VIDT Guest OS可直接使用xen的IDT表处理异常,也可以使用自己的VIDT自行处理异常 GuestOS启动时会将自己的异常表发送给xen,注册到VCPU相应的数据结构。 重要源码 /xen/include/public/arch-x86/xen.h: struct trap_info /linux*/arch/i386/kernel/traps.xen.c: trap_init()注册到xen /xen/arch/x86/traps.c: do_set_trap_table() 完成VCPU注册 Guest异常处理 处理流程 domain内部异常 xen捕获/识别 xen在Guest中创建异常栈框 交由Guest处理 /xen/arch/x86/traps.c 系统调用 快速异常处理程序 Fast Handler 重要源码 /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 系统调用 快速异常处理程序 Fast Handler /xen/arch/x86/x86_32/traps.c Void init_int80_direct_trap(struct vcpu *u) VCPU中int80_desc成员 当GuestOS中产生系统调用时,将会直接调用该描述符中记录的处理程序,而不需要由xen处理 /xen/include/asm-x86/domain.h xen架构与源码分析 xen源码概览 xen架构实现与源码分析 MMU CPU IO VMX Xen启动过程 关注点 xen校验domain0 MMU监控:进程页/段的完整性 CPU监控:Hypercall/system_call校验发起对象 IO监控:校验发起对象 IO设备虚拟化 /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.c IO环 事件通道 授权表 xenstore和xenbus 设备模型 仿真设备模型 Qemu 直接分配设备模型 IOMMU 虚拟设备模型 – 半虚拟化 修改guestOS,性能最好 前端后端设备驱动分离 页面共享 设备模型 仿真设备模型 Qemu 直接分配设备模型 IOMMU 虚拟设备模型 – 半虚拟化 修改guestOS,性能最好 前端后端设备驱动分离 页面共享 设备模型 虚拟设备模型 – 半虚拟化 设备IO环 生产者消费者通讯方式 事件通道 一位表示一个事件,虚拟的“硬件中断” 授权表 Domain之间共享内存,授权表记录权限 xenstore 树状数据库,存放虚拟机的配置数据。 xenbus 数据交换中心,为设备读写的前后端提供安全通道。 设备IO环 /xen/include/public/io/ring.h IO环定义文件

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档