¿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.

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.