Modulos del kernel linux

Solo disponible en BuenasTareas
  • Páginas : 6 (1323 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de enero de 2012
Leer documento completo
Vista previa del texto
4.0 MÓDULOS DEL KERNEL
Es un archivo que contiene código objeto que puede extender el núcleo en ejecución (núcleo base) de un Sistema Operativo. La mayoría de los sistemas estilo Unix, y Microsoft Windows, soportan módulos cargables en el núcleo.
Los módulos cargables en el núcleo son generalmente utilizados para brindar soporte a nuevos dispositivos de Hardware y Sistema de archivos, así comopara agregar llamadas al sistema. Cuando la funcionalidad provista por un módulo del núcleo deja de ser requerida, normalmente éste puede ser descargado, liberando su memoria.
El núcleo de Linux tiene la facultad de cargar y descargar secciones arbitrarias del código del núcleo cuando se le pide hacerlo. Estos módulos de núcleo cargables se ejecutan en modo de núcleo privilegiado y por ello tienepleno acceso a todas las capacidades de hardware de la maquina en la que se ejecutan. En teoría, no hay restricción respecto a lo que se permite a un módulo de núcleo hacer, típicamente, un módulo podría implementar un driver de dispositivo un sistema de archivos o un protocolo de redes.
Por ejemplo, en Linux, el driver de la tarjeta de red puede ser instalado como módulo, durante el normalfuncionamiento del kernel, el módulo no está cargado, pero si en algún momento vamos a necesitar usar la tarjeta de red, este se puede cargar, luego, cuando dejemos de usar la tarjeta de red, podemos eliminar el módulo para aprovechar mejor nuestra memoria.
El concepto de módulo no tiene por qué estar únicamente ligado a los drivers, mucha de la funcionalidad del kernel que no tenga que verespecíficamente con un determinado hardware puede ser programada en forma de módulo, en especial si no esperamos hacer un uso frecuente de la misma.
Las implicaciones de esta definición son enormes, pues programar un módulo es programar una porción del kernel; ya no estamos haciendo aplicaciones en espacio de usuario, estamos creando parte del kernel en sí mismo, implementando llamadas al sistema ymanejando el hardware a bajo nivel.
El soporte de módulos en Linux tiene tres componentes
* El componente de gestión de módulos permite cargar módulos en memoria y que estos se comuniquen con el resto del kernel.
* El módulo de registro de controladores permite a los módulos informar al resto del kernel de que hay disponible un nuevo controlador.
* El mecanismo de resolución de conflictospermite a los diferentes controladores de dispositivos reservar recursos hardware y proteger dichos recursos del uso accidental por parte de otro controlador.
4.1 Gestión de Módulos
Cargar un módulo requiere algo más que su contenido binario en la memoria del kernel. El sistema debe también asegurarse de que todas las referencias que el modulo realice a los puntos de entrada o símbolos del kernelse actualicen para apuntar a las ubicaciones correctas dentro del espacio de direcciones del kernel.
Linux lleva a cabo esta actualización de referencias dividiendo el trabajo de cargar un módulo en dos secciones separadas:
La gestión de secciones de código de los módulos en memoria del kernel y la gestión de los símbolos que se permite a los módulos que referencien.
Linux mantiene una tablainterna de símbolos en el kernel. Esta tabla de símbolos no contiene el conjunto completo de símbolos definido en el kernel durante la compilación de este; en lugar de ello, cada símbolo deber ser exportado explícitamente por el kernel.
La carga del módulo se realiza en dos etapas. En primer lugar, la utilidad cargadora de modulo pide al kernel que reserve una área continua de la memoria virtualdel kernel para el modulo. El kernel devuelve la dirección de la memoria asignada y la utilidad cargadora puede utilizar esta dirección para reubicar el código máquina del módulo de acuerdo con la dirección de carga correcta. Una segunda llamada al sistema pasa entonces el modulo, junto con cualquier tabla de símbolos que el nuevo módulo quiera exportar el kernel. El propio módulo se copiara...
tracking img