Optimizando el Kernel: ¿Qué diferencias existen entre INSMOD y MODPROBE?

insmod y modprobe son dos maneras de cargar módulos en el Linux Kernel. En esta breve columna paso a describir las particularidades de cada programa y cual conviene utilizar según cada caso.



insmod y modprobe son dos maneras de cargar módulos en nuestro kernel. La diferencia fundamental entre ambos es que modprobe, a diferencia del primero, no sólo permite cargar el módulo sino que también permite chequear las dependencias del mismo. 

Es decir, si nuestro modulo a, necesita de dependencias b y c para funcionar, modprobe intentará ubicarlas y cargarlas junto con nuestro módulo mientras que insmod no realiza esta tarea. 

Esto es particularmente útil a la hora de tocar el kernel para asegurarnos de que nuestro sistema botee correctamente al reiniciar.

Existen casos donde insertar un módulo a través de modprobe nos puede dar error debido a que existe un mismatch de información de versiones. Como medida preventiva, modprobe evita que el modulo "problemático" se cargue. 

Ahora bien, si el modulo lo hemos desarrollado nosotras/os o si tenemos la certeza de que viene de una buena fuente, o bien, sabemos que funcionaría, podemos bypassear esta restricción utilizando el parametro --force (que es lo mismo que ejecutar los parametros --force-vermagic y --force-modversion)

Utilizar --force es, como cualquier otro parametro arbitrario del estilo en Linux, extremadamente peligroso a menos que sepan exactamente lo que están por hacer. 

Entonces ¿Conviene utilizar modprobe o insmod?

La respuesta es, como en la gran mayoría de los casos: Depende. 

Depende fundamentalmente de la ubicación del módulo. Para la mayoría de los casos donde debemos optimizar el kernel por algún motivo, modprobe (aun con --force para saltear el check version) cumple con su propósito. 

Ahora bien, existen situaciones donde desarrollamos un módulo y necesitamos cargarlo. En este caso se suele usar insmod por que modprobe sólo busca los módulos en los directorios estandar (ref: https://lwn.net/Kernel/LDD3/ (en inglés))

Siempre que se trabaje con el kernel, lo recomendable es realizar un backup antes de proceder, por que es extremadamente común que las cosas no funcionen como esperamos y teniendo un backup para realizar un rollback es una manera muy eficiente de volver hacia atrás al punto de partida e intentar nuevamente sin comprometer la integridad de la estación de trabajo o servidor. 

¡Espero que les haya servido! 

Muakk. 

Ale.

0 comentarios:

Copyright (C) 2019 - Chica de Sistemas. Con la tecnología de Blogger.

Páginas