La shell: cosa è, come è fatta

Molti termini informatici hanno, non a caso, significati che sono direttamente correlati a quelli delle rispettive parole d'uso comune.
Il "kernel" di un sistema operativo è il nucleo, la parte interna, il nocciolo, quello, in termini informatici, che si occupa di lavorare a basso livello e gestire l'hardware e le sue risorse, la "shell", al contrario, è il guscio, la conchiglia, la parte esterna, quella a contatto con il mondo esterno, l'utilizzatore di un computer.

La shell è quindi l'interfaccia (testuale) tramite la quale l'utente può operare ed interagire con il sistema.
La shell, tecnicamente, è un normale programma che interpreta ed esegue i comandi dell'utente (viene chiamata anche Command Interpreter) permettendogli di eseguire altri programmi che accedono alle risorse hardware della macchina tramite le chiamate di sistema offerte dal kernel.

Su un sistema Unix la shell è fondamentale per moltissime attività , che vanno oltre la semplice interattività  con l'utente, avendo diverse modalità  funzionali:
- USO INTERATTIVO, il sistema attende i comandi digitati dall'utente, che possono redirezionare input ed output, è quello che normalmente si utilizza dopo il login e a cui ci si riferisce quando si parla di usare una shell;
- CONFIGURAZIONE della propria sessione, con cui definire variabili e parametri che vengono utilizzati in ogni interazione dell'utente con la macchina, viene fatto negli script di inizializzazione;
- PROGRAMMAZIONE utilizzando comandi di sistema e funzionalità  della shell è possibile realizzare piccoli programmi (script shell) in grado di automatizzare operazioni e reagire ad eventi.

Esistono diverse varietà  di shell, hanno sostanzialmente la stessa funzione ma si differenziano per funzionalità  e, in parte, sintassi dei loro comandi interni. Fra le shell più diffuse segnaliamo la Bourne Shell (sh), la Korn Shell (ksh), la C Shell (csh) e la Bourne Again Shell (bash), sviluppata dal progetto GNU, rilasciata con licenza GPL e particolarmente comune su sistemi Linux.

Privacy Policy