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.
Historia del Kernel de Linux
El núcleo de Linux vio la luz por primera vez gracias a Linus Torvalds en 1991, cuando era estudiante de ciencias de la computación en Finlandia. La idea inicial de Tornalds era crear un núcleo de sistema operativo completamente gratuito similar a Unix y se basó en un clon de Unix (Mimix). No tenía en mente
La primera versión de Linux, 0.0.1, tenía 10.239 líneas de código y tal fue el éxito que tuvo con su lanzamiento, que rápidamente muchos desarrolladores y s comenzaron a colaborar con el proyecto a través de otros proyectos de software libre, una colaboración que se mantiene en la actualidad donde miles de programadores siguen colaboración de forma totalmente altruista.
La versión 1.0 del Kernel de Linux se lanzó el 14 de marzo de 1994 y tenía 176.250 líneas de código. Un año después, con el lanzamiento de la versión 1.2, el Kernel de Linux tenía más de 300.000 líneas de código. Conforme iban pasando los años, Linux seguía recibiendo el cariño de los desarrolladores lo que le permitió seguir aumentando las líneas de código que lo formaban, pasando de los casi 2 millones de líneas de código en 1999 en la versión 2.2.13 a los 13,5 millones de líneas de código con el lanzamiento de la versión 2.6.28.
La última versión disponible actualmente del Kernel de Linxu, 6.6.1, está formada por más de 30 millones de líneas de código, número que se seguirá incrementándose en los próximos años conforme este siga actualizándose.
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 proceso, gestionar todos los procesos, controlar las llamadas del sistema y las conexiones entre procesos y permitir a todo el software tener 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.
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á 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. En noviembre de 2023, la última versión del Kernel de Linux es la número 6.6.1, pero ya se está trabajando en la próxima actualización que se implementará en los próximos meses y cuyo número es 6.7.
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 6 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, en 2019 para dar lugar a la versión actual, la 5.0 y en 2022 para dar la bienvenida a la versión 6.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.
Ahora, lo que haremos será apuntar el nombre del núcleo, hasta la barra / que aparece, y ejecutar el siguiente comando para borrar dicho núcleo:
sudo apt remove [nombre_kernel]
Confirmamos la eliminación, y esperamos a que se complete el proceso. Tendremos que repetirlo todas las veces que queramos, una por cada núcleo que queramos eliminar.
En el caso de las distros basadas en Arch, tendremos que eliminar estos núcleos de forma similar, pero usando el gestor de paquetes Pacman de la siguiente manera:
sudo pacman -S kernel-name=x.x.x kernel-name-headers=x.x.x
Igual que en Fedora, tendremos que hacerlo con RPM:
rpm -qa kernel-core
sudo dnf remove kernel-core-x.x.x-xxx.fcxx.x86_64
En último lugar, el que más fácil nos lo pone es Linux Mint. Esta distro, basada en Ubuntu, viene de serie con una serie de herramientas pensadas para facilitar la vida a los s. Y, entre ellas, la más interesante es el gestor de actualizaciones del sistema operativo. Dentro de este gestor de actualizaciones encontraremos un apartado especialmente diseñado para configurar los núcleos, elegir el que queremos usar, y eliminar los que no vayamos a utilizar.
Actualizar el GRUB
Independientemente del método que hayamos usado, es importante actualizar el GRUB para acabar. Esto se debe a que, como hemos explicado, el gestor de arranque guarda una copia de todos los núcleos para permitirnos arrancar en otra versión desde sus opciones avanzadas. La opción por defecto cargará el núcleo principal, pero las otras opciones seguirán estando ahí.
Para actualizarlo, y eliminar las referencias a las versiones que ya no usamos, simplemente ejecutaremos el siguiente comando en un terminal:
sudo update-grub
Cuando acabe, podremos reiniciar el ordenador, entrar en GRUB mientras carga y ver como no tenemos más núcleos antiguos.
Qué hacer si se han borrado todos los Kernel
Hemos indicado que es importante asegurarnos de dejar al menos un núcleo, el más actualizado, para poder arrancar. Pero no seremos ni los primeros ni los últimos que, por despiste, los hemos eliminado todos. Y ahora la distro no arranca. ¿Qué podemos hacer?
Si tenemos ya cierto nivel de conocimientos vamos a poder recuperar nuestro Linux sin tener que formatear. Para ello, lo primero que haremos será bajar la ISO de Ubuntu, arrancar el sistema Live, montar el disco duro o partición donde teníamos instalado el sistema, y empezar a trabajar con él usando el comando «chroot».
Una vez tengamos control sobre el terminal de nuestro agonizante Linux, debemos ejecutar el siguiente comando para instalar la versión genérica del núcleo:
apt-get install linux-image-generic
Actualizamos GRUB de nuevo y listo. Cerramos, reiniciamos el ordenador y listo. Eso sí, si al arrancar seguimos entrando a memtest, entonces debemos ejecutar este comando para reconfigurar el sistema:
dpkg --configure -a[
¿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 acceder a él. Pero, para que sea realmente útil, debe tener otros componentes por encima de él antes de llegar al .
- 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.

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.