question regarding linux -2.6 modules
I am writing some modules in linux 2.6 and have some wonders. The following text is from the book Linux Device Driver 3rd edition:
I don't really understand what "2.6 modules are linked against object files found in the kernel source tree" the author said means. How do modules link against kernel object files? I suppose kernel modules just dereference exported kernel symbols they used after they are loaded into kernel. Do I misunderstand somewhere? Moreover, I observed that the 2.6 module binary (*.ko) is quite bigger in size comparing with 2.4 old one, which give some feeling about additional linking (???). Could some body explain to me about above text in the book and why 2.6 module size is so large? Or give me some documents. I had a search but didn't find.
Regardless of the origin of your kernel, building modules for 2.6.x requires that you
have a configured and built kernel tree on your system. This requirement is a change
from previous versions of the kernel, where a current set of header files was sufficient.
2.6 modules are linked against object files found in the kernel source tree; the
result is a more robust module loader, but also the requirement that those object filesbe available.
Thanks very much