
On 18/05/18 11:32 PM, D. Hugh Redelmeier via talk wrote:
| From: Russell via talk <talk@gtalug.org>
| On May 17, 2018 8:46:25 AM EDT, "D. Hugh Redelmeier via talk" <talk@gtalug.org> wrote:
| I remember from the Dynamic Linking talk that some wags would say, all | high sierra like; "your talking about dlls, thats M$ cruft. This is | Linux, we don't need no stinkin dlls."
UNIX has had them since before Windows. Just look at all the .so files.
What UNIX does differently is the idea of major and minor versions: $MAJOR.$MINOR. A program specifies the Major version it requires and the system provides the highest minor version available for that major version. Interfaces can change only when major versions are changed.
The Windows implementation did not have any such provision so substitutions often went wrong. Various creative failure modes ensued, but I won't bore you with the details. It's notable that Linux numbers the interface, not the library. This came from Multics, and was heavily used by Solaris and the glibc developers to avoid an NP_complete problem of "how do I have two versions of something at the same time?" More details that you ever wanted in https://leaflessca.wordpress.com/2017/02/12/dll-hell-and-avoiding-an-np-comp...
--dave -- David Collier-Brown, | Always do right. This will gratify System Programmer and Author | some people and astonish the rest davecb@spamcop.net | -- Mark Twain