Il sistema operativo Linux ha una struttura a strati (o a cipolla). Lo stato più esterno quello più lontano dall'hardware del computer dialoga con lo strato immediatamente più interno e così via fino a raggiungere lo strato più interno, quello più vicino all'hardware del computer, che prende nome di nucleo o kernel.
il nucleo è il cuore  di Linux ed è l'insieme di programmi che si occupano della gestione della memoria, del processore e dei processi. Al nucleo vengono passate le richieste dei livelli più esterni ed è il nucleo che si occupa del reale funzionamento del computer.
Procedendo dal kernel verso l'esterno, troviamo l'interprete dei comandi o shell.
La Sheòò permette il dialogo con il nucleo attraverso comandi interattivi che possono essere impartiti direttamente dall'utente, utilizzando un'interfaccia testuale detta console.

La shell possiede un linguaggio molto simile ad un vero e proprio linguaggio di programmazione, che permette di creare file di comandi (shell script) ossia (nuovi comandi) per l'utente.
Linux inoltre dispone di diverse shell alternative; fra le più utilizzate ricordiamo la BASH e la CSH.
Al livello più esterno troviamo l'interfaccia grafica cieè un insieme di funzionalità grafiche che permettono all'untente un'interazione più semplice e naturale.