This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Dynamic Linking of Software Components
March 1997 (vol. 30 no. 3)
pp. 74-81

The concepts underlying dynamic linking reached maturity through modular operating systems and are being reintroduced in some of the most popular workstation and PC operating systems. The original idea behind dynamic linking was to factor out common functions so that they could be shared among several applications. As straightforward as dynamic linking may seem, it can nevertheless be implemented through a surprising variety of strategies.

This article contrasts three simple dynamic linking schemes with two much more elaborate strategies. As general-purpose operating systems move to embrace dynamic linking, the technologies chosen for linking components will play a pivotal role in the systems' long-term commercial success.

The three "lightweight" approaches to dynamic linking-runtime table lookup, load-time code modification, and runtime code modification-vary in the way they employ these tables and handle calls. The two new techniques, although more complex, promise to facilitate cross-platform portability. The first, load-time code generation, capitalizes on the insight that raw processor power is growing much more rapidly than the speed of I/O operations. The second, load-time compliation, uses a highly compact intermediate program representation ("slim binaries") instead of native object files. This speeds up the I/O component of loading dramatically, but it has several drawbacks that make it less attractive than load-time code generation.

Citation:
Michael Franz, "Dynamic Linking of Software Components," Computer, vol. 30, no. 3, pp. 74-81, March 1997, doi:10.1109/2.573670
Usage of this product signifies your acceptance of the Terms of Use.