Por: Shane Shields (Locutus)
Traducción de: Maria Teresa Rozo
Fuente: The magic of Linux device drivers
El kernel de Linux tiene una fantástica relación con el hardware del computador. No le interesa la empresa que vende el hardware ni nombres de marca, sólo se preocupa por el hardware en sí. Más específicamente, el conjunto de chips del hardware. Esto significa que un solo controlador de Linux soporta automáticamente un conjunto de chips sin importar la empresa que los fabricó o la que vende los productos fabricados con esos chips.
Pero, ¿qué es exactamente un controlador de Linux? Un controlador de Linux es realmente parte del kernel de Linux. De hecho, la mayoría de los kernels de Linux se dedican a prestar apoyo a casi todos los tipos de hardware que se puedan encontrar.
Lo que es realmente asombroso acerca de los controladores de dispositivos en el kernel de Linux es que pueden ser separardos de la base de código del kernel y ellos, a su vez, encenderce y apagarse a voluntad. Esto significa que el kernel no está atrapado a los controladores y por tanto pueden descargarse para que no estén ocupando recursos de hardware valiosos.
Esta es la pequeña parte confusa. Los módulos controladores son una parte integral del núcleo. No hay diferencia entre un kernel con un controlador de modulo cargado y un kernel con el controlador integrado sin embargo las comunicaciones o Entradas/Salidas trabajan de la misma manera.
Aparte de tener un modulo controlador capaz de ser cargado y descargado en tiempo real, sin tener que reiniciar el ordenador, se pueden agregar módulos controladores más recientes y así ampliar el núcleo de Linux aún más. Es decir, se puede, en tiempo real, modificar y ampliar el núcleo de Linux, ¡s¡n tener que apagar o reiniciar su computadora! Algo relamente asombroso que merece sobresaltarse.
Como todos sabemos, cada programa tiene errores en ellos, llamado popularmente fallos o bugs, y el núcleo de Linux y los módulos controladores no son una excepción. Si los controladores habían sido compilado en el núcleo y se encontró un error donde el kernel no responde, la única solución es la de reiniciar el sistema. Por supuesto, sigue siendo mucho mejor que una pantalla azul, ya que a menudo son incapaces de cerrarse.
Por otra parte, al tener que un modulo controlador ha encontrando el mismo error y que el núcleo sigue siendo insensible a ese controlador. La gran diferencia aquí es que usted puede quitar y volver a insertar el módulo, y ya. No es necesario reiniciar el sistema y no habría interrupción de su sistema.
Esto hace que los controladores de dispositivos de Linux sean realmente mágicos. Es esta capacidad y flexibilidad la que me entusiasma de estar en esta desfile del pingüino. Sin mencionar que tengo el físico apropiado para estar en el :)