共 11 篇文章
显示摘要每页显示  条
虚拟化相关概念与技术整理(1)优先级压缩: 简单来说就是让guest OS跑在较VMM的ring 0 低的优先级ring 1 上,当需要执行特权指令时就触发异常,被VMM截获。2)半虚拟化:在源码级别修改指令以回避虚拟化漏洞,简单来说,就是运行在虚拟化平台上的OS是被动过手脚的。按照VMM的实现架构分类,可以分为Hypervisor模型、宿主模型和混合模型。CPU和...
前言:本文主要概括了QEMU的代码结构,特别从代码翻译的角度分析了QEMU是如何将客户机代码翻译成TCG代码和主机代码并且最终执行的过程。QEMU模拟的架构叫目标架构,运行 QEMU的系统架构叫主机架构,QEMU中有一个模块叫做微型代码生成器(TCG),它用来将目标代码翻译成主机代码。pc_init1->pc_cpus_init->pc_new_cpu->cpu_x86_init-&g...
guest binary instructions -> TCG IR -> host binary instructions TCG 定义了一组IR(intermediate representation),这些IR大致可以分为以下几类:TCG 动态翻译过程前面也提到TCG主要实现以下翻译过程:guest binary instructions -> TCG IR -> host binary instructions在qemu源码中,target-ARCH/* 定义了如何将guest binary in...
由于刚刚接触qemu,所以前面几篇文章仅仅是肤浅的介绍qemu的一些背景知识,今天突然感觉前面说的太没有条理了,而且大部分是读别人的文章,一知半解,没有自己的总结体会,今天感觉稍微有点心得,敬请指教。在qemu-0.9之前的版本都采用dyngen的动态翻译技术,而从qemu-0.10开始的版本开始采用TCG(Tiny Code Generator)的翻译技术。图1简单说...
gen_opc_buf: 操作码缓冲区gen_opparam_buf:参数缓冲区gen_code_buf: 存放翻译后指令的缓冲区gen_opc_ptr、gen_opparam_ptr、gen_code_ptr三个指针变量分别指向上述缓冲区。// cpu_T[0] = cpu_T[0]&0xfffftcg_gen_st32_tl(cpu_T[0], cpu_env, offsetof(CPUX86State,segs[seg_reg].selector));// cpu_T[0] = cpu_T[0]<<4tcg_gen_st...
qemu源码分析系列(二)转:http://www.cnitblog.com/yuhensong/archive/2014/09/11/89748.html在qemu源码分析系列(一)简单介绍了下qemu相关的背景知识,本文将详细分析qemu的核心 -- 动态翻译器。除了MMU操作指令,一些特殊的客户机指令也是非常复杂的,如CPUID指令,即使在简化的qemu的实现中,一条x86的CPUID指令都需要75行C代码来实现。
QEMU源码分析系列(一)在这种模式下,qemu完整的仿真目标平台,此时,qemu就相当于一台完整的pc机,例如包括一个或多个处理器以及各种外围设备。帧缓冲区通过用户可选择的接口被暴露出来,对于qemu来说,帧缓冲有SDL window,VNC Server和无图形界面的输出三个可供选择的选项qemu中的网络可以是被禁止的,可以是被桥接到主机的,可以使用虚拟以...
真实网络接口名称:eth0KVM的安装方法我就不写了,网上有一大堆,注意,KVM有两个部分,一个部分是内核部分,这在9.04中是自带的,您要安装的KVM是管理部分(我也不知道这样理解是否正确,总之,你要安装KVM及QEMU)不安装QEMU也可以用,因为KVM带一个修改版本的QEMU成功的关键是配置网络及路由(这个在网上流传的版本中没有提到)请生成一个文...
帮助 | 留言交流 | 联系我们 | 服务条款 | 下载网文摘手 | 下载手机客户端
北京六智信息技术股份有限公司 Copyright© 2005-2024 360doc.com , All Rights Reserved
京ICP证090625号 京ICP备05038915号 京网文[2016]6433-853号 京公网安备11010502030377号
返回
顶部