读书人

ABI是什么

发布时间: 2012-08-17 02:08:34 作者: rapoo

ABI是什么?

http://computer.yourdictionary.com/abi

?

(Application?Binary?Interface) A specification for a specific hardware platform combined with the operating system. It is one step beyond the application program interface (API), which defines the calls from the application to the operating system. The ABI defines the API plus the machine language for a particular CPU family. An API does not ensure runtime compatibility, but an ABI does, because it defines the machine language, or runtime, format.

?


ABI是什么

?


ABI,application binary interface,用程式和作系的"low-level interface"。意思是,ABI有一套,如果遵循生出的object,就能在相的系上正的作。包括了data type的size,alignment,calling convention,function回值,system call的用等。很明的,跟平台很有。比如,不管用哪一compiler,只要能生出符合ELF格式的binary,就可以在Linux上跑,或呼叫其library。


而EABI,embedded-application binary interface定了embedded software program的。跟一般的作系的主要差: 用程式可以使用privileged instruction,dynamic linking不是required,更的stack frame用以省下memory。


而arm 的EABI有些改,特是floating point的算。在的arm都有作FPA(Floating Point Accelerator),但如果compiler使用了FPU做floting的算,且CPU有FPU,就生exception。其panelty是指令software的floating算,然系也就慢了。所以支援EABI的kernelCross-compiler,加上支援有作FPA的arm,performance就好很多。


在lenny之後,就多了armel字,其以前的arm差就在於EABIinterface。如前述,interface硬(CPU)的是很有的,於arm不同的版本就生限制,因此EABI都常是建在armv4t以後的版本。


在lenny之後,就多了armel字,其以前的arm差就在於EABIinterface。如前述,interface硬(CPU)的是很有的,於arm不同的版本就生限制,因此EABI都常是建在armv4t以後的版本。

?

Why ARM's EABI matters

http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Why-ARMs-EABI-matters/

?

ABI wiki:

http://en.wikipedia.org/wiki/Application_binary_interface

?

?

读书人网 >移动开发

热点推荐