Glossary

absolute object

Machine code that contains absolute virtual addresses. Created by the linker when it combines

code

relocatable object files.

archive library

A library, created by the ar command, which contains one or more object modules. By convention,

 

archive library file names end with .a. Compare with shared library.

attaching a shared

The process the dynamic loader goes through of mapping the shared library code and data into

library

a process's address space, relocating any pointers in the shared library data that depend on

 

actual virtual addresses, allocating the bss segment, and binding routines and data in the shared

 

library to the program.

basic block

A contiguous section of assembly code, produced by compilation, that has no branches in except

 

at the top, and no branches out except at the bottom.

binding

The process the dynamic loader goes through of filling in a process's procedure linkage tables

 

and data linkage tables with the addresses of shared library routines and data. When a symbol

 

is bound, it is accessible to the program.

breadth-first

The dependent library search algorithm used when linking and loading 64-bit applications./.

search order

 

bss segment

A segment of memory in which uninitialized data is stored. Compare with text segment and data

 

segment. For details, refer a.out(4).

buffer

A temporary holding area for data. Buffers are used to perform input and output more efficiently.

child

A process that is spawned by a process (a sub-process).

code generation

A phase of compilation in which object code is created.

compilation phase

A particular step performed during compilation - for example, pre-processing, lexical analysis,

 

parsing, code generation, linking.

complete

An executable (a.out) file that does not use shared libraries. It is complete because all of its library

executable

code is contained within it. Compare with incomplete executable.

crt0.o file

See startup file.

data export

An initialized global variable that may be referenced outside of the library.

symbol

 

data linkage table

A linkage table that stores the addresses of data items.

data segment

A segment of memory containing a program's initialized data. Compare with bss segment and

 

text segment. For details, refer a.out(4).

deferred binding

The process of waiting to bind a procedure until a program references it. Deferred binding can

 

save program startup time. Compare with immediate binding.

demand-loadable

When a process is "demand-loadable," its pages are brought into physical memory only when

 

they are accessed.

dependency

Occurs when a shared library depends on other libraries - that is, when the shared library was

 

built (with ld -b), other libraries were specified on the command line. See also dependent library.

dependent library

A library that was specified on the command line when building a shared library (with ld -b).

 

See dependency.

depth-first search

The dependent library search algorithm used when linking and loading in 32-bit mode. Searching

order

a list starting at the end of the list and moving toward the head. Shared library initialization

 

routines are invoked by traversing the list of loaded shared libraries depth-first.

dll

See dynamic loading library.

DLT

See data linkage table.

driver

A program that calls other programs.

dynamic linking

The process of linking an object module with a running program and loading the module into

 

the program's address space.

dynamic loader

Code that attaches a shared library to a program. See dld.sl(5).

225