houdini 技術

houdini 是intel 研發的ARM binary translator。

它的原理在於把ARM的二進制代碼轉譯爲X86指令集,使得可以在X86的CPU上執行。

Intel是移動市場的新進者,最近出了幾款面向移動市場的SOC,面對應用程序支持缺乏的問題,有兩條路可以走:

1.逐家拜訪應用開發商,要求他們重新爲intel的cpu編譯一份應用。

2.使用二進制轉換,使得已有的應用可以運行在intel的cpu上。


該產品並不開源,可以在聯想的K900 ROM裏面可以找到二進制版本。一共有三個文件:libhoudini.so   libdvm_houdini.so  houdini_armlibs.tgz

原理是:當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文件)

類似概念的產品

下一個有可能出現類似產品的領域:

binary translator for windows RT  (至於原因。你懂的:))



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章