Подтвердить что ты не робот

Ядро Linux экспортирует символы

Я хочу проверить список символов, экспортированных ядром Linux. Поэтому я запускаю команду,

# cat /proc/kallsyms
0000000000000000 D per_cpu__irq_stack_union
0000000000000000 D __per_cpu_start
0000000000004000 D per_cpu__gdt_page
0000000000005000 d per_cpu__exception_stacks
000000000000b000 d per_cpu__idt_desc
000000000000b010 d per_cpu__xen_cr0_value
000000000000b018 D per_cpu__xen_vcpu
000000000000b020 D per_cpu__xen_vcpu_info
000000000000b060 d per_cpu__mc_buffer
000000000000c570 D per_cpu__xen_mc_irq_flags

Это результат, который я получил. Мой вопрос в том, каково значение каждого поля в этом выходе? Первое поле выглядит как адрес, я не получал ссылок на второе поле. Может ли кто-нибудь объяснить мне значение значений D, d, t, T, s во втором поле?

4b9b3361

Ответ 1

Символы во втором столбце имеют то же значение, что и на выходе из nm:

D D Символ находится в секции инициализированных данных.

S S Символ находится в неинициализированной секции данных для небольших объектов.

T T Символ находится в разделе текста (кода).

Символы верхнего уровня глобальны/экспортированы; строчные буквы являются локальными неэкспортированными символами.