houdini 技术

houdini 是intel 研发的ARM binary translator。html

它的原理在于把ARM的二进制代码转译为X86指令集,使得能够在X86的CPU上执行。linux

Intel是移动市场的新进者,最近出了几款面向移动市场的SOC,面对应用程序支持缺少的问题,有两条路能够走:windows

1.逐家拜访应用开发商,要求他们从新为intel的cpu编译一份应用。服务器

2.使用二进制转换,使得已有的应用能够运行在intel的cpu上。spa


该产品并不开源,能够在联想的K900 ROM里面能够找到二进制版本。一共有三个文件:libhoudini.so   libdvm_houdini.so  houdini_armlibs.tgz.net

原理是:当Dalvik VM加载lib失败时,程序流会再次尝试用libhoudini中的my_dlopen打开。该lib相似于QEMU的user mode emulator,经过虚拟一个ARM的CPU (包含指令集和寄存器,可是没有外设模拟),加载基于ARM指令集的lib。目前还不清楚是基于解析执行,仍是JIT方式实现。翻译


采用相似技术的产品有valgrind(模拟X86 CPU来检测程序内存泄露),qemu user mode(能够在X86 linux下执行mips的elf文件)orm

相似概念的产品server

下一个有可能出现相似产品的领域:

binary translator for windows RT  (至于缘由。你懂的:)) 转自(http://blog.csdn.net/lurker0ster/article/details/8957273)