¿Dónde se almacenan las variables globales de Kernel?

2

Actualmente estoy escribiendo un módulo de kernel de Linux. Soy consciente de que, en el caso de los programas de espacio de usuario, las variables globales no inicializadas (exportadas a otros módulos mediante EXPORT_SYMBOL) se almacenan en el segmento BSS y las inicializadas en el segmento de datos de la memoria del espacio de usuario. Pero, ¿cómo se almacenan en caso de código del núcleo? ¿Las llamadas a funciones también se incluyen en Stack, en caso de código de kernel?

Gracias de antemano por cualquier ayuda.

Christy Wald
fuente

Respuestas:

0

El núcleo tiene una noción de segmento de datos, que se encuentra en la RAM (memoria física cargada por el cargador del núcleo, como GRUB , no memoria virtual ).

Para más detalles, examine los scripts del enlazador utilizados en el tiempo de compilación del núcleo, tal vez algo así como arch/x86/kernel/vmlinux.ldsotros *.ldsarchivos.

Basile Starynkevitch
fuente