Shell
La
shell è uno dei programmi più importanti dopo il
kernel in un
sistema operativo: permette di comunicare con il sistema e di avviare i programmi.
Senza di essa il kernel non riuscirebbe a comunicare con gli utenti e con i programmi. Si tratta dell'"ambiente di lavoro" attraverso il quale è possibile impartire al computer comandi che verranno interpretati ed eseguiti dal sistema operativo.
Esistono molti tipi di shell: una delle più note è il tradizionale 'prompt dei comandi', ben noto a quanti hanno familiarità con i sistemi operativi DOS (
MS-DOS, DrDos,
FreeDOS). Per gli utenti del vecchio
MS-DOS la shell era il programa 'command.com'.
Anche le recenti versioni di Windows hanno una shell, il programma 'cmd.exe'.
In ambiente
Unix una shell tra le più famose è sicuramente la 'Bash' (Bourne-Again Shell), ma ne esistono altre come la 'Korn Shell' e la 'C Shell'.
La shell è un ambiente di lavoro che funziona 'a riga di comando', con istruzioni testuali che vengono impartite attraverso la tastiera per avviare programmi, eseguire comandi, visualizzare il
file system, interagire in ogni modo con il computer.
Ogni shell ha le proprie caratteristiche: le shell testuali per
Unix sono molto apprezzate dagli sviluppatori perché hanno integrato, oltre ai comandi per interrogare il sistema, anche un linguaggio di scripting molto potente con il quale è possibile scrivere veri e propri programmi (script) o delle procedure che agevolano moltissimo l'amministrazione di sistema.
Le shell a caratteri sono molto comode anche quando bisogna gestire una macchina da remoto, e per la loro potenza possono essere utilizzate comodamente via rete.
L'evoluzione grafica delle shell è rappresentata dalle cosiddette
GUI (
Graphic User Interface, interfacce grafiche utente), che hanno una rappresentazione dei dati molto più vicina al modo di percepire il mondo da parte degli essere umani.
Con le GUI il computer e il suo contenuto non sono più rappresentati da linee di testo, ma da icone e finestre che permettono di fare operazioni complesse con un clic del
mouse.
Il limite delle GUI è il loro alto consumo delle risorse di calcolo del computer: sono più pesanti e in rete possono essere gestite da remoto ma con meno prestazione e meno eleganza.
Le shell grafiche sono state sicuramente un passo avanti per l'iterazione uomo macchina, ma le loro antenate a riga di comando non possono essere sostituite interamente per la loro potenza e velocità d'uso.