Thompson Shell

De opdrachtregelinterpreter die vanaf 1969 met UNIX is ontwikkeld, wordt retroniem de Thompson-shell genoemd, naar de ontwikkelaar Ken Thompson . Oorspronkelijk geschreven in assembler , werd de originele Unix-shell opnieuw geïmplementeerd in 1973 samen met UNIX-versie 4 in C. sh

De Thompson-shell is een eerste, zeer rudimentaire variant van een Unix-shell, maar vele latere, verbeterde en uitgebreide Unix-shells zijn hierop terug te voeren. Het wordt niet langer gebruikt op moderne Unix- en Unix-achtige systemen, maar de laatste versie is opnieuw geïmplementeerd voor moderne systemen .

geschiedenis

UNICS, zoals het systeem in 1969 werd genoemd als woordspeling en toespeling op het eerdere Multics- besturingssysteemproject , maakte gebruik van enkele van de Multics-concepten, waarop enkele latere Unix-ontwikkelaars zoals Ken Thompson, Doug McIlroy , Dennis Ritchie en Joseph Ossanna had kort gewerkt. Een van hen was de schaal . UNIX - de spelling werd gebruikt bij de publicatie van de eerste versie uiterlijk in 1971 - bestond naast de kernel uit de kerncomponenten van het Unix-bestandssysteem en de Unix-shell . Al in 1972 werd Doug McIlroy's commando- en filterketenconcept ( pijpen ) in deze schil geïmplementeerd.

De Thompson-shell ( sh) was de standaardshell van AT&T UNIX tot de release van V7 UNIX (1979). Al in de jaren 70 ontwikkelde Stephen R. Bourne een verbeterde Unix-shell die de Thompson-shell van V7 UNIX verving. De Bourne-schaal is ook shuitgevoerd. Maar andere, latere, modernere Unix-shells gebruiken naast de uitvoerbare bestandsnaam ook de syntaxis die door de Thompson-shell is geïntroduceerd; Onder andere het gebruik van boven- en onderkarakters voor het omleiden van invoer en uitvoer werd voor het eerst gebruikt in de Thompson-shell .

Kenmerken

De Thompson-schaal heeft de kerneigenschappen van een Unix-schaal:

  • Commando- of filterketens ( pijpen , "pijpleidingen")
  • Omleiden van programma-ingangen en -uitgangen
  • Samenvattingen van de opdrachten of commando ketens in commando-bestanden (shell scripts )

In tegenstelling tot modernere Unix-shells, die commando-interpreters en programmeertalen zijn , heeft de Thompson-shell geen eigen programmeerconstructies. De instructies ifen gotozijn geïmplementeerd als afzonderlijke commando's waarmee bepaalde programmeertaken (voorwaardelijke aansturing van het programmaverloop) kunnen worden opgelost, maar de mogelijkheid om variabelen overeen te komen ontbreekt . Er kunnen echter verschillende argumenten worden doorgegeven aan de opdrachtinterpreter, die indirect de functie van variabelen simuleert door nieuwe shell-instanties aan te roepen.

Herimplementatie

Wanneer oshde Thompson-shell werd opnieuw geïmplementeerd voor moderne Unix-achtige besturingssystemen. De naam komt van het Engelse old shell , "old shell". Hun opvolger is metetshde verbeterde Thompson-schaal . In tegenstelling tot de originele Thompson-schaal uit de vroege jaren 70, kunnen omgevingsvariabelen direct in beide worden ingesteld; wanneer gebruikt als de primaire shell, lezen de herimplementaties ook een profielbestand beheerd door de gebruiker, b.v. B. voor het instellen van padinformatie.

literatuur

  • Ken Thompson: The UNIX Command Language. In: Structured Programming - International Computer State of the Art Report, Infotech Information Ltd. Maidenhead, Berkshire, 1975, blz. 375-384.

web links

Individueel bewijs

  1. University of Michigan (Ed.): Programmer's Journal . plakband 5 . Avant-Garde Creations, 1987, blz. 16 (Engels, geen preview beschikbaar ): "Ken Thompson, de vader van Unix, schreef de allereerste rudimentaire opdrachtinterface voor het besturingssysteem van Ma Bell - op de typische manier van onderzoekers die het de Thompson-schaal noemt."
  2. iSRD: Basics Of Os Unix and Shell Programming . Tata McGraw-Hill Education, 2006, ISBN 978-0-07-061681-3 (Engels, beperkte preview in Zoeken naar boeken met Google): "MULTICS oefende een sterke invloed uit op het nieuwe besturingssysteem. De basisorganisatie van het bestandssysteem, het idee van de shell als een gebruikersproces, het gebruik van een afzonderlijk proces voor elk commando en soortgelijke andere functies werden ervan geërfd. "
  3. ^ Michael L. Scott: Programming Language Pragmatics . Morgan Kaufmann, 2009, ISBN 978-0-08-092299-7 (Engels, beperkte preview in het zoeken naar boeken met Google): "Toen het werk aan het baanbrekende multics-systeem in 1964 begon, schetste [Louis] Pouzin het ontwerp van een uitgebreide opdracht taal, met mechanismen voor het aanhalen en doorgeven van argumenten, waarvoor hij de term "schelp" bedacht. "
  4. SK Bajpai: Inleiding tot computers en C-programmering . New Age International, 2007, ISBN 978-81-224-1379-3 (Engels, beperkte preview in Zoeken naar boeken met Google): "UNIX ... heeft in feite de volgende onderdelen: Kernel ..., Shell ..., The file system ..."