Kernel Linux, descubre cómo es el corazón de este sistema operativo

Kernel Linux, descubre cómo es el corazón de este sistema operativo

Rubén Velasco

Normalmente, cuando hablamos de Linux, solemos hacerlo en relación a distribuciones como Ubuntu, Debian, Mint, etc. Sin embargo, estas distribuciones no son sistemas operativos como tal, sino más bien son «adaptaciones» de un sistema operativo de código abierto: Linux. Y, por lo tanto, a pesar de las peculiaridades de cada una, todas ellas comparten una misma base, lo que conocemos como Kernel Linux.

Linux, como indica su propia documentación, nació como un clon de otro sistema operativo llamado Unix. Concretamente como un sistema alternativo inspirado en Minix (que, a su vez, clonaba los conceptos de Unix). Por sus propiedades, Linux es un sistema operativo real, aunque nadie lo utiliza como tal, sino que recurre a las distribuciones ya que, con ellas, se vuelve mucho más útil y sencillo de utilizar.

Por ello, no se suele decir «voy a instalar Linux» refiriéndonos a un sistema operativo concreto, sino que lo que instalamos son versiones, o distribuciones, de este núcleo, creadas por empresas o por la comunidad, que comparten una misma base: el Kernel.

Qué es el Kernel y para qué sirve

El Kernel Linux es el núcleo del sistema operativo. Esta es la parte de software más importante de cualquier sistema operativo. Windows tiene su propio núcleo privado, Apple tiene el suyo (basado en Unix, por cierto), y Linux es el Kernel que utilizan todas las distribuciones. Y su principal función es encargarse de controlar el hardware del ordenador.

Concretamente, este núcleo es el responsable de gestionar la memoria del sistema y el tiempo del procesos, gestionar todos los procesos, controlar las llamadas del sistema y las conexiones entre procesos y permitir a todo el software tener acceso al hardware, especialmente a los periféricos conectados al ordenador.

Es tal la importancia del Kernel a la hora de controlar el hardware que, de sus más de 28 millones de líneas de código, la mayor parte de él son drivers. Y esto, aunque es bueno para la compatibilidad, empieza a ser un problema para el rendimiento.

Kernel Linux

En condiciones normales, los usuarios en ningún momento interactúan con este. Mientras que los usuarios tienen un acceso limitado al hardware, el núcleo tiene acceso y control total sobre el mismo. Es el responsable de que todo funcione bien, que lo haga de forma segura, y de que no haya errores. Si ocurre un fallo con un proceso en el espacio de usuario, Linux sigue funcionando. E incluso puede intentar recuperar el sistema al tener control sobre el PC. Sin embargo, si ocurre un error en el espacio del Kernel, entonces todo el sistema deja de funcionar. Es lo que conocemos como el «Kernel Panic«, el equivalente al pantallazo azul en Linux.

Kernel panic

Versiones

Es cierto que las versiones actuales del Kernel no tienen nada que ver con las primeras de 1991. Sin embargo, este núcleo están en constante desarrollo. Y cada pocas semanas solemos ver nuevos lanzamientos. Pero no todos son igual de importantes, ya que depende en gran medida de su numeración.

Las versiones del Kernel Linux pueden tener 4 números que indican la versión: a.b.c.d

  • a indica la versión. Este número es el que menos cambia, ya que solo se suele dar el salto cuando hay cambios extremadamente grandes en el sistema. En toda su historia, solo ha cambiado 5 veces, en 2004, para la versión 1.0, en 2006, para la versión 2.0, en 2011, para la versión 3.0, en 2015, para la versión 4.0, y en 2019 para dar lugar a la versión actual, la 5.0.
  • b indica la subversión. Cuando se lanzan nuevas versiones, pero realmente son actualizaciones menores (nuevos drivers, optimizaciones, correcciones, etc), entonces en lugar de cambiar la versión, se cambia el número de la subversión.
  • c indica el nivel de revisión. Se suele cambiar este número, por ejemplo, cuando se introducen cambios menores, como parches de seguridad, correcciones de errores, etc.
  • d es el último subnivel de la versión. Apenas se utiliza, pero está reservado para que, si se lanza una versión con un fallo muy grave, se lance la nueva versión con este subnivel incluyendo exclusivamente la corrección de dicho fallo grave.

