Thompson skal

Thompson skal
Originalförfattare Ken Thompson
Utvecklare AT&T Bell Laboratories
Initial release 3 november 1971 ; 51 år sedan ( 1971-11-03 )
Operativ system Unix och Unix-liknande
Typ Unix-skal

Thompson -skalet var det första Unix-skalet , introducerat i den första versionen av Unix 1971 och skrevs av Ken Thompson . Det var en enkel kommandotolk, inte designad för skript, men introducerade ändå flera innovativa funktioner till kommandoradsgränssnittet och ledde till utvecklingen av de senare Unix-skalen.

Historia

Namnet "skal" för en kommandoradstolk och konceptet att göra skalet till ett användarprogram utanför operativsystemets kärna introducerades i Unix föregångare Multics .

Ett tidigt inslag i Thompson-skalet var en kompakt syntax för omdirigering av input/output . I Multics krävde omdirigering av ingången eller utmatningen av ett kommando separata kommandon för att starta och stoppa omdirigering; i Unix kan man helt enkelt lägga till ett argument till kommandoraden som består av symbolen < följt av ett filnamn för inmatning eller symbolen > för utdata, och skalet skulle omdirigera I/O under kommandots varaktighet. Denna syntax fanns redan när den första versionen av Unix släpptes 1971.

Ett senare tillägg var begreppet rör . På förslag av Douglas McIlroy utökades omdirigeringssyntaxen så att utdata från ett kommando kunde skickas till ingången av ett annat kommando. Den ursprungliga pipesyntaxen, som beskrivs i version 3-manualen, var:

kommando1 >kommando2>

Denna syntax visade sig vara för tvetydig och förväxlades lätt med omdirigering till och från filer – systemet kan inte avgöra om "kommando2" är kommandot "kommando2" eller filen "kommando2". I version 4 hade syntaxen ändrats till att använda både | och ^ symboler för att beteckna rör:

kommando1 | kommando2

Detta ger exakt samma resultat som:

kommando1 ^ kommando2

>-symbolen ändrades till:

kommando1 > fil1

Detta skulle placera utdata från kommando1 i fil1.

Thompson-skalsyntaxen för omdirigering med < och >, och rörledning med |, har visat sig hållbar och har antagits av de flesta andra Unix-skal och kommandoskal i flera andra operativsystem, framför allt på DOS , OS / 2 och Microsoft Windows .

Avslag och ersättningar

Skalets design var avsiktligt minimalistisk; även if- och goto -satserna, väsentliga för kontroll av programflödet, implementerades som separata kommandon. Som ett resultat av 1975 års release av version 6 Unix , blev det tydligt att Thompson-skalet var otillräckligt för de flesta allvarliga programmeringsuppgifter.

Vid den här tiden började utvecklarna av programmerarens Workbench UNIX- distribution, framför allt John Mashey , modifiera Thompson-skalet för att göra det mer lämpligt för programmering. Resultatet, känt som PWB-skalet eller Mashey-skalet, inkluderade mer avancerade flödeskontrollmekanismer och introducerade skalvariabler, men förblev begränsat av nödvändigheten att förbli kompatibel med Thompson-skalet.

Slutligen ersattes Thompson-skalet som det huvudsakliga Unix-skalet av Bourne-skalet i version 7 Unix och C-skalet i 2BSD , båda släpptes 1979. Eftersom praktiskt taget alla moderna Unix- och Unix-liknande system härstammar från V7 och 2BSD, Thompson-skal används i allmänhet inte längre. Den är dock tillgänglig som öppen källkod som en del av flera Ancient Unix- källdistributioner och har porterats till moderna Unices som en historisk utställning.

Se även

externa länkar