From: Jim Huang Date: Wed, 16 Mar 2022 06:32:08 +0000 (+0800) Subject: Refine wording on module loading X-Git-Tag: latest~69 X-Git-Url: https://www.ivnss.com/gitweb/?a=commitdiff_plain;h=19521bc60adac664ee7e2ef9a72b6ef79c6409ea;p=lkmpg Refine wording on module loading Close #134 --- diff --git a/lkmpg.tex b/lkmpg.tex index 1a285d4..c216afb 100644 --- a/lkmpg.tex +++ b/lkmpg.tex @@ -704,7 +704,7 @@ You use these library functions which are provided by the standard C library, li The definitions for these functions do not actually enter your program until the linking stage, which insures that the code (for \cpp|printf()| for example) is available, and fixes the call instruction to point to that code. Kernel modules are different here, too. In the hello world example, you might have noticed that we used a function, \cpp|pr_info()| but did not include a standard I/O library. -That is because modules are object files whose symbols get resolved upon \sh|insmod|'ing. +That is because modules are object files whose symbols get resolved upon running \sh|insmod| or \sh|modprobe|. The definition for the symbols comes from the kernel itself; the only external functions you can use are the ones provided by the kernel. If you're curious about what symbols have been exported by your kernel, take a look at \verb|/proc/kallsyms|.