Sirviendo información sobre Linux desde 1998

Kernel/Núcleo

Que es el kernel/núcleo?

El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.

Las funciones más importantes del mismo, aunque no las únicas, son:

  • Administración de la memoria para todos los programas y procesos en ejecución.
  • Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.
  • Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.

Hasta que empezó el desarrollo de la serie 2.6 del núcleo, existieron dos tipos de versiones del núcleo:

  • Versión de produccion: La version de produccion, era la version estable hasta el momento. Esta version era el resultado final de las versiones de desarrollo o experimentales.

    Cuando el equipo de desarrollo del núcleo experimental, decidia que tenia un núclo estable y con la suficiente calidad, se lanzaba una nueva versión de producción ó estable. Esta versión era la que se debia utilizar para un uso normal del sistema, ya que eran las versiones consideradas más estables y libres de fallos en el momento de su lanzamiento.

  • Versión de desarrollo: Esta versión era experimental y era la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas características, correcciones, etc. Estos núcleos solian ser inestables y no se debian usar sin saber lo que se hacia.

Como interpretar los numeros de las versiones de las series por debajo de la 2.6:

  • Las versiones del núcleo se numeraban con 3 numeros, de la siguiente forma: AA.BB.CC

    AA: Indicaba la serie/versión principal del núcleo. Solo han existido la 1 y 2. Este número cambiaba cuando la manera de funcionamiento del kernel habia sufrido un cambio muy importante.
    BB: Indicaba si la versión era de desarrollo ó de producción. Un número impar, significaba que era de desarrollo, uno par, que era de producción.
    CC: Indicaba nuevas revisiones dentro de una versión, en las que lo único que se habia modificado eran fallos de programación.

  • Unos ejemplos nos ayudaran a entenderlo mejor:

    ej1: versión del núcleo 2.4.0: Núcleo de la serie 2 (AA=2), versión de producción 4 (BB=4 par), primera versión de la serie 2.4 (CC=0)
    ej2: versión del núcleo 2.4.1: Núcleo de la serie 2, versión 4, en el que se han corregido errores de programación presentes en la version 2.4.0 (CC=1)
    ej3: versión del núcleo 2.5.0: versión 0 del núcleo de desarrollo 2.5.

Con la serie 2.6 del núcleo, el sistema de numeración asi como el modelo de desarrollo han cambiado. Las versiones han pasado a numerarse con 4 digitos y no existen versiones de produccion y desarrollo.

  • Las versiones del núcleo se numeran hoy en dia con 4 digitos, de la siguiente forma: AA.BB.CC.DD.

    AA: Indica la serie/versión principal del núcleo.
    BB: Indica la revision principal del núcleo. Numeros pares e impares no tienen ningun significado hoy en dia.
    CC: Indica nuevas revisiones menores del núcleo. Cambia cuando nuevas caracteristicas y drivers som soportados.
    DD: Este digito cambia cuando se corrigen fallos de programación o fallos de seguridad dentro de una revisión.

Hoy en dia se suele usar el nucleo distribuido con la distribucion que el usuario utiliza. Son las distribuciones las encargadas de distribuir núcleos estables a sus ausuarios y estos nucleos se basan en el núcleo ("vanilla") distribuido por Linus Torvalds y el equipo de programadores del núcleo.

Dónde conseguir el núcleo

El núcleo denominado "vanilla" (sin alteraciones y suministrado por Linus Torvalds) se puede bajar de un gran número de servidores en internet pero el sitio oficial es http://www.kernel.org/. En este enlace tienes la lista internacional oficial de servidores espejos, de donde es posible bajarse cualquier versión del núcleo (última y antigüas).

Cada distribución distribuye sus nucleos por los canales de actualización habituales para cada una de ellas.

Configuración e instalación de un nuevo núcleo

Este es uno de los temas que asustan a los nuevos usuarios de Linux. Lo primero, deciros que no hay razón para asustarse, la configuración e instalación de un nuevo núcleo en nuestro sistema es mas fácil de lo suena. Lo segundo, es que podeis tener un sistema estable, actualizado y que funcione sin problemas durante meses sin tener que compilar un solo núcleo, siempre y cuando utiliceis los núcleos distribuidos con vuestra distribución.

Es muy recomendable el utilizar los núcleos distribuidos por la distribución que utiliceis. Estos núcleos tienen muy buena calidad y son muy completos y con esto os evitais el trabajo de configurar, compilar y mantener nuevas versiones del núcleo. Si sois de los que os gustan experimentar y aprender nuevas cosas, adelante, nadie os impide bajaros el último núcleo y experimentar con el, esto era mucho más común hace unos años y una tarea casi imprescindible en muchos casos.

Para los interesados en el tema existen dos documentos muy buenos que podeis utilizar para aprender a como compilar un núcleo, FAQ/Kernel compilation y el Kernel Rebuild Guide

Consejos

  • Pregunta: Necesito actualizar el núcleo que utilizo, cada vez que una nueva versión aparece?
    Respuesta: No. La explicacion es la siguiente:

    Cuando un nuevo núcleo aparece, puede ser por las siguientes causas:

    • Nuevas características se han añadido.
    • Fallos de programación se han corregido
    • Fallos de seguridad se han corregido.
    • Nuevo hardware es soportado.

    Si las características que se han añadido, no las vamos a utilizar, es evidente que no necesitamos actualizar. Si los fallos de programacion que se han corregido, afectan a características/drivers que no utilizamos, no necesitamos actualizar. Si no utilizamos el nuevo hardware soportado, tampoco necesitamos actualizar.

    De todas maneras es recomendable, actualizar de vez en cuando, sobre todo cuando se corrigen fallos de seguridad o cuando los cambios en el nuevo núcleo afectan a caracteristicas/funciones/hardware que utilicemos.

  • Pregunta: Soy nuevo en Linux y acabo de instalar una distribucion, como compilo un nuevo núcleo?
    Respuesta: Te aconsejo que esperes un poco. La distribución que acabas de instalar (si es de las últimas) viene con un kernel de los "últimos", totalmente funcional y que te sirve sin problemas.

    Utiliza el sistema un tiempo, familiarizate con el nuevo sistema que acabas de instalar, y cuando comprendas un poco mas como funcionan las cosas, compila el núcleo si te apetece y sabes que estas haciendo. Un buen punto de partida para encontrar informacion sobre el núcleo, lo tienes en estas páginas.

Enlaces sobre el kernel