Conchiglia Thompson - Thompson shell

conchiglia di Thompson
Autori originali Ken Thompson
Sviluppatore/i AT&T Bell Laboratories
Versione iniziale 3 novembre 1971 ; 49 anni fa ( 1971-11-03 )
Sistema operativo Unix e Unix-like
Tipo Shell Unix

La shell Thompson è stata la prima shell Unix , introdotta nella prima versione di Unix nel 1971, ed è stata scritta da Ken Thompson . Era un semplice interprete di comandi, non progettato per lo scripting, ma introdusse comunque diverse funzionalità innovative nell'interfaccia della riga di comando e portò allo sviluppo delle successive shell Unix.

Storia

Il nome "shell" per un interprete della riga di comando e il concetto di rendere la shell un programma utente al di fuori del kernel del sistema operativo sono stati introdotti nel precursore di Unix Multics .

Una delle prime caratteristiche della shell Thompson era una sintassi compatta per il reindirizzamento input/output. In Multics, il reindirizzamento dell'input o dell'output di un comando richiedeva comandi separati per avviare e interrompere il reindirizzamento; in Unix, si potrebbe semplicemente aggiungere un argomento alla riga di comando costituito dal simbolo < seguito da un nome di file per l'input o dal simbolo > per l'output, e la shell reindirizzerà l'I/O per la durata del comando. Questa sintassi era già presente con il rilascio della prima versione di Unix nel 1971.

Un'aggiunta successiva fu il concetto di tubi . Su suggerimento di Douglas McIlroy , la sintassi di reindirizzamento è stata ampliata in modo che l'output di un comando potesse essere passato all'input di un altro comando. La sintassi originale della pipe, come descritto nel manuale della versione 3, era:

command1 >command2>

Questa sintassi si è rivelata troppo ambigua ed è stata facilmente confusa con il reindirizzamento da e verso i file: il sistema non può dire se "comando2" è il comando "comando2" o il file "comando2". Dalla versione 4, la sintassi era cambiata per usare sia | e ^ simboli per indicare le pipe:

command1 | command2

Questo produce esattamente lo stesso risultato di:

command1 ^ command2

Il simbolo > è cambiato in:

command1 > file1

Questo metterebbe l'output di command1 in file1.

La sintassi della shell Thompson per il reindirizzamento con < e > e il piping con | si è dimostrata duratura ed è stata adottata dalla maggior parte delle altre shell Unix e delle shell di comando di diversi altri sistemi operativi, in particolare su DOS , OS/2 e Microsoft Windows .

Declino e sostituzioni

Il design del guscio era intenzionalmente minimalista; anche le istruzioni if e goto , essenziali per il controllo del flusso del programma, sono state implementate come comandi separati. Di conseguenza, dal rilascio nel 1975 della versione 6 di Unix , divenne chiaro che la shell Thompson era inadeguata per le attività di programmazione più serie.

A quel tempo, gli sviluppatori della distribuzione UNIX di Programmer's Workbench , in particolare John Mashey , iniziarono a modificare la shell Thompson per renderla più adatta alla programmazione. Il risultato, noto come shell PWB o shell Mashey, includeva meccanismi di controllo del flusso più avanzati e introduceva variabili di shell, ma rimase limitato dalla necessità di rimanere compatibile con la shell Thompson.

Infine, la shell Thompson è stata sostituita come shell Unix principale dalla shell Bourne in Unix versione 7 e dalla shell C in 2BSD , entrambe rilasciate nel 1979. Poiché praticamente tutti i moderni sistemi Unix e Unix-like discendono da V7 e 2BSD, la La shell Thompson generalmente non viene più utilizzata. È, tuttavia, disponibile come open-source come parte di diverse distribuzioni di sorgenti Ancient Unix ed è stato portato sui moderni Unix come mostra storica.

Guarda anche

Riferimenti

link esterno