"I recently compared Microsoft's proposed solution to
DLL hell with the way Unix developers avoid ".so" hell [Technology,
Nov. 12 ]. The term .so stands for shared objects, which are more
commonly known as shared libraries. They are basically the Unix
equivalent of Dynamic Link Libraries (DLL).
Microsoft is proposing a complicated procedure that would
require developers to embed version numbers within header files, as
well as create many new registry entries in some cases and replace
registry entries with XML files in others. The solution on Unix is
to simply rename the library file.
Admittedly, my explanation of the Unix approach was a bit of an
oversimplification. So allow me to elaborate by describing how
shared libraries are handled on Linux, which is a Unix clone.
Consider yourself warned, however, that what I'm about to describe
isn't the official policy on how to manage .so versions in Unix or
Linux. This is simply my observation of how Linux library
maintainers generally work. There's probably an official policy
guide on .so versioning, but more likely than not, it simply
describes what Unix programmers already do, which is whatever makes
sense at the time."