linkage table | A table containing the addresses of shared library routines and data. A process calls shared |
| library routines and accesses shared library data indirectly through the linkage table. |
load graph | A list of dependent shared libraries in the order in which the libraries are to be loaded by the |
| dynamic loader. Any executable program or shared library with dependencies has a load graph. |
local definition | A definition of a routine or data that is accessible only within the object file in which it is defined. |
lock file | A file used to ensure that only one process at a time can access data in a particular file. |
magic number | A number that identifies how an executable file should be loaded. Possible values are |
| SHARE_MAGIC, DEMAND_MAGIC, and EXEC_MAGIC. Refer to magic(4) for details. |
manpage | A page in the |
| the name of the page and section is the section in which the page can be found. For example, |
| open(2) refers to the open page in section 2 of the |
| to view manpages, for example, man open. |
mapfile | The file which describes the mapping of input sections to segments in an output file. |
millicode | |
nonfatal binding | Like immediate binding, nonfatal immediate binding causes all required symbols to be bound at |
| program startup. The main difference from immediate binding is that program execution continues |
| even if the dynamic loader cannot resolve symbols. |
object code | See relocatable object code. |
object file | A file containing machine language instructions and data in a form that the linker can use to |
| create an executable program. |
object module | A file containing machine language code and data in a form that the linker can use to create an |
| executable program or shared library. |
parent process | The process that spawned a particular process. See also process ID. |
PBO | See |
A form of | |
| counter register, or PC register. |
physical address | A reference to an exact physical memory location (as opposed to virtual memory location). |
PIC | See |
pipe | An input/output channel intended for use between two processes: One process writes into the |
| pipe, while the other reads. |
PLT | See procedure linkage table. |
| Object code that contains no absolute addresses. All addresses are specified relative to the |
| program counter or indirectly through the linkage table. |
| to create shared libraries. |
pragma | A C directive for controlling the compilation of source. |
procedure linkage | A linkage table that stores the addresses of procedures and functions. |
table |
|
process ID | An integer that uniquely identifies a process. Sometimes referred to as PID. |
A kind of optimization in which the compiler and linker work together to optimize an application | |
optimization | based on profile data obtained from running the application on a typical input data set. |
relocatable object | Machine code that is generated by compilers and assemblers. It is relocatable in the sense that |
code | it does not contain actual addresses; instead, it contains symbols corresponding to actual |
| addresses. The linker decides where to place these symbols in virtual memory, and changes the |
| symbols to absolute virtual addresses. |
relocation | The process of revising code and data addresses in relocatable object code. This occurs when |
| the linker must combine object files to create an executable program. It also occurs when the |
| dynamic loader loads a shared library into a process's address space. |
restricted binding | A type of binding in which the dynamic loader restricts its search for symbols to those that were |
| visible when a library was loaded. |
227