El nucli (kernel) de Linux: què és, què fa i com compilar-ne un
El nucli (kernel) és la peça central de qualsevol sistema operatiu: treballa amagat, però sense ell res no funcionaria. En aquest article t’explico què és, què fa, com saber quin tens i, si t’hi vols atrevir, com compilar-ne un de propi.
Una mica d’història
Els primers ordinadors executaven els programes directament sobre el maquinari, cosa que feia el desenvolupament complicat i limitat. A partir dels anys 60 van aparèixer els sistemes operatius i, amb ells, la idea d’un nucli: un programa privilegiat que controla el maquinari i el reparteix entre els altres programes. Unix (1969) en va ser un dels grans referents.
El nucli Linux el va començar Linus Torvalds el 1991 com un projecte personal, i avui és el nucli que fan servir servidors, telèfons Android, routers, el Raspberry Pi i la majoria de supercomputadors. Estrictament, «Linux» és només el nucli; la resta del sistema (shell, comandes, biblioteques) ve sobretot del projecte GNU i d’altres, per això de vegades se’n diu GNU/Linux.
Què és el nucli
El nucli fa d’intermediari entre el maquinari i les aplicacions. Gestiona els recursos de la màquina (CPU, memòria, discos, xarxa…) i ofereix als programes una manera segura i uniforme d’accedir-hi, les crides al sistema (system calls). Un programa no escriu directament al disc: demana al nucli que ho faci per ell.
Per protegir-se, el processador treballa en dos modes: el nucli s’executa en mode nucli (amb accés total al maquinari) i les aplicacions en mode usuari (amb accés limitat). Si una aplicació falla, el nucli la pot aturar sense que caigui tot el sistema.
Què fa el nucli
- Gestió de processos: crea, programa i atura els processos (programes en execució) i reparteix el temps de CPU entre ells perquè semblin funcionar alhora.
- Gestió de memòria: assigna i allibera la memòria física i virtual, fa servir l’intercanvi (swap) quan cal i impedeix que un procés llegeixi o trepitgi la memòria d’un altre.
- Gestió de dispositius: a través dels controladors (drivers), molts carregats com a mòduls, permet que les aplicacions facin servir discos, targetes de xarxa, USB… sense saber-ne els detalls.
- Sistemes de fitxers: organitza com es guarden les dades als discos (ext4, XFS, Btrfs, FAT…).
- Xarxa: implementa la pila TCP/IP, el tallafoc (netfilter) i l’encaminament.
- Comunicació entre processos: canonades, senyals, sòcols, memòria compartida…
- Seguretat: comprova permisos i usuaris, i aplica mecanismes com les capabilities, els namespaces i els cgroups (la base dels contenidors) o AppArmor i SELinux.
Linux és un nucli monolític modular: tot s’executa en mode nucli, però moltes parts (controladors, sistemes de fitxers) es poden carregar i descarregar en calent com a mòduls.
Com saber quina versió del nucli tens
La manera més directa és uname -r:
$ uname -r
6.18.39+rpt-rpi-v8 El fitxer /proc/version dona una mica més de detall, com el compilador amb què s’ha construït:
$ cat /proc/version
Linux version 6.18.39+rpt-rpi-v8 (serge@raspberrypi.com) (aarch64-linux-gnu-gcc-14 (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44) #1 SMP PREEMPT Debian 1:6.18.39-1+rpt1 (2026-07-29) Compte: lsb_release -a no mostra la versió del nucli, sinó la de la distribució. Són dues coses diferents:
$ lsb_release -a
Distributor ID: Debian
Description: Debian GNU/Linux 13 (trixie)
Release: 13
Codename: trixie Cap d’aquestes comandes necessita sudo. Per a la distribució també pots mirar /etc/os-release o hostnamectl, que mostra totes dues coses.
Compilar un nucli propi
Compilar el nucli permet activar o desactivar funcions, provar una versió més nova o aplicar pedaços. Ara bé, la gran majoria d’usuaris no ho necessiten: el nucli de la teva distribució ja ve ben configurat, rep actualitzacions de seguretat i inclou gairebé tots els controladors com a mòduls. Si només vols un nucli més recent, abans mira si la distribució l’ofereix (per exemple, els backports de Debian).
Si igualment vols fer-ho, aquests són els passos generals en un sistema Debian o Ubuntu:
1. Prepara-ho
Fes una còpia de seguretat i no desinstal·lis el nucli de la distribució: si el nou no arrenca, el podràs triar al menú de GRUB. Instal·la les eines de compilació:
sudo apt install build-essential bc bison flex libssl-dev libelf-dev libncurses-dev dwarves 2. Descarrega el codi font
Les versions estables es publiquen a kernel.org. Amb Git pots baixar només la darrera revisió d’una branca (canvia la versió per la que vulguis):
git clone --depth 1 --branch v6.18 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
cd linux 3. Configura’l
En lloc de partir de zero, aprofita la configuració del nucli que fas servir ara i accepta els valors per defecte per a les opcions noves:
cp /boot/config-$(uname -r) .config
make olddefconfig
make menuconfig # opcional: per activar o desactivar funcions A make menuconfig pots ajustar, per exemple, el model de preempció (Preemption Model), que afecta la latència del sistema, o la planificació de CPU per grups. Per veure com està configurat el teu nucli actual:
$ grep -E '^CONFIG_PREEMPT=|^CONFIG_FAIR_GROUP_SCHED|^CONFIG_HZ=' /boot/config-$(uname -r)
CONFIG_PREEMPT=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_HZ=250 4. Compila i instal·la
La compilació pot trigar des de minuts fins a hores, segons la màquina:
make -j$(nproc)
sudo make modules_install
sudo make install A Debian i Ubuntu, make install també genera l’initramfs i actualitza GRUB automàticament. Si no és el cas, fes-ho a mà amb sudo update-initramfs -c -k <versió> i sudo update-grub.
Una alternativa més neta en sistemes Debian és generar paquets .deb amb make -j$(nproc) bindeb-pkg i instal·lar-los amb dpkg -i: així el nucli queda registrat com qualsevol altre paquet i el pots desinstal·lar fàcilment.
5. Reinicia i prova
Reinicia, tria el nucli nou a GRUB si no és el predeterminat i comprova amb uname -r que és el que s’executa. Revisa dmesg i journalctl -b -p err per si hi ha errors.
Al Raspberry Pi el procés és diferent (no hi ha GRUB i el nucli s’instal·la a /boot/firmware); la documentació oficial de Raspberry Pi explica com fer-ho.
Conclusió
El nucli és el cor del sistema: reparteix els recursos, controla el maquinari i manté els programes separats i segurs. Saber quin tens i com funciona t’ajudarà a entendre molts problemes (un controlador que no carrega, un kernel panic…). I compilar-ne un de propi és una manera excel·lent d’aprendre, sempre amb un nucli de reserva a mà.
Posts relacionats
Esta web usa cookies.