Linkers and Loaders

Front Cover
Morgan Kaufmann, 2000 - Computers - 256 pages
"I enjoyed reading this useful overview of the techniques and challenges of implementing linkers and loaders. While most of the examples are focused on three computer architectures that are widely used today, there are also many side comments about interesting and quirky computer architectures of the past. I can tell from these war stories that the author really has been there himself and survived to tell the tale." -Guy Steele

Whatever your programming language, whatever your platform, you probably tap into linker and loader functions all the time. But do you know how to use them to their greatest possible advantage? Only now, with the publication of Linkers & Loaders, is there an authoritative book devoted entirely to these deep-seated compile-time and run-time processes.
The book begins with a detailed and comparative account of linking and loading that illustrates the differences among various compilers and operating systems. On top of this foundation, the author presents clear practical advice to help you create faster, cleaner code. You'll learn to avoid the pitfalls associated with Windows DLLs, take advantage of the space-saving, performance-improving techniques supported by many modern linkers, make the best use of the UNIX ELF library scheme, and much more. If you're serious about programming, you'll devour this unique guide to one of the field's least understood topics. Linkers & Loaders is also an ideal supplementary text for compiler and operating systems courses.

Features:
* Includes a linker construction project written in Perl, with project files available for download.
* Covers dynamic linking in Windows, UNIX, Linux, BeOS, and other operating systems.
* Explains the Java linking model and how it figures in network applets and extensible Java code.
* Helps you write more elegant and effective code, and build applications that compile, load, and run more efficiently.
 

What people are saying - Write a review

We haven't found any reviews in the usual places.

Contents

LINKING AND LOADING
xv
I
3
II
8
III
10
IV
15
ARCHITECTURAL ISSUES
17
V
20
VI
21
XLI
148
XLII
149
XLIII
151
XLIV
157
XLV
158
XLVI
160
XLVII
161
XLVIII
162

VII
22
VIII
26
IX
32
X
39
XI
41
XII
43
OBJECT FILES
45
XIII
47
XIV
48
XV
54
XVI
56
XVII
60
XVIII
69
XIX
73
XX
82
XXI
88
STORAGE ALLOCATION
91
XXIV
92
XXV
94
XXVI
96
XXVII
105
XXVIII
106
XXIX
112
XXX
113
SYMBOL MANAGEMENT
115
XXXI
122
XXXII
127
XXXIII
130
XXXIV
131
LIBRARIES
133
XXXV
134
XXXVI
139
XXXVII
140
XXXVIII
142
XXXIX
143
XL
144
RELOCATION
147
LOADING AND OVERLAYS
165
XLIX
167
L
174
LI
175
LII
182
LIII
183
SHARED LIBRARIES
185
LIV
186
LV
188
LVI
190
LVII
195
LVIII
197
LIX
200
LX
201
DYNAMIC LINKING AND LOADING
203
LXI
204
LXII
208
LXIV
211
LXV
213
LXVI
214
LXVIII
215
LXX
220
LXXII
221
LXXIII
222
LXXV
224
ADVANCED TECHNIQUES
227
LXXVI
231
LXXVIII
233
LXXIX
235
LXXXI
236
LXXXII
239
LXXXIII
242
LXXXIV
243
REFERENCES
244
INDEX
247
Copyright

Other editions - View all

Common terms and phrases

About the author (2000)

John Levine is the author or co-author of many books, including lex & yac (O'Reilly), Programming for Graphics Files in C and C++ (Wiley), and The Internet for Dummies (IDG). He is also publisher emeritus of the Journal of C Language Translation, long-time moderator of the comp.compilers newsgroup, and the creator of one of the first commercial Fortran 77 compilers. He holds a Ph.D. in Computer Science from Yale University.