Skip to main content

¿Qué son las extensiones de kernel?

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

En la mayoría de los sistemas operativos, el acceso a las redes, 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 núcleo sin extensiones se conoce como núcleo base. Se pueden agregar o quitar extensiones del núcleo base.

Las extensiones permiten una mayor flexibilidad en las capacidades de un núcleo sin aumentar la complejidad del núcleo base. Por ejemplo, se podría cargar una extensión del kernel para habilitar las funciones de ahorro de energía apropiadas para las computadoras portátiles. Estas características generalmente no están incluidas en el núcleo base porque el sistema operativo podría no usarse 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 sus controladores necesarios como extensiones del kernel cuando está enchufado, y luego descargar las extensiones cuando se retira el dispositivo.

Tienen más autoridad que otros programas, por lo que las extensiones y módulos del kernel pueden causar problemas únicos. Un controlador de dispositivo mal codificado que se ejecute 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 de kernel solo cuando no hay alternativa.

Para la mayoría de los usuarios, la configuración de 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 todos los sistemas operativos.