Subject: How do shared libs and kernel modules work?
To: None <tech-kern@NetBSD.ORG>
From: Travis Hassloch x231 <>
List: tech-kern
Date: 06/20/1996 13:20:32
Can anyone explain this at a high level?
Please ignore any questions answered by 4.4BSD book
(it isn't in front of me)

For example:
How are shared libs mapped into user processes?  Via mmap?
Are there code stubs to implement this, or are they implemented without
stubs?  Is the memory area used by the stubs reclaimed by the map?
Does it involve any self-modifying code?  Can the libraries have
per-process as well as shared data?  How is that done?
I'm aware of the memory layout for each process, so I'm interested
to know if the code segments are mapped above the break, or
"squeezed" between the code and data, or somehow overlaid on the code.

Likewise, what is the interface to LKMs?
Are we susceptible to the same attacks SunOS is, in that hackers can load
a stealth-module?
What kind of kernel functionality can be modified by an LKM?
What kind of info can survive a warm boot on the different ports?

If this is all in manpages, feel free to just point me there (I can't
search them from where I am currently).

For reading this far you get a gift (forgot where I read this):
    guru (GOO-roo) n., someone who can do "cat > /vmunix"...
                   ...and get away with it
Travis Hassloch, Electronic Blacksmith | P=NP if (P=0 or N=1)
There's a fine line between an email message and its signature.