modules in kernel
Sir,
"Modules contain unresolved symbols that are linked into the kernel when the module is loaded" -- what are unresolved symbols here? "kernel modules can only do some of the things that built-in code can do - they do not have access to internal kernel symbols" -- what are internal kernel symbols? Regards, Arunachalam. |
First, the concept...
A "kernel module" is a loadable part of the Linux kernel. You can ask for the module to be loaded, and it incorporates itself into the kernel. Later, the module can also be un-loaded. Very handy. Now, the question... what, do you think, would be involved in actually doing something like this? Well, let's see...
Now, what's the other way that we can get a module of code to be "part of the kernel?" Yes, exactly. We could have compiled it directly into the kernel-image, and then installed that image and rebooted the system. The linker, which builds the image file, does have access to a much larger list of symbols... not just the ones that will be listed in "ksyms." On the other hand, the addresses that are listed in "ksyms" are ones which the designers of the software anticipated would be called by kernel-modules, or that would be of interest to debuggers. Those symbols are unlikely to change from one release of the software to the next. |
All times are GMT -5. The time now is 10:48 PM. |