Thompson Shell

L' interprete della riga di comando sviluppato con UNIX a partire dal 1969 viene chiamato in senso retroattivo come shell Thompson dal nome del suo sviluppatore Ken Thompson . Scritta originariamente in assembler , la shell Unix originale fu reimplementata nel 1973 insieme alla versione 4 di UNIX in C. sh

La shell Thompson è una prima variante molto rudimentale di una shell Unix, ma molte successive shell Unix migliorate ed espanse possono essere ricondotte ad essa. Non è più utilizzato sui moderni sistemi Unix e simili a Unix , ma l'ultima versione è stata reimplementata per i sistemi moderni .

storia

UNICS, come il sistema fu chiamato nel 1969 come gioco di parole e allusione al precedente progetto del sistema operativo Multics , fece uso di alcuni dei concetti Multics, sui quali alcuni successivi sviluppatori Unix come Ken Thompson, Doug McIlroy , Dennis Ritchie e Joseph Ossanna aveva lavorato brevemente. Uno di questi era il guscio . UNIX - l'ortografia è stata utilizzata con la pubblicazione della prima versione al più tardi nel 1971 - consisteva nei componenti principali del file system Unix e della shell Unix oltre al kernel . Già nel 1972, il comando di Doug McIlroy e il concetto di catena di filtri ( tubi ) furono implementati in questa shell.

La shell Thompson ( sh) era la shell standard di AT&T UNIX fino al rilascio di V7 UNIX (1979). Già negli anni '70, Stephen R. Bourne sviluppò una shell Unix migliorata che sostituì la shell Thompson da V7 UNIX . La shell Bourne è anche sheseguito. Ma anche altre shell Unix più moderne, successive, usano la sintassi introdotta dalla shell Thompson oltre al nome del file eseguibile ; Tra le altre cose, l'uso dei caratteri superiore e inferiore per reindirizzare input e output è stato utilizzato per la prima volta nella shell Thompson .

Caratteristiche

La shell Thompson ha le proprietà principali di una shell Unix:

  • Catene di comandi o filtri ( tubi , "condutture")
  • Reindirizzamento degli input e degli output del programma
  • Riepiloghi di comandi o catene di comandi nei file di comandi ( script di shell )

A differenza delle più moderne shell Unix, che sono interpreti di comandi e linguaggi di programmazione , la shell Thompson non ha i propri costrutti di programmazione. Le istruzioni ife gotosono implementate come comandi separati con cui è possibile risolvere determinati compiti di programmazione (controllo condizionale della sequenza del programma), ma manca la possibilità di concordare le variabili . Tuttavia, diversi argomenti possono essere passati all'interprete dei comandi, che simula indirettamente la funzione delle variabili chiamando nuove istanze di shell.

Reimplementazione

quando oshla shell Thompson è stata reimplementata per i moderni sistemi operativi simili a Unix. Il nome deriva dall'inglese old shell , "old shell". Il loro successore è conetshla shell Thompson migliorata . Contrariamente alla shell Thompson originale dei primi anni '70, le variabili d'ambiente possono essere impostate direttamente in entrambe ; quando usate come shell primaria, le reimplementazioni leggono anche un file di profilo amministrato dall'utente, ad es. B. per l'impostazione delle informazioni sul percorso.

letteratura

  • Ken Thompson: il linguaggio di comando UNIX. In: Programmazione strutturata - International Computer State of the Art Report, Infotech Information Ltd. Maidenhead, Berkshire, 1975, pagg. 375-384.

link internet

Prove individuali

  1. Università del Michigan (a cura di): Programmer's Journal . nastro 5 . Avant-Garde Creations, 1987, pagg. 16 (in inglese, nessuna anteprima disponibile ): "Ken Thompson, il padre di Unix, ha scritto la primissima interfaccia di comando rudimentale per il sistema operativo di Ma Bell - in tipico stile ricercatore chiamandola shell Thompson."
  2. iSRD: Nozioni di base su OS Unix e programmazione shell . Tata McGraw-Hill Education, 2006, ISBN 978-0-07-061681-3 (inglese, anteprima limitata in Google Ricerca Libri): "MULTICS ha esercitato una forte influenza sul nuovo sistema operativo. L'organizzazione del file system di base, l'idea di la shell come processo utente, l'uso di processi separati per ogni comando e altre caratteristiche simili sono state ereditate da esso. "
  3. ^ Michael L. Scott: Programming Language Pragmatics . Morgan Kaufmann, 2009, ISBN 978-0-08-092299-7 (inglese, anteprima limitata nella ricerca di libri di Google): "Quando nel 1964 iniziarono i lavori sul rivoluzionario sistema multics, [Louis] Pouzin abbozzò il progetto di un comando esteso linguaggio, con meccanismi di citazione e passaggio di argomenti, per i quali ha coniato il termine "shell". "
  4. SK Bajpai: Introduzione ai computer e C Programming . New Age International, 2007, ISBN 978-81-224-1379-3 (inglese, anteprima limitata in Google Ricerca Libri): "UNIX ... ha fondamentalmente le seguenti parti: Kernel ..., Shell ..., The file system ..."