Subject: Re: LKMs - different each time it's compiled into kernel ?
To: Jaromir Dolecek <dolecek@ics.muni.cz>
From: Michael VanLoon <mvanloon@MindBender.serv.net>
List: current-users
Date: 12/01/1998 22:53:59
-----Original Message-----
From: cgd@netbsd.org <cgd@netbsd.org>
Date: Sunday, November 29, 1998 12:03 PM


>Jaromir Dolecek <dolecek@ics.muni.cz> writes:
>> Would it be somwhow possible to upload "raw" code into kernel and
>> let kernel relink it so it would work ?


>That's a fairly deirable solution (at least in my eyes), but it's not
>currently possible.
>the kernel should know about the symbols that the LKM API allows LKMs
>to use, and should be capable of linking 'raw' LKMs loaded into the
>kernel.  this solves the 'how do i find my kernel/symbols' problem,
>forces an LKM API to actually be created, etc.


Excuse the thought from the Land of the Enemy, but it would seem simple
if you just did something like COM does: make a GUID (Globally Unique
ID -- a 128-bit "hash" generated by an Ethernet address, something to do
with the current time, and some monotonically increasing value, I
believe) that is assigned to that module when it is created, and don't
change it for the life of the module.  It's faster because you're not
hashing this binary every time you try to load it, and it doesn't
change.

Of course, this implies some place to store the GUIDs, like a
"registry", but that's a different subject...

I believe the Microsoft GUID generation algorithm has been proposed for
a public Internet standard.  And, I'm totally non-authoritative, but I
believe it was even originally based on a proposal from someone outside
Microsoft (from HP?).