Introducción
El kernel de Linux es la base de los sistemas operativos similares a Unix. El núcleo es responsable de la comunicación entre el hardware y el software y la asignación de los recursos disponibles.
Todas las distribuciones de Linux se basan en un kernel predefinido. Pero, si desea deshabilitar varias opciones y controladores o probar parches experimentales, debe compilar un kernel de Linux.
En esta guía paso a paso, aprenderá a crear y compilar un kernel de Linux desde cero.
Requisitos previos
- Un sistema que ejecuta Linux
- Acceso a la terminal/línea de comando
- Una cuenta de usuario con sudo/root privilegios
- 12 GB de espacio disponible en el disco duro
Creación del núcleo de Linux
El proceso de creación de un kernel de Linux requiere siete sencillos pasos para completarse. Sin embargo, el procedimiento requiere una cantidad significativa de tiempo para completarse, dependiendo de la velocidad del sistema.
Siga los pasos a continuación para compilar el kernel de Linux más reciente al momento de escribir este artículo.
Paso 1:descarga el código fuente
1. Visite el sitio web oficial del kernel y descargue la última versión del kernel. El archivo descargado contiene un código fuente comprimido.
2. Abra la terminal y use el comando wget para descargar el código fuente del kernel de Linux:
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.6.tar.xz
El resultado muestra el mensaje "guardado" cuando se completa la descarga.
Paso 2:extraiga el código fuente
Cuando el archivo esté listo, ejecute el comando tar para extraer el código fuente:
tar xvf linux-5.9.6.tar.xz
La salida muestra el código fuente del kernel extraído:
Paso 3:Instale los paquetes necesarios
Instale paquetes adicionales antes de construir un kernel. Para hacerlo, ejecute este comando:
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
El comando que usamos arriba instala los siguientes paquetes:
Paquete | Descripción del paquete |
git | Rastrea y hace un registro de todos los cambios durante el desarrollo en el código fuente. También permite revertir los cambios. |
fakeroot | Herramienta de empaquetado que crea un entorno raíz falso. |
build-essential | Instala herramientas de desarrollo como C, C++, gcc y g++. |
ncurses-dev | Biblioteca de programación que proporciona API para los terminales basados en texto. |
xz-utils | Proporciona una rápida compresión y descompresión de archivos. |
libssl-dev | Admite SSL y TSL que encriptan datos y hacen que la conexión a Internet sea segura. |
bc (Calculadora básica) | Un lenguaje de secuencias de comandos matemático que admite la ejecución interactiva de instrucciones. |
flex (Generador de analizador léxico rápido) | Genera analizadores léxicos que convierten caracteres en tokens. |
libelf-dev | Emite una biblioteca compartida para administrar archivos ELF (archivos ejecutables, volcados del núcleo y código objeto) |
bison | Generador de analizador GNU que convierte la descripción gramatical en un programa C. |