![]() ![]() Sizes, layouts, and alignments of basic data types that the processor can directly access.Processor instruction set, with details like register file structure, stack organization, memory access types, etc.The program will fail equally if it violates any constraints of these two.ĭetails covered by an ABI include the following: However, an application programmer may have to deal with an ABI directly when writing a program in a mix of programming languages, or even compiling a program written in the same language with different compilers.Īn ABI is as important as the underlying hardware architecture. Examples of this are the x86 calling conventions.Īdhering to an ABI (which may or may not be officially standardized) is usually the job of a compiler, operating system, or library author. A common aspect of an ABI is the calling convention, which determines how data is provided as input to, or read as output from, computational routines. In contrast, an API defines this access in source code, which is a relatively high-level, hardware-independent, often human-readable format. Often, one of these modules is a library or operating system facility, and the other is a program that is being run by a user.Īn ABI defines how data structures or computational routines are accessed in machine code, which is a low-level, hardware-dependent format. In computer software, an application binary interface ( ABI) is an interface between two binary program modules. Keeping this ABI stable over a long time is important for ISVs. After compilation, the binaries offer an ABI. Binary interface between two program unitsĪ high-level comparison of in-kernel and kernel-to-userspace APIs and ABIs The Linux kernel and GNU C Library define the Linux API. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |