next up previous contents index
Next: Exportando nuestros propios símbolos Up: Mi primer módulo Previous: Algunas consideraciones de estilo   Índice General   Índice de Materias

La tabla de símbolos del kernel

Cuando generamos el código objeto de nuestro módulo, todas las referencias a símbolos del kernel (como puede ser printk, por ejemplo) están sin resolver, es en el momento de la inserción del módulo cuando se resuelven dichas referencias, ya que cuando insertamos un módulo al kernel estamos linkando la imagen en memoria del kernel al código objeto del módulo.

Para que se puedan resolver esas referencias a símbolos del kernel, este publica todas sus referencias a través del sistema de ficheros virtual proc. Si queremos ver la tabla de símbolos del kernel podemos ejecutar la siguiente orden:

$ cat /proc/ksyms

Cuando insertamos un módulo, éste ofrece como símbolos por defecto todos sus símbolos globales no estáticos, estos nuevos símbolos pueden ser usados por otros módulos, por eso la salida de este comando incluye no solo símbolos del kernel si no los de aquellos módulos que estén cargados en el momento de ejecución del comando.

Si queremos buscar un determinado símbolo podemos ejecutar cat /proc/ksyms | grep simbolo, también podemos ver todos los símbolos que exporta nuestro módulo, si una vez insertado hacemos:

$ cat /proc/ksyms | grep hola


next up previous contents index
Next: Exportando nuestros propios símbolos Up: Mi primer módulo Previous: Algunas consideraciones de estilo   Índice General   Índice de Materias
Alberto Cortés 2001-03-29