Per als usuaris ocasionals i els fanàtics menys afortunats, Linux és un sistema operatiu. Per als puristes, però, el títol "Linux" està reservat per al nucli que alimenta el sistema operatiu. Si teniu curiositat quant al que és el nucli de Linux, responguem aquesta pregunta amb un ull al nou usuari.
Modes
Abans d'explicar el que és un nucli, és important entendre els termes "mode d'usuari" i "mode nucli". El mode d'usuari quan s'executa el codi no té cap capacitat per accedir directament al maquinari o a la memòria de referència. Per accedir al maquinari i la memòria, el codi que s'executa en el mode d'usuari ha de delegar instruccions a les interfícies de programació d'aplicacions del sistema (API). El mode del nucli és quan s'executa el codi té accés sense restriccions a tot el maquinari i està reservat per a les funcions més confiables d'un sistema operatiu.
Què és un nucli?
Tots els sistemes operatius tenen un kernel. Windows, MacOS, iOS, Android, Chrome OS i Linux tenen un sistema de baix nivell que s'encarrega d'interconnectar totes les aplicacions amb el maquinari físic de l'ordinador. Sense el nucli, cap de les vostres aplicacions podria fer ús de l'ordinador físic; aplicacions com Firefox, Chrome, LibreOffice, MS Office o Outlook no funcionarien. El nucli també és responsable de permetre que els processos d'intercanvi d'informació utilitzin el que s'anomena Interprocess Communication (IPC).
Hi ha (en general) tres tipus de kernels:
- Grans monolítics: aquests nuclis inclouen la CPU, la memòria, l'IPC, els controladors del dispositiu, la gestió del sistema d'arxius i les trucades del servidor del sistema. També és responsable de lliurar la memòria del sistema lliure a les aplicacions. Aquest tipus de nuclis solen tenir un millor accés al maquinari i a la multitarea.
- Microkernels: Microkernels pren un enfocament minimalista i només gestionen la CPU, la memòria i l'IPC.
- Grans híbrids: Els nuclis híbrids tenen la capacitat de decidir el que volen executar tant en l'usuari com en el mode nucli. Tot i que això proporciona el millor dels dos mons, requereix molt més dels fabricants de maquinari per crear controladors que serveixin d'interfície entre codi executat i maquinari.
Linux utilitza un codi obert, Monolithic Kernel, mentre que MacOS i Windows utilitzen els Kernels híbrids. El kernel de Linux va ser concebut el 1991 per Linus Torvalds. Fins avui, el senyor Torvalds continua sent el desenvolupador principal del nucli Linux, mentre que els desenvolupadors de tot el món contribueixen al nucli de Linux. De fet, s'estima que prop de 10.000 desenvolupadors, de més de 1.000 empreses, han contribuït al nucli de Linux (ja que el seguiment va començar el 2005).
On és el nucli?
Si obriu una finestra de terminal i emet la comanda ls / boot, veureu un fitxer anomenat vmlinuz-VERSION (On VERSION és el nom o número de la versió). El fitxer vmlinuz és el nucli Linux d'arrencada real, i el "z" indica que el nucli està comprimit; així que en lloc de vmlinux tenim vmlinuz.

Dins del directori / boot hi ha altres fitxers importants del nucli, com ara initrd.img-VERSION, system.map-VERSION i config-VERSION (On VERSION és un nom o un número de versió). Aquests altres fitxers tenen els següents propòsits:
- initrd: s'utilitza com un petit disc RAM que extreu i executa el fitxer del nucli actual.
- system.map: utilitzat per a la gestió de la memòria, abans de la càrrega del kernel.
- configuració: indica al nucli quines opcions i mòduls es carregaran.
Mòduls
Sense mòduls, el nucli no seria molt útil. Els mòduls activen eficaçment els controladors necessaris per comunicar-se amb el maquinari sense consumir tota la memòria del sistema. Els mòduls també afegeixen funcionalitat al nucli, com ara comunicar-se amb perifèrics, administrar sistemes de fitxers, seguretat, etc. És possible llistar, afegir i treure mòduls al nucli amb les següents ordres:
- lsmod mostrarà tots els mòduls del kernel actualment carregats.
- insmod carregarà un mòdul del nucli al nucli que s'executi.
- rmmod descarregarà un mòdul del nucli que s'executa.
Així que veieu, amb l'ajuda d'alguns ordres simples, el nucli de Linux pot ser bastant flexible.
El nucli actual
A partir d'aquest escrit, el kernel estable de Linux és de 4.18.5, però no totes les distribucions de Linux inclouran l'últim kernel. De fet, la distribució de l'escriptori bàsic OS actualitzat executa el kernel 4.15.0-30. Què significa aquest número? En el cas de l'última versió del kernel en OS primari, significa:
- 4 és la versió principal
- 15 és la versió menor
- 0-30 és la revisió
També és possible descarregar versions diferents del kernel de Linux des del kernel.org i compilar-lo tu mateix. La compilació del nucli de Linux és una tasca millor deixada per a aquells que realment saben què estan fent. Un nucli compilat incorrectament pot fer que un sistema no pugui arrencar. Per tant, tret que estigueu a punt de submergir-se en la difícil tasca de compilar codi en aquest nivell, utilitzeu el nucli per defecte que s'envia i actualitza sobre la vostra distribució d'elecció.













