Se state leggendo questo articolo, c’è una buona probabilità che abbiate incontrato i termini shell, sh, bash ecc. in passato. Questi termini possono confondere e poiché sono strettamente correlati, il problema è ancora più grave. Così ho deciso di scrivere questo post con l’obiettivo di provare a spiegare le differenze tra loro.
Shell vs Kernel
Prima di andare avanti è importante capire cosa significano i termini shell e kernel.
Kernel
Il kernel è il centro del sistema operativo. È responsabile di fare cose come interagire con l’hardware, fare I/O su file e generare processi.
Shell
La shell funge da interfaccia tra l’utente e il kernel. Tecnicamente parlando, una shell è un interprete della linea di comando, cioè il programma che interpreta il comando inserito nell’emulatore di terminale (modalità interattiva) o elabora gli script di shell (file di testo contenenti comandi).