Kernel Modules Understanding
Ok. I just want to make sure I've got this straight. I've kinda been hanging my head in shame. I've used linux for about 5 years now, and I just now made some sense out of the /etc/modprobe and how it relates to the kernel. (Don't we all have those unexplored basic areas?) Don't get me wrong, I understand that you have to put modules you want loaded in there. Here's what I think I've properly learned. Feel free to expand upon if you wish.
The kernel makes a call to a numeric reference. Say, device 80, 0. Then if its built into the kernel, the device is loaded as configured, automatically. If not - /etc/modprobe or /etc/modules.conf, depending on your kernel version is read for an alias to that device. From that it detemines the device driver to load. The device driver with its node number, 80, 0, is then used. So the userspace program for ex, would link to the device file or refernce, say /dev/video, which links to the module that is loaded by the kernel, say nv.ko which was figured out by /etc/modprobe, if it was a module. The module then interprets calls from the userspace program and interprets them into device calls, and vice-versa. Dependencies for the module were sorted out by /lib/modules/kernelversion/moddepwhatever. The mod dep file in /lib/modules/* also loaded any prior requirements for that module to be loaded. Phew. Have I got it, or am I off? I know its not a requirement to understand this, but the lower level I understand, the more I can manipulate what is really going on in my computer.
Thanks for any input.
Druisgod
Last edited by druisgod; 08-13-2004 at 06:31 AM.
|