The inside story on shared libraries and dynamic loading

  • Authors:
  • David M. Beazley;Brian D. Ward;Ian R. Cooke

  • Affiliations:
  • -;-;-

  • Venue:
  • Computing in Science and Engineering
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

Traditionally, developers have built software as stand-aloneapplications written in a single language such as Fortran, C, orC++. However, many scientists are starting to build theirapplications as extensions to scripting language interpreters orcomponent frameworks. This often involves shared libraries anddynamically loadable modules. However, the inner workings of sharedlibraries and dynamic loading are some of the least understood andmost mysterious areas of software development. We tour the innerworkings of linkers, shared libraries, and dynamically loadableextension modules. Rather than simply providing a tutorial oncreating shared libraries on different platforms, we want toprovide an overview of how shared libraries work and how to usethem to build extensible systems. For illustration, we use a fewexamples in C/C++ using the gcc compiler on GNU-Linux-i386.However, the concepts generally apply to other programminglanguages and operating systems.