Descargar Kernel Linux 5.8

Todas las versiones del Kernel Linux son públicas y de código abierto. Podemos encontrarlas en este enlace. Pero no están compiladas, sino que son los propios usuarios quienes tienen que compilarlas para poder usarlas en su distribución. Y esta no es una tarea precisamente sencilla. Por suerte, las comunidades responsables del desarrollo de las distintas distribuciones suelen traernos versiones del Kernel compiladas, y optimizadas, que podemos instalar como un parche cualquiera.

Qué versión de Linux elegir

Cuando hablamos de software, siempre recomendamos tener la última versión de todo. Esta es la mejor forma de asegurarnos de que, por un fallo de seguridad, nuestro PC se pone en peligro. Con el núcleo de Linux es lo mismo, siempre se recomienda tener la última versión. Sin embargo, siempre hay que hacerlo con cuidado.

Ubuntu 20.04

Una de las razones por las que el Kernel es tan grande es porque no elimina nada. Por viejo que sea. Gracias a ello es posible seguir usando las últimas versiones de Linux en los primeros ordenadores donde se puso en funcionamiento por primera vez en 1991. Cada actualización lo que suele hacer es añadir controladores y cambiar funciones para optimizar el funcionamiento general del PC.

Pero puede ocurrir que una versión traiga un fallo que haga que nuestro PC no funcione correctamente, e incluso que el rendimiento no sea el esperado. En ese caso, simplemente con volver a instalar una versión anterior el sistema operativo debería volver a funcionar con normalidad. Aunque perderemos soporte para los componentes de hardware más nuevos.

Lo mejor, y más fácil para la mayoría, es ir actualizando el Kernel a medida que vamos actualizando la distribución desde sus repositorios. Así evitaremos estos problemas por «estar siempre a la última».

¿El Kernel es el sistema operativo?

El Kernel es una de las partes más importantes del sistema operativo. Pero no es la única necesaria para poder denominar a Linux, hoy en día, un sistema operativo como tal. Como hemos explicado, este núcleo tiene todos los controladores y todo lo necesario para poder controlar el software y permisos al usuario acceder a él. Pero, para que sea realmente útil, debe tener otros componentes por encima de él antes de llegar al usuario.

  • Controlador de demonios. Ya sea Init.d, Systemd, o cualquier otro software similar, es necesario tener un subsistema por encima del núcleo que se encargue de arrancar todos los procesos (daemons) necesarios para que el Kernel empiece a funcionar. Sin él no tenemos más que muchas líneas de código que no se ejecutan.
  • Los procesos. Los daemons, demonios, o más conocidos como procesos, son todos los componentes que se quedan cargados en la memoria del sistema (controlados por el kernel) y que permiten a Linux funcionar. El servidor gráfico, por ejemplo, es el demonio que controlará el escritorio.
  • Servidor gráfico. Conocido como X, es el encargado de poder ver los gráficos en la pantalla. Si vamos a usar Linux en modo texto, desde terminal, no es necesario. Pero si lo vamos a usar con escritorio, es necesario tener un x-server funcionando.
  • Escritorio. Como su nombre indica, el escritorio del ordenador, donde tendremos todos nuestros programas y donde se abrirán las ventanas. Hay muchos escritorios para Linux, como GNOME, KDE o LXDE. Cada uno con unas características, ventajas e inconvenientes propios.
  • Programas. Todo lo que ejecutemos desde el escritorio. Ya es la capa más elevada, y el punto a través del cual interactuamos con el ordenador.

systemd

Cuando el Kernel, y todo lo demás, funciona en concordancia, es cuando podemos hablar de sistema operativo. O lo que es lo mismo, de distribución Linux.