patch-2.1.90 linux/Documentation/kmod.txt
Next file: linux/Documentation/modules.txt
Previous file: linux/Documentation/cdrom/ide-cd
Back to the patch index
Back to the overall index
- Lines: 48
- Date:
Tue Mar 10 14:43:13 1998
- Orig file:
v2.1.89/linux/Documentation/kmod.txt
- Orig date:
Wed Dec 31 16:00:00 1969
diff -u --recursive --new-file v2.1.89/linux/Documentation/kmod.txt linux/Documentation/kmod.txt
@@ -0,0 +1,47 @@
+Kmod: The Kernel Module Loader
+Kirk Petersen
+
+Kmod is a simple replacement for kerneld. It consists of a
+request_module() replacement and a kernel thread called kmod. When the
+kernel requests a module, the kmod wakes up and execve()s modprobe,
+passing it the name that was requested. After a configurable period of
+time, kmod will have delete_module() remove any unused modules.
+
+Kmod is configurable through two entries in /proc/sys/kernel. You can
+set the path of modprobe (where the kernel looks for it) by doing:
+
+ echo "/sbin/modprobe" > /proc/sys/kernel/modprobe
+
+To tell kmod when to unload unused modules, do something like:
+
+ echo "120" > /proc/sys/kernel/kmod_unload_delay
+
+Kmod only loads and unloads modules. Kerneld could do more (although
+nothing in the standard kernel used its other features). If you
+require features such as request_route, we suggest that you take
+a similar approach. A simple request_route function could be called,
+and a kroute kernel thread could be sent off to do the work. But
+we should probably keep this to a minimum.
+
+Kerneld also had a mechanism for storing device driver settings. This
+can easily be done with modprobe. When a module is unloaded, modprobe
+could look at a per-driver-configurable location (/proc/sys/drivers/blah)
+for device driver settings and save them to a file. When a module
+is loaded, simply cat that file back to that location in the proc
+filesystem. Or perhaps a script could be a setting in /etc/modules.conf.
+There are many user-land methods that will work (I prefer using /proc,
+myself).
+
+If kerneld worked, why replace it?
+
+- kerneld used sysv ipc, which can now be made into a module. Besides,
+ sysv ipc is ugly and should therefore be avoided (well, certainly for
+ kernel level stuff)
+
+- both kmod and kerneld end up doing the same thing (calling modprobe),
+ so why not skip the middle man?
+
+- removing kerneld related stuff from ipc/msg.c made it 40% smaller
+
+- kmod reports errors through the normal kernel mechanisms, which avoids
+ the chicken and egg problem of kerneld and modular unix domain sockets
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov