Re: NT DDK vs. Linux DDI, a practical comparison [long]

Gordon Chaffee (chaffee@cs.berkeley.edu)
Sun, 20 Sep 1998 12:57:56 -0700 (PDT)


Stephen Williams writes:
> chaffee@cs.berkeley.edu said:
> > Not quite true. You can create modules that reference other modules.
>
> You can stack modules a la streams. The IRP for a request is then passed
> through the stack of devices, just like streams. However, the NT kernel
> does not automatically notice that module X is needed, and there is no
> kerneld to bring it in. Nor do they get cleaned up when the references
> are dropped.
>
> Under Linux, modules can export symbols, and with a little help from depmod
> you can have the kernel linking modules on demand, and unlinking when it
> is done. This is just too darn slick.

Under NT, you can have a module export a symbol that another module
then links with. This isn't module stacking that I'm referring to.
You just need to set TARGETTYPE=EXPORT_DRIVER in the sources file
for the module (assuming you are building with the build utility).

When kerneld showed up in Linux, I was blown away by how much lighter
weight it was than the similar NT mechanism. In NT, everything that
needs to get started or loaded gets listed in the registry. In Linux,
we just let modprobe take care of figuring out what needs to get loaded
with a hint from the code that requested it. As it turns out, kerneld
wasn't even necessary to do this. The NT way works, but then dealing
with the registry from kernel space I've always found to be a pain in
the ass.

- Gordon

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/