Onde as variáveis globais do Kernel são armazenadas?

2

Atualmente, estou escrevendo um módulo de kernel do Linux. Estou ciente de que, no caso de programas userspace, variáveis globais não inicializadas (exportadas para outros módulos usando EXPORT_SYMBOL ) são armazenadas no segmento BSS e inicializadas no Segmento de Dados da memória userspace. Mas como eles são armazenados no caso do código do kernel? As chamadas de função também estão incluídas no Stack, no caso do código do kernel?

Agradecemos antecipadamente por qualquer ajuda.

    
por Christy Wald 04.10.2017 / 09:41

1 resposta

0

O kernel tem alguma noção de segmento de dados, que fica na RAM (memória física carregada pelo carregador do kernel, como GRUB , não memória virtual ).

Para mais detalhes, examine os scripts de link usados no momento da compilação do kernel, talvez algo como arch/x86/kernel/vmlinux.lds ou outros arquivos *.lds .

    
por 01.11.2017 / 15:04