En nuestra entrée antérieurelamada “El Kernel de Linux: Lo basique sobre el núcleo” abordamos algunas bases teóricas esenciales sobre los Kerneles de los Sistemas Operativos, en général; y el Noyau de Linuxen particulier.
Y como expresamos en la misma, en esta, estaremos completando dichas bases teóricas esenciales avec d’autres concepts et informations supplémentairesademás de mostrar el procedimiento actual para lograr « compiler un noyau » de Linux desde cero, sobre una Distribution Debian GNU/Linux 11 (Bullseye) o basada en ella.
Y, antes de iniciar la lectura de este post sobre « compiler un noyau » de Linux en général, dejaremos unos enlace un anteriores publicaciones relacionadas para su posterior lecture :
Article lié :
Le noyau de Linux : la base du noyau
Article lié :
En lo que va del mes ya se dieron a conocer varias vulnerabilidades encontradas in el kernel de Linux
Compiler un Kernel : Tutoriel de compilation
¿Qué significa compilar un programa?
Básicamente, este proceso técnico (también llamado empaquetamiento) consiste en lograr la conversion del código fuente de un programa o porción de un software, desde su origen (lenguaje de programación usado para escribirse) hasta un producto lisible (lenguaje de programación de alto nivel interpretable ) par un ordenador.
Es decir, lograr su transformación desde su código fuente hasta volverlo un programa ejecutable y funcional, mediante el uso de un procesador (software compilador) para la conversion del lenguaje de programación utilizado hacia un código de tipo binario y ensamblador.
Ventajas et desventajas de compilar de cero un Kernel de Linux
Cuando compilamos y configuramos personalizadamente, desde cero, un Kernel específico para un determinado ordenador, podemos obtener las siguientes ventajas :
- Lograr un meilleur rendement et une consommation mineure de CPU.
- Obtenez une meilleure optimisation et une consommation mineure de mémoire RAM.
- Améliorer la capacité d’adaptation et la compatibilité du système opérationnel.
- Augmenter l’efficacité et la productivité du système opérationnel.
Mientras que, por el contrario, pudiéramos generar las siguientes Desventajas :
- Fallas de operatividad y disponibilidad de los recursos y servicios deseados sobre el ordenador empleado, debido a malas configuraciones y problemas ocasionados duringe la compilación.
- Un trabajo constant, largo y tedioso al principio para generarlo, y luego a posteriori, para mantenerlo actualizado de forma manual. El cual puede ir, desde minutos a horas, dependiendo del hardware empleado.
- Largas horas de estudio y pruebasya que, se necesita un alto nivel de conocimiento tanto sobre las opciones de configuración disponibles en el Kernel como del ordenador (hardware final), donde se ejecutará.
Catégories de noyaux disponibles
Para compiler un noyau, lo primero que debemos saber es qué Kernel escoger. Para ello, debemos ir al site web officiel de los Kerneles, y escoger uno entre les catégories existantes. Las cuales son las suivantes:
- Línea principal de desarrollo (Mainline): Esta categoría incluye aquellos Kerneles en etapa de desarrollo, por lo que, contienen nuevas características y funciones que deben probarse antes de que se puedan poner en una versión estable. Estos son mantenidos y liberados directamente por Linus Torvalds, y suelen publicarse cada 2 o 3 meses en promedio.
- Stable (Stable): Esta categoría incluye a aquellos Kerneles que, luego de pasar las pruebas del largo proceso de desarrollo, se convierten en estables, por lo que, solo están sujetos a correcciones a través de un mantenedor oficial designado. Además, solo tienen pocas versiones de correction d’erreurs hasta que el siguiente Mainline est disponible.
- Largo plazo (long terme): Esta categoría incluye a aquellos Kerneles que, luego de pasar las pruebas del largo proceso de desarrollo, se convierten en estables, pero cuentan con un soporte de corrections de errores y mantenimiento por un tiempo sumamente largo (años). Razón por la cual, se le aplican correcciones de errores importantes, las cuales pueden llegar a ser muy frecuentes.
Comment compiler un noyau et une distribution GNU/Linux Debian Bullseye ?
Habiendo elegido una version spécifique de Kernelen la web oficial, y ya conociendo (copiando) su route de déchargement a través del boton Tarball de la misma, solo queda realizar el siguiente procedimiento, el cual mostraremos tomando como ejemplo, el Kernel de Linux version 6.0.8 stable:
Etapa 1
cd /usr/src
wget -c https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.0.8.tar.xz
sudo unxz linux-6.0.8.tar.xz
sudo tar xvf linux-6.0.8.tar
sudo ln -s linux-6.0.8 linux
cd /usr/src/linux
sudo make clean && make mrproper
sudo cp /boot/config-`uname -r`* .config
make menuconfig
Al ejecutar este último comando, se inicia el « Menu de configuration du noyau »donde se podrá configurer (personnaliser) les paramètres de sa préférence ou de sa nécessité. Además, aquí es fondamental no olvidar que, es necesario marquer ou masquer l’option du noyau 64 bits, dependiendo de lo que se desee o requiera. Y aussi, luego de haber realizado todos los cambios hechos, se debe presionar el Botón Salvar (Enregistrer) y luego el Botón Salir (Sortie).
Etapa 2
Llegado a este punto quedan 2 chemins possibles un tomar :
Installation individuelle du noyau
sudo make
sudo make modules_install
sudo make install
sudo update-grub; sudo update-grub2; sudo update-initramfs -u
sudo apt clean; sudo apt autoclean; sudo apt autoremove; sudo apt remove; sudo apt purge
Installation du noyau et génération d’archives .deb
Para ejecutar este paso, es relevante contar con la instalación del paquete llamado Kernel-package. Pour cela, la procédure est la suivante et commence la suivante sous la forme suivante :
sudo wget -c http://ftp.us.debian.org/debian/pool/main/k/kernel-package/kernel-package_13.018+nmu1~bpo9+1_all.deb
sudo apt install ./kernel-package_13.018+nmu1~bpo9+1_all.deb
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
cd /usr/src
sudo dpkg -i *.deb
En cas de que, durante el proceso de compilation, se obtenga un erreur relacionado con los certificados del Kernelqueda como opción el poder ejecutar la suivante orden de comando para solucionarlo automatizadamente:
sed -i '/CONFIG_SYSTEM_TRUSTED_KEYS/s/^/#/g' .config
Sí, todo ha terminado bien, solo queda reiniciar nuestro ordenador y probar como levanta nuestro sistema operativo con el nuevo Kernel. Tal como se muestra él antes y después, en los siguientes pantallazos :
Antes de l’installation du noyau
Après l’installation du noyau
Article lié :
Fast Kernel Headers, un joint de parches qui accélère la compilation du Kernel en un 50-80%
Article lié :
Kerla : un nouveau noyau écrit en Rust et compatible avec l’ABI de Linux
CV
En resumen, esperamos que este tutorial sea de mucha utilidad, tanto para utilisateurs avancés viens un Desarrolladores de Distros ou Respines. Los cuales, suelen requerir « compiler un noyau » especifico sobre un Sistema Operativo GNU/Linux actualmente instalado o uno que se esté generando desde cero, para lograr incorporar, un mejor rendimiento y optimización sobre un hardware específico. Majormente, con el objetivo de lograr, un petite consommation de CPU et de mémoire RAM.
Aunque, si alguno conoce alguna otra útil forma de realizar dicho procedimiento o conoce alguna suggestion, recommandation ou correction a lo aquí aportado, bienvenido es a hacerlo a través de los comentarios. Y sí, simplemente te ha gustado esta publicación, no dejes de commentarla y de compartirla con otros. Además, recuerda visitar nuestra « page d’accueil » para explorar más noticias, además de unirte a nuestro canal oficial de Télégramme de DesdeLinuxo este groupe para más información sobre el tema de hoy.