* GUZMAN LORZ SERGIO ([EMAIL PROTECTED]) said:
> la verdad es que alguien mas que explique mejor (sepa m�s) que yo.
Aqu� va un ultra-mini tutorial de m�dulos.
Los m�dulos, son parecidos a los drivers de otros sistemas operativos. (Ojo que
digo parecidos).
Son codigo ya compilado (o sea, ejecutable), que se �ne al kernel una vez que
este ya est� corriendo. La idea es que si no se necesita un m�dulo, no hay por
qu� tenerlo cargado.
Usar� como ejemplo una tarjeta de red. Supongamos que es una NE2000 compatible.
El c�digo para esta tarjeta se llama viene incluido con el kernel. Cuando
compilo el kernel, puedo escoger si quiero que est� ya incorporado o si quiero
que sea un m�dulo. (La gente de las distribuciones normalmente pone todo lo
posible como m�dulos, para adaptarse a las posibles diferentes combinaciones de
los usuarios)
Hay una opci�n del kernel que le permite cargar m�dulos por el solito cuando
son requeridos. Si el kernel est� compilado con esta opci�n, cuando alguien
(alg�n proceso) necesita usar algun device, el kernel trata de cargar el modulo
si no lo tiene compilado o est� ya cargado.
En el caso de la tarjeta de red, cuando alguien trata de usar la red, el kernel
buscar� y tratar� de cargar el m�dulo de la red si no est� ya cargado. Esto lo
hace por medio de 'modprobe'. El kernel tratar� de cargar el m�dulo llamado
eth0 en caso de que sea este el device que queramos accesar. Por lo tanto, si
yo ejecuto el comando "ifconfig eth0 ..." y el kernel no tiene ese modulo
cargado, intentar� hacer un modprobe eth0. Como yo tengo un NE2000, entonces
agrego "alias eth0 ne2k-pci" a mi /etc/conf.modules. (Ojo que cambia por
distribuci�n). As� el kernel cargar� autom�ticamente el m�dulo NE2000 cuando
trate de accesar la red.
Otros ejemplos m�s complejos son cosas como un capturador de video. En este
caso, yo tengo un Hauppauge WinTV. El driver que usa es el bttv. El kernel con
conoce el dispositivo este de tele con el nombre video0. Sin embargo, el
archivo /dev/video0 si existe (porque yo lo cree), pero el kernel lo conoce por
su "Major Device Number". Este n�mero, es el que utilizan los Unix para
identificar dispositivos. (Ojo que con el nuevo devfs esto est� cambiando, pero
esto todav�a no aplica). N�tese que estos numeros no son aleatorios, est�n bien
definidos. (La red es un caso especial porque /dev/eth* no existen, vienen de
otra descendencia de Unix). Continuando con el ejemplo, el /dev/video tiene
como Major Number el 81, as� que yo agrego "alias char-major-81 bttv". Cuando
corro el programa de tele, (como kwintv o xawtv, que tratan de accesar el
dispositivo de video), el kernel automaticamente carga el m�dulo de bttv.
Lo que sucede con el caso del sonido anterior, es que muchas distribuciones
cargan los m�dulos autom�ticamente cuando bootean. Eso lo hacen con scripts. En
el caso de Mandrake/Red Hat el script rc.sysinit se fija si hay un alias de
sound y lo carga autom�ticamente, para que el usuario no tenga que molestarse
en hacer un poco de cosas que tal vez no sepa/quiera hacer.
Adem�s hay que acordarse que las distribuciones vienen lo mas gen�ricas
posibles, y tienen que traer muchos m�dulos y adaptarse para cargar los m�dulos
que los usuarios necesita. Lo mejor ser�a personalizar el kernel para la
m�quina que uno est� utilizando, por ejemplo, si es un servidor de red, para
que cargar m�dulos de red cuando se sabe que siempre se va a utilizar la red y
la tarjeta de red no va a cambiar? Diay, ahi ventajas y desventajas que quedan
para la pr�xima vez. Lo �nico que agregar� es que a veces hay ciertos
dispositivos que solo se pueden cargar como m�dulos. Esto se aplica a varias
tarjetas ISA plug-and-play en kernels que no soportan ISA plug-and-play y
necesitan correr isapnp para inicializar la tarjeta antes de cargar el m�dulo.
Espero que el peque�o mini-howto les ayude.
Saludos.
Nacho
--
GPG Public Key: http://www.igso.net/isolis.gpg
PGP signature