“Wine recently had lots of new features in the way it handles
dynamic linking. Before diving into the details, let’s have a quick
reminder of Windows and Unix implementation of dynamic linking
(DL).”
“Dynamic linking allows to seperate executable code between
several modules (each stored in a different file), but loaded in
memory to create a process image….”
“Windows usually stores DLL into files with .DLL extensions
(some other extensions are used in some cases (like .DRV, .ACM…),
but this is out of the scope of this article).”
“Lots of Unices also implement DL features; a DL library is
stored into a .so file. Basically, the same type of information as
the one for Windows is also needed (code of the library, imported
and exported functions, init (resp. fini) functions called when .so
file is loaded (unloaded). Of course, the embedding of resources is
not included in the .so format. Binary formats of .DLL and .so
files are different.”