miércoles, 2 de septiembre de 2009

Los Modulos y el Kernel

Hace mucho que no posteo nada, les cuento que recientemente he estado haciendo algunos experimentos con los driver de mi tarjeta de red wireless... una abg3945 de intel.

El tema es que con los drivers libres (iwl3945) no se pueden inyectar paquetes por lo que se hacia necesario instalar drivers privativos (ipw3945). En fin, eh encontrado muchos tutoriales en la red sobre como hacerlo, sin embargo, los tutoriales dan recetas paso a paso sin explicar mucho para que sirve cada cosa. Es por eso que eh estado investigando un poquito, y eso es de lo que se trata este post.

En primer lugar el comando lsmod sirve para desplegar la información referente a los módulos que están habilitados por el kernel del sistema. Recordemos que un sistema operativo es el encargado de organizar el uso de los dispositivos por las aplicaciones, por lo cual, esta interaccion se realiza a través de los controladores o del kernel.


Si el kernel soporta cierto dispositivo, es necesario configurar un controlador (normalmente esto se realiza durante la instalación del sistema, y es habitual que sea necesario actualizar algún modulo o el kernel completo cuando hay una actualización en el hardware).

El codigo fuente del kernel cuenta con controladores para diferentes dispositivos, por eso cuando se compila una version, algunos de estos controladores se unen con el kernel (estáticos) otros quedan como "módulos" (esos de los que estabamos hablando antes) que se pueden cargar o descargar mientras el kernel está operando (dinamicos).

Lo ante dicho es muy importante, en mi ejemplo, los drivers de la tarjeta wifi estan cargados como módulos, por eso es posible cargar uno u otro, de otra forma habría que compilar un kernel
para cada caso (o tener varios kernel disponibles a los cuales acceder mediante el grub... opcion interesante no?).

Para configurar un dispositivo controlado por un modulo, se puede emplear modutils o modconf.
Estos comandos sirven para controlar conflictos, encontrar un módulo o pasar opciones.

Pueden encontrar más información al respecto en:

http://structio.sourceforge.net/guias/AA_Linux_colegio/kernel-y-modulos.html

No hay comentarios: