< Previous | Next >
May 24, 2005 1:24 AM CDT by psilord in category Idiocy

The Road to Hell Is Paved with Good Intentions

Before we are sucked screaming into the cesspool of reality concerning the implementations of shared libraries, here is a good cross section of why shared libraries are very desirable and often implemented in a multi-tasking operating system:

  1. Allow shared code between process for smaller memory footprints of collections of programs in memory
  2. Increase performance of the paging system
  3. Allow the OS to upgrade system libraries (for bug fixes and improvements)
  4. Allow programs to have multiple implementations of an unchanging API alterable at runtime
  5. Allow a program to decide what functionality it should have loaded in memory at any given time because either it is not known until runtime what said functionality must be, or if all functionality is loaded simultaneously, it would be larger than the available physical ram.

So, with all of these benefits, why do I stare longingly at my recently emptied bottle of Mezcal and contemplate a career change whenever I think about this topic? Because I know the truth.

Linux is by far the worst when it comes to the implementation of shared libraries (especially for number 3), but there are a few trouble areas that seem endemic to the use of shared libraries that affect any program that uses them under many OSes. I suspect it is because most people who develop these systems simply say, "Damn, that looks hard, I'll finish it later", which obviously means never.

Simply thinking about the legion of problems I've found with shared libraries across different OSes invokes severe cataplexy. This leaves me unable to muster the energy it would take to write the encyclopedic volumes of animosity and pure contempt for the monumental idiocy that surrounds this topic. Instead, I will only speak of a few encounters with the most foul and ruinous aberrations.

Oops! The crisis prevention center just picked up my call. I gotta go.

End of Line.

< Previous | Next >