What are Ubuntu kernels?

Kernels en Ubuntu: La Guía Definitiva

12/07/2005

Valoración: 4.67 (5339 votos)

En el vasto universo de los sistemas operativos, pocos componentes son tan cruciales y a la vez tan misteriosos para el usuario promedio como el kernel. En el caso de Ubuntu, una de las distribuciones de Linux más populares del mundo, el kernel no es solo una pieza de software, es el corazón que bombea vida a todo el sistema. Pero, ¿sabías que no todos los kernels son iguales? Existe un mundo más allá de las actualizaciones estándar que recibes, un territorio diseñado para desarrolladores y entusiastas: los kernels "mainline". En este artículo, desmitificaremos el kernel de Linux y Ubuntu, te enseñaremos las diferencias clave y te guiaremos paso a paso en el proceso de instalar una versión upstream, una herramienta poderosa para la depuración y las pruebas.

What are Ubuntu kernels?
These kernels are made from unmodified kernel source but using the Ubuntu kernel configuration files. These are then packaged as Ubuntu .deb files for simple installation, saving you the time of compiling kernels, and debugging build issues. These kernels are not supported and are not appropriate for production use.
Índice de Contenido

El Cerebro de la Operación: ¿Qué es el Kernel de Linux?

Imagina tu ordenador como un cuerpo. El hardware (CPU, memoria, disco duro, tarjeta gráfica) son los órganos, y las aplicaciones (navegador, editor de texto, juegos) son las acciones que quieres realizar. El kernel de Linux es el cerebro que conecta y dirige todo. Es el núcleo fundamental del sistema operativo Ubuntu. Su principal misión es actuar como un traductor y gestor entre el software y el hardware.

Cuando abres un programa, el kernel se encarga de asignarle memoria y tiempo de procesador (CPU). Cuando guardas un archivo, el kernel gestiona la comunicación con el disco duro. Cuando te conectas a internet, el kernel maneja la tarjeta de red. En resumen, es una de las primeras piezas de software que se cargan al arrancar el ordenador y su función es administrar todos los recursos del sistema de manera eficiente y segura, permitiendo que tus programas funcionen sin problemas, sin necesidad de saber los detalles específicos del hardware subyacente.

Kernels de Ubuntu vs. Kernels Mainline: La Gran Diferencia

Por defecto, tu sistema Ubuntu utiliza un kernel proporcionado y mantenido por Canonical, la empresa detrás de Ubuntu. Estos kernels no son una copia exacta del kernel oficial de Linux (conocido como "mainline" o "upstream"). En su lugar, son versiones específicas del kernel mainline a las que el equipo de Ubuntu aplica parches y modificaciones para mejorar la compatibilidad con cierto hardware, aumentar la estabilidad y reforzar la seguridad dentro del ecosistema de Ubuntu.

Entonces, ¿qué son los kernels mainline? Son las versiones puras, sin modificar, tal como las publica Linus Torvalds y el equipo de desarrollo del kernel de Linux. Ubuntu ofrece compilaciones de estos kernels para un propósito muy específico: ayudar a los desarrolladores y usuarios avanzados a identificar problemas. Si un error ocurre con el kernel de Ubuntu pero no con el kernel mainline, es probable que el problema resida en los parches específicos de Ubuntu. Por el contrario, si el error persiste en ambos, es un problema del kernel original que debe ser reportado a los desarrolladores principales.

Es crucial entender que los kernels mainline no son para uso en producción. No reciben soporte oficial de Canonical ni actualizaciones de seguridad. Son herramientas de diagnóstico, no reemplazos para el día a día.

What are Ubuntu kernels?

Tabla Comparativa: Kernel de Ubuntu vs. Kernel Mainline

CaracterísticaKernel de Ubuntu (Estándar)Kernel Mainline (Upstream)
Propósito PrincipalUso diario, estabilidad, producción.Depuración, pruebas, diagnóstico de errores.
SoporteSoporte completo por parte de Canonical.Sin soporte de ningún tipo. Úsalo bajo tu propio riesgo.
Actualizaciones de SeguridadRecibe parches de seguridad de forma regular.No recibe ninguna actualización de seguridad.
ModificacionesContiene parches y configuraciones específicas de Ubuntu.Código fuente puro y sin modificar del kernel de Linux.
Recomendado paraTodos los usuarios.Desarrolladores, testers y usuarios avanzados.

Aventura en la Línea Principal: Guía para Instalar un Kernel Mainline

Si has decidido que necesitas probar un kernel mainline para diagnosticar un problema, aquí te explicamos cómo hacerlo de forma segura. Sigue estos pasos con atención.

Paso 1: Preparando el Terreno

Antes de instalar un nuevo kernel, debes asegurarte de que tu sistema esté listo. Los kernels mainline pueden no ser compatibles con módulos propietarios o de terceros. Esto incluye, comúnmente, los controladores gráficos de NVIDIA, los de ciertas tarjetas WiFi (como bcmwl) o los módulos de VirtualBox. Si usas alguno de estos, es fundamental que los desinstales primero. De lo contrario, la instalación del nuevo kernel podría fallar o tu sistema podría no arrancar correctamente.

Paso 2: Eligiendo los Archivos Correctos

Los kernels mainline se encuentran en el archivo PPA de Canonical. Los directorios están organizados por versión. Dentro de cada versión, encontrarás archivos para diferentes arquitecturas (como amd64 para sistemas de 64 bits). Además, verás dos variantes principales:

  • Generic: El kernel de propósito general, adecuado para la mayoría de los sistemas de escritorio y servidores.
  • Lowlatency: Un kernel optimizado para aplicaciones que requieren una respuesta en tiempo real, como la producción de audio profesional, donde la latencia mínima es crítica.

Para una instalación típica en un PC de 64 bits, necesitarás descargar varios archivos .deb correspondientes a la versión que quieres probar. Por ejemplo, para un kernel genérico, buscarías los archivos que contienen:

  • linux-headers-..._all.deb
  • linux-headers-...-generic_..._amd64.deb
  • linux-image-unsigned-...-generic_..._amd64.deb
  • linux-modules-...-generic_..._amd64.deb

Paso 3: Descarga e Instalación

Una vez que hayas descargado todos los archivos .deb necesarios en una misma carpeta, abre una terminal en esa ubicación y ejecuta el siguiente comando para instalarlos todos a la vez:

sudo dpkg -i *.deb

Este comando intentará instalar todos los paquetes .deb en el directorio actual. Presta atención a la salida en la terminal para asegurarte de que no haya errores.

Paso 4: El Momento de la Verdad: Reiniciar

Si la instalación se completó sin errores, reinicia tu ordenador. Justo cuando arranque, mantén presionada la tecla Shift para acceder al menú de GRUB. Allí, selecciona "Opciones avanzadas para Ubuntu". Verás una lista de los kernels instalados en tu sistema, incluido el nuevo kernel mainline que acabas de instalar. Selecciónalo y presiona Enter para arrancar con él.

¡Cuidado! Posibles Obstáculos en el Camino

La instalación de un kernel mainline no siempre es un camino de rosas. Aquí tienes algunos de los problemas más comunes y cómo solucionarlos.

What is a Linux kernel?
At the core of the Ubuntu operating system is the Linux kernel, which manages and controls the hardware resources like I/O (networking, storage, graphics and various user interface devices, etc.), memory and CPU for your device or computer.

Conflictos con VirtualBox

Si tienes VirtualBox instalado, es muy probable que la instalación falle con un error relacionado con DKMS (Dynamic Kernel Module Support). Como se mencionó antes, la solución es desinstalar completamente VirtualBox antes de intentar instalar el kernel mainline.

Dependencias Insatisfechas

A veces, un kernel mainline muy reciente puede depender de paquetes más nuevos de los que tienes en tu versión de Ubuntu (especialmente si usas una versión LTS). Verás un error que dice que falta un paquete o que se necesita una versión superior (por ejemplo, `libssl1.1`). Si el paquete no está instalado, instálalo con `sudo apt install nombre-del-paquete`. Si ya lo tienes pero la versión es demasiado antigua, la única solución es actualizar tu instalación de Ubuntu a una versión más reciente.

Vuelta a la Normalidad: Cómo Desinstalar un Kernel Mainline

Una de las ventajas es que los kernels mainline se instalan junto a los kernels de Ubuntu, no los reemplazan. Esto significa que puedes tener varios instalados y elegir cuál usar al arrancar. Cuando hayas terminado tus pruebas y quieras eliminar un kernel mainline, el proceso es sencillo.

Primero, identifica los paquetes exactos que instalaste con el siguiente comando:

dpkg -l | grep "linux-[a-z]*\-" | grep <version-number>

Reemplaza `<version-number>` con la versión del kernel que quieres eliminar (por ejemplo, 5.15.0). Esto te mostrará una lista de los paquetes `linux-headers`, `linux-image` y `linux-modules` asociados.

Luego, para desinstalarlos, usa el comando `apt purge` con los nombres de todos los paquetes:

sudo apt purge <paquete1> <paquete2> <paquete3>

Preguntas Frecuentes (FAQ)

¿Los kernels mainline tienen soporte oficial?
No, categóricamente no. Son compilaciones automáticas proporcionadas "tal cual", sin ningún tipo de garantía ni soporte por parte de Canonical o la comunidad de Ubuntu.

Is there a correlation between Ubuntu version and Linux kernel version?
You can get the list of the Ubuntu versions and their corresponding kernels from Wikipedia: Thank you for including the "or newer" comments. It seem there is not always a 1:1 correlation between Ubuntu version and Linux kernel major version. I recently obtained a Trusty Tahr ISO via ubuntu.com and installed it into a VM. The kernel version was 4.2.

¿Reciben actualizaciones de seguridad?
No. Una vez que instalas una versión específica de un kernel mainline, esa versión nunca recibirá un parche de seguridad. Usarlos a largo plazo es un riesgo significativo.

¿Puedo usar un kernel mainline en un entorno de producción?
No, es una idea terrible. La falta de soporte, pruebas exhaustivas en el ecosistema Ubuntu y actualizaciones de seguridad los hace completamente inadecuados para cualquier sistema que requiera estabilidad y seguridad.

¿Cómo sé qué versión del kernel de Linux usa mi versión de Ubuntu?
Puedes encontrar esta información en el archivo `.manifest` de la imagen de instalación de tu versión de Ubuntu o buscando en la web `packages.ubuntu.com` para tu versión de Ubuntu (por ejemplo, "Bionic" para 18.04) en la sección de kernels.

¿Qué diferencia hay entre un kernel "generic" y uno "lowlatency"?
El kernel "generic" está equilibrado para un buen rendimiento en una amplia variedad de tareas, desde la navegación web hasta el trabajo de oficina. El kernel "lowlatency" está ajustado para minimizar el retraso (latencia) en las respuestas del sistema, lo cual es vital para profesionales del audio o en aplicaciones de computación de alto rendimiento donde cada milisegundo cuenta.

Si quieres conocer otros artículos parecidos a Kernels en Ubuntu: La Guía Definitiva puedes visitar la categoría Juegos.

Subir