Re: /proc/ksyms and /proc/kallsyms relationship?

From: Keith Owens
Date: Sun Nov 09 2008 - 21:02:30 EST


On Mon, 10 Nov 2008 03:00:16 +0200,
John K <trv@xxxxxxxxxxx> wrote:
>In kernel 2.4, there was a /proc/ksyms file. This file, if I understand
>correctly, was a method to access the kernel's public symbol table. What
>was displayed had all the public kernel's symbols (variables,
>functions..) and its associated global addresses, along with some other
>usefull stuff, like a CRC value, and the module exporting every specific
>symbol.
>Fine until this point.
>
>In 2.6 kernels, /proc/ksyms disappeared. Many sources suggest that it
>was replaced by the /proc/kallsyms file.
>BUT this file seems to be something completely different, and I haven't
>figured out in what way it is different. It seems that it's not the
>kernels public symbols table.
>
>So, some questions to anyone that knows more on this:
>
>1. Is my description of the functionality of /proc/ksyms in 2.4 kernels
>correct?

Yes.

>2. What exactly the /proc/kallsyms file contains? Why does this file
>exist and how is it used?

kallsyms contains (as the name suggests) all the global symbols in the
kernel and the loaded modules. It was originally added for kernel
debugging but it became so useful that it supplanted ksyms.

>4. If one wants to find out what are the exported symbols from some
>module, so to know which symbols can he use in a future module, how can
>he achieve this?

nm <path_to_module.ko> | grep __ksymtab

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/