¿Qué son las extensiones de kernel?

Una extensión del kernel es una pieza de software de computadora que se carga en el componente central de un sistema operativo. Las extensiones del kernel pueden usarse para proporcionar funcionalidad o soporte de hardware que de otra manera no serían parte del kernel. A menudo, una extensión del kernel puede realizar tareas o acceder a partes del sistema operativo que el software normal no puede. En algunos sistemas operativos, las extensiones del kernel se denominan módulos del kernel o simplemente módulos.

En la mayoría de los sistemas operativos, el acceso a la red, los sistemas de archivos y las llamadas al sistema están restringidos para mantener un sistema estable y seguro. Las extensiones del kernel pueden acceder a estas funciones y sistemas porque se ejecutan como parte del kernel. Un kernel sin extensiones se conoce como kernel base. Se pueden agregar o eliminar extensiones del kernel base.

Las extensiones permiten una mayor flexibilidad en las capacidades de un kernel sin aumentar la complejidad del kernel base. Por ejemplo, se puede cargar una extensión del kernel para habilitar funciones de ahorro de energía adecuadas para computadoras portátiles. Por lo general, estas funciones no se incluyen en el kernel base porque es posible que el sistema operativo no se utilice en una computadora portátil.

Las extensiones o módulos del kernel también se pueden cargar y descargar dinámicamente, lo que significa que se agregan y eliminan del kernel según sea necesario. Esto permite que la computadora ahorre memoria y otros recursos cuando la extensión no está en uso. Un adaptador de red Universal Serial Bus (USB) puede cargar los controladores necesarios como extensiones del kernel cuando se conecta y luego descargar las extensiones cuando se quita el dispositivo.

Tienen más autoridad que otros programas, por lo que las extensiones y los módulos del kernel pueden causar problemas únicos. Un controlador de dispositivo mal codificado que se ejecuta como una extensión del kernel podría hacer que todo el sistema se bloquee. Por esta razón, a menudo se alienta a los desarrolladores de software a usar extensiones del kernel solo cuando no haya otra alternativa.

Para la mayoría de los usuarios, la configuración de las extensiones se realiza automáticamente. Algunos usuarios, especialmente aquellos que usan sistemas operativos particulares, administran la extensión del kernel o los módulos ellos mismos. Existen variaciones en las versiones de los núcleos, por lo que la extensión y los módulos pueden no ser compatibles con todos los núcleos o con todos los sistemas operativos.