Como ya sabrá, el kernel es el software que sirve de puente entre el hardware y el resto de funciones del sistema operativo, que maneja el sistema de ficheros, el acceso a la red y otras tareas de bajo nivel que son críticas para el rendimiento.

El kernel está formado por un fichero principal, que

Normalmente reside en /boot (o en el directorio raíz) y se denomina (generalmente) vmlinuz-a.b.c-d

Es el fichero que se indica al gestor de arranque (bootloader) para que cargue el sistema operativo cuando el equipo arranca.

Bastaría con indicar en el gestor de arranque un kernel diferente y reiniciar el equipo para cambiar de kernel si varios están instalados.

Normalmente se le añade al nombre de fichero el número de versión, de manera que se pueden almacenar varios kernel aunque sólo uno de ellos esté operativo.

Además de este fichero, se instalan varios módulos de kernel,  que normalmente se encuentran en /lib/modules

Un módulo del kernel es un archivo que contiene código objeto que puede extender al kernel.

Son generalmente utilizados para brindar soporte a nuevos dispositivos de hardware o nuevos sistemas de ficheros, así como para agregar llamadas al sistema.

Cuando la funcionalidad provista por un módulo del núcleo deja de ser requerida, normalmente éste puede ser descargado, liberando su memoria.

Un ejemplo típico de módulo cargable son los Controladores de Dispositivo (drivers).

Descarga e instalación del kernel

El kernel de Linux es común a todas las distribuciones, y se descarga desde la página web www.kernel.org. Ahí están disponibles todas las versiones como tarballs de código fuente, que se compilan e instalan como cualquier otro software. Tal vez es necesario reconfigurar el boot loader para que localice el nuevo fichero de arranque del sistema operativo, y siempre es necesario reiniciar el sistema para que se apliquen las actualizaciones de kernel.

También es posible descargar actualizaciones (patch) del kernel actual a la versión inmediatamente siguiente, y aplicarlos con el comando patch al código fuente del kernel actual desde el directorio de dicho kernel.


#gzip -cd ../patch-version.gz | patch -pl
 

A continuación, se compila e instala el kernel actualizado como cualquier otro kernel. La descarga del parche siempre será más rápida que la de un kernel completo.

Tenga cuidado siempre de aplicar sólo parches correspondientes a la versión actual de kernel, y no a otra. Para conocer cuál e la versión del kernel actual, se utiliza el comando
#uname -r

Versiones del Kernel

La versión viene indicada por una cadena de 4 número (a.b.c-d) en el nombre del fichero de kernel. El tercer número identifica una nueva "release", con nuevas funcionalidades, mientras que  cambios en el último número indican simplemente que se han solucionado algunos errores (bugs). Las versiones del kernel se dividen en varias categorías:

Mainline

El árbol principal de actualizaciones del kernel es mantenido por Linus Torvalds. Las versiones mainline corresponden al desarrollo de nuevas funcionalidades, y se liberan cada 2-3 meses.

Prepatch

Corresponden a pre-lanzamientos de versiones mainline dirigidas a desarrolladores y entusiastas de Linux. No es aconsejable instalarlas en un sistema de producción, y su finalidad es la de que las nuevas funciones sean probadas por la comunidad antes de ser incluidas en una versión estable. Las versiones prepatch también son mantenidas y divulgadas por Linus Torvalds.

Estable

Después de una versión mainline se libera, se la considera "estable". Las correcciones de errores para un núcleo estable son portadas desde el árbol principal mantenido por Linus Torvalds y asignadas a otro desarrollador. Por lo general hay sólo unas pocas versiones del kernel de corrección de errores hasta que el núcleo principal siguiente está disponible - a menos que se designe un kernel de mantenimiento a largo plazo (longterm).

Longterm

Desde el árbol principal de actualizaciones se abren otras líneas de mantenimiento de versiones con el fin de proporcionar soporte a quienes no actualizan a versiones más nuevas. Solamente se aplican las correcciones más importante a esos núcleos y no suelen ser muy frecuentes, sobre todo para los árboles más viejos. Hay un desarrollador (maintainer) encargado de cada línea de mantenimiento que sale de la línea principal.

Gráficamente, se puede explicar de la siguiente manera:

En la siguiente tabla (extraída de kernel.org) se muestran cuáles son las líneas Longterm abiertas en el momento de editar este  curso, quién es su desarrollador (maintainer) encargado, y cuál es la fecha prevista de finalización del mantenimiento (EOL, end-of-line):

Versión Desarrollador Fecha EOL
3.4 Greg Kroah-Hartman Octubre 2014
3.2 Ben Hutchings 2016
3.0 Greg Kroah-Hartman Octubre 2013
2.6.34 Paul Gortmaker Mediados 2013
2.6.32 Willy Tarreau Mediados 2014

El código fuente del kernel instalado en nuestro sistema se encuentra normalmente en /usr/src/linux. Es recomendable conservarlo este directorio incluso después de haber compilado e instalado el kernel, ya que contiene un directorio con la documentación asociada a dicho kernel, que nos puede ser de utilidad a la hora de necesitar un nuevo driver, por ejemplo. También es posible que instalemos software a partir de sus fuentes, que utilice alguna de las librerías declaradas en el kernel, y serían necesarias para poder compilarlo.

En la práctica, cada distribución de Linux pone a disposición actualizaciones propias del kernel, que no se obtienen desde kernel.org, sino que se distribuyen como cualquier otra actualización del sistema operativo. Estas actualizaciones son independientes a las mencionadas anteriormente, y por lo general se instalan a partir de paquetes (yum, rpm...) denominados linux-source, kernel-devel, linux-headers, kernel-headers (para las librerías), etc. En este caso, la actualización del kernel se hace de la misma manera que el resto de actualizaciones del sistema operativo, o paquetes de otras aplicaciones.
 

Esta píldora formativa está extraída del Curso online de Administración avanzada de Linux (LPIC-2).

¿Te gusta el contenido de esta píldora de conocimiento?

No pierdas tu oportunidad y ¡continúa aprendiendo!

Política de privacidad

ADR Formación utiliza cookies propias y de terceros para fines analíticos anónimos, guardar las preferencias que selecciones y para el funcionamiento general de la página.

Puedes aceptar todas las cookies pulsando el botón "Aceptar" o configurarlas o rechazar su uso pulsando el botón "Configurar".

Puedes obtener más información y volver a configurar tus preferencias en cualquier momento en la Política de cookies