Il kernel è il cuore del sistema operativo, ovvero un software che permette il funzionamento del sistema mettendo a disposizione degli altri programmi un insieme minimo di system call (routine, funzioni) per colloquiare con l’hardware.
Il kernel di GNU/Linux è costituito soltanto da un file, ma ha la possibilità di appoggiarsi a file di contorno, detti moduli, per la gestione di componenti specifici che devono poter essere attivati e disattivati durante il normale funzionamento del sistema.
Un processo è l’istanza di esecuzione di un determinato programma. Per poter fare iniziare l’esecuzione di un programma, si ordina al sistema di eseguire il file (eseguibile) che contiene le relative istruzioni, specificandone il nome sulla riga di comando. È bene sottolineare il fatto che per lanciare l’esecuzione del file, o più brevemente lanciare (o avviare) un file, è necessario che tale file sia identificato come file eseguibile53. Dunque, l’avvio di tale file comporta la creazione di un processo che esegue le istruzioni contenute nel file stesso.
Poiché più processi possono essere eseguiti contemporaneamente54 sullo stesso sistema, il kernel gestisce l’utilizzo della CPU da parte dei processi in modo tale che questa possa essere utilizzata da ogni processo, a rotazione, per brevi intervalli di tempo (time sharing).
I concetti qui illustrati saranno trattati più in dettaglio nel cap. 7.