Object file
From Wikipedia, the free encyclopedia
In computer science, object code, or an object file, is the representation of code that a compiler or assembler generates by processing a source code file. Object files contain compact code, often called "binaries". A linker is typically used to generate an executable or library by linking object files together. The only essential element in an object file is machine code (code directly executed by a computer’s CPU). Object files for embedded systems might contain nothing but machine code. However, object files often also contain data for use by the code at runtime, relocation information, program symbols (names of variables and functions) for linking and/or debugging purposes, and other debugging information.
Contents[hide] |
[edit] Object file formats
An object file format is a computer file format used for the storage of object code and related data typically produced by a compiler or assembler.
There are many different object file formats; originally each type of computer had its own unique format, but with the advent of Unix and other portable operating systems, some formats, such as COFF and ELF, have been defined and used on different kinds of systems. It is common for the same file format to be used both as linker input and output, and thus as the library and executable file format[citation needed].
The design and/or choice of an object file format is a key part of overall system design. It affects the performance of the linker and thus programmer turnaround while developing. If the format is used for executables, the design also affects the time programs take to begin running, and thus the responsiveness for users. Most object file formats are structured as blocks of data, each block containing a certain type of data. These blocks can be paged in as needed by the virtual memory system, needing no further processing to be ready to use.
The simplest object file format is the DOS .COM format, which is simply a file of raw bytes that is always loaded at a fixed location. Other formats are an elaborate array of structures and substructures whose specification runs to many pages.
Debugging information may either be an integral part of the object file format, as in COFF, or a semi-independent format which may be used with several object formats, such as stabs or DWARF.
The GNU Project‘s BFD library provides a common API for the manipulation of object files in a variety of formats.
Types of data supported by typical object file formats:
- BSS (Block Started by Symbol)
- text segment
- data segment
[edit] Notable object file formats
- DOS
- .COM
- DOS executable (MZ)
- Relocatable Object Module Format (commonly known as "OBJ file" or "OMF"; also used in Microsoft Windows by some tool vendors)
- Unix
- Microsoft Windows
- 16-bit New Executable
- Portable Executable (PE)
- Others
- IBM 360 object format
- NLM
- OMF (VME)
- SOM (HP)
- XBE – Xbox executable
- APP – Symbian OS executable file format.
- RDOFF
- Hunk – AmigaOS
[edit] See also
[edit] References
- John R. Levine, Linkers and Loaders (Morgan Kaufmann Publishers, 2000)
转载请注明:在路上 » Object file