虚拟化/编译
文章平均质量分 64
weiffun
这个作者很懒,什么都没留下…
展开
-
虚拟化概述——研读历程
虚拟化的技术,现在可以说炙手可热。VMware,微软,Citrix等都投入相当多的人力物力在这方面。为了赶赶潮流,咱现在也正从事体系结构虚拟化方面的研究,其实这里面也包含了我的很多无奈——“老板”分配的方向!对计算虚拟化,我现在还是入门级别,大部分这方面的概念都是基于《Virtual Machines:Versatile Platforms for Systems and Processes》这本原创 2008-09-15 18:22:00 · 629 阅读 · 0 评论 -
手动编译运行speccpu2000中的benchmarks
目前需要测试模拟器的性能,而又只能获得speccpu2000中benchmarks的源码。别无选择,只有自己手动编译,原以为写个简单的makefile和一个运行自动编译的shell脚本,能很快解决问题!真正实现的时候,才发现存在很多移植和编译选项设置问题(当然这些在benchmark的docs目录下有部分说明,你可以去查看)。开始之前确保你的系统有: 一份speccpu2000的b原创 2009-01-16 13:54:00 · 1367 阅读 · 0 评论 -
DynamoRIO开源了
DynamoRIO是一个运行时代码修改工具,提供了一套API供用户定制自己的程序分析、profile以及动态插装工具。主页地址http://code.google.com/p/dynamorio/主要著者的博客http://www.govirtual.org/blogs/derek/原创 2009-06-30 20:52:00 · 3397 阅读 · 1 评论 -
利用Pin分析程序的动态行为特征
在程序设计和优化过程中,我们通常希望能有工具帮助我们分析热点代码、覆盖率、内存泄露等这些特性,对多线程程序还希望能分析并发性、竞争和死锁等等。但这些特征通常在静态编译时很难获取,而且往往只能在运行时才能确定。Pin是intel开发的动态插桩工具,它提供一套API让我们开发和定制自己的性能分析工具,此外它还被广泛用在体系结构研究、安全等领域。目前intel parallel studio的很多特性便原创 2009-06-29 20:12:00 · 4089 阅读 · 2 评论 -
Hack HDTrans(一):启动过程
“控制复杂性是计算机编程的本质。” ——Brian Kernighan HDTrans是一个轻量级的IA32到IA32动态翻译系统,它的初衷是设计成内核级的翻译器和设备驱动沙箱(sandbox),力求简洁和易修改。当Brian Kernighan首创的“hello, world”程序遇到动态翻译器会发生什么呢?$HDTrans ./hello$hello, world原创 2009-09-07 23:50:00 · 630 阅读 · 0 评论 -
HDtrans的翻译机制
和所有翻译器类似Guset程序按基本块翻译后存放在code cache中,cache中的代码被真正执行。为了保持简单的设计原则,HDtrans没有采用寄存器生存期分析等复杂优化技术,仅仅使用了trace linearization和sieve技术,优化trace生成和间接指令的翻译。 直接跳转最大限度的利用已翻译的基本块。如果跳转的目标块已经存在,直接跳转到已翻译块。如果目标地址所在块未翻原创 2009-10-10 14:35:00 · 554 阅读 · 0 评论 -
基于探针的动态插桩
由于基于探针的动态插桩,通常只能在函数边界插入代码,难以对程序的指令流进行很好的分析,所以平时用的比较少。以前使用微软研究院的detour的API觉得它很神奇,最近看了下它的原理还是很简单:基于简单动态重写函数的开始几个字节,然后跳转到特定函数。呵呵,但是要做好还是不容易的。闲来无事写了一个很粗糙的实现。基本原理就是:(1)保存函数的入口的几个字节,并插入一天跳回函数的jmp指令(这一块代码称为trampaline)。这里的前几个字节不是个定数是有原因的,实际上我们只需要前5字节来保存一条JMP指令,但入口原创 2010-07-25 17:13:00 · 2385 阅读 · 0 评论