kmod, the kerneld replacement

Kirk Petersen (kirk@eidolon.speakeasy.org)
Thu, 15 Jan 1998 22:13:05 -0800


--v5cy4qt+RJ9ypb+x
Content-Type: text/plain; charset=us-ascii

Hi,
Here is a patch that replaces kerneld with a simple mechanism
that doesn't require an external binary or sysv ipc. Instead of using
messages, it directly execve()s modprobe whenever part of the kernel
calls request_module(). It has been tested on some single CPU Pentiums
with SMP kernels and appears stable. If you can spare the time to apply
it and test it, especially on real SMP or non-Intel machines, we would
really appreciate it. Please send us any comments you have.
Note: The patch is against 2.1.79. This *erases* all kerneld
stuff (except for some comments and documentation). You might want to
disable kerneld (the daemon) before attempting to boot a kernel with
this patch, just in case.

-- 
Bye,
Kirk Petersen (the other part of "we" is Cyrus Durgin, cider@speakeasy.org)
http://www.muppetlabs.com/~kirk/

--v5cy4qt+RJ9ypb+x Content-Type: application/x-gunzip Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kmod_patch7.gz"

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

--v5cy4qt+RJ9ypb+x--