[plug] dlls and windows

The Thought Assassin assassin at live.wasp.net.au
Sun Apr 29 21:53:59 WST 2001


On Mon, 30 Apr 2001, Rob Dunne wrote:
> I asked what a dll was in a meeting the other day.
> The following email was later circulated -- sort of
> sorry I asked really.

At least the PLUG list is largely a conduit for accurate, useful
information. It seems Windows users don't enjoy the same benefits.

> > DLL:	Dynamic Link Library

This acronym is indeed correct. This is the highlight of the missive. :)

> > 	It's a Windows environment concept.

It's a theoretical OS concept far older than Windows but given other names
on other systems.

> > There are dynamic library on UNIX, but they are not as flexible

They are more flexible under Unix in so many ways I can't even begin...

> > and not as central to the OS as Windows's.

This can be read two ways. Certainly Unix/Linux was designed with
ground-up support for fully-featured dynamic libraries, while Windows has
support for a weaker model that has traditionally been poorly integrated
with the rest of its memory management. On the other hand, a dud dynamic
library cannot crash Unix, so one might argue that DLLS are more central
to Windows in the aspect.

> > In short:  it is not standardised between platforms.

If he is suggesting that it is not standardized between Unix and Windows,
then he is correct. There is no real hope of making the two different
models compatible.

If he means that DLLS under the various Windows platforms are
incompatible, then he is correct, although supposedly the problems are
less marked and better-defined these days.

If he means that there are no standards for dynamic libraries, then he is
mistaken. You've probably compiled libraries yourself that run equally
well under other versions of Unix.

> > Windows OS is in DLLs:  user32.dll, gdi32.dll, kernel32.dll, etc.  .

I think what the writer is trying to say is that there are parts of the
Windows kernel that should be in DLLs, and other places where DLLs are
relied on to perform tasks better performed by the kernel. This blurring
of the line between OS and DLL could be interpreted bluntly with the
statement "Windows OS is in DLLs", but only in the same way that one might
say "Windows OS is in userspace" due to the many layering violations
occurring there. (Not to mention the problems at the juncture of userspace
and DLL.)

On second thoughts, the writer appears just as confused as the designers
of Windows themselves. I can't tell what he meant.

> > The mouse drivers, the keyboard drivers, and so on are DLLs (even if they
> > have .drv extension). Font files (.fon) are special sorts of DLLs:
> > they contain no functionality but only resources.

The writer here gives an example of such layering violations.

> > This is why Windows system is easy to update:  you change the
> > updated DLLs, reboot and your system is updated.

I can't even begin to make sense of this statement, except perhaps that
the writer omitted the word "not" at a vital point in the sentence.

Firstly, updating DLLs under Windows is difficult because of
inflexible call semantics, lack of inter-process partitioning, weak,
unstandardized versioning, almost non-existent package-management, and
numerous other reasons.

Secondly, rebooting your system to change dynamic libraries is surely the
antithesis of "easy to update".

> > On Linux, you must recompile the OS to make changes on kernel
> > components.

No, you must only (re-)compile the module you wish to insert, if you do
not have a precompiled version. Funnily enough, someone had to compile the
windows kernel, too. Getting back to the topic of DLLs, you can change
them under Linux with an "apt-get install library-of-choice". No reboots,
no versioning mess, no conflicts.

I half suspect this article you have dug up as being deliberate Microsoft
"astroturf" - misinforming Windows users to keep them from learning enough
about their system to despair, while assuring them Linux is worse.
I'd be quite interested to know where you found it.

-Greg Mildenhall




More information about the plug mailing list