Thompson schelp - Thompson shell

Thompson schelp
Oorspronkelijke auteur(s) Ken Thompson
Ontwikkelaar(s) AT&T Bell Laboratoria
Eerste uitgave 3 november 1971 ; 49 jaar geleden ( 1971-11-03 )
Besturingssysteem Unix en Unix-achtig
Type Unix-shell

De Thompson-shell was de eerste Unix-shell , geïntroduceerd in de eerste versie van Unix in 1971, en werd geschreven door Ken Thompson . Het was een eenvoudige commando-interpreter, niet ontworpen voor scripting, maar desalniettemin introduceerde het verschillende innovatieve functies in de opdrachtregelinterface en leidde het tot de ontwikkeling van de latere Unix-shells.

Geschiedenis

De naam "shell" voor een opdrachtregelinterpreter en het concept om van de shell een gebruikersprogramma te maken buiten de kernel van het besturingssysteem, werden geïntroduceerd in Unix' voorloper Multics .

Een vroeg kenmerk van de Thompson-shell was een compacte syntaxis voor input/output-omleiding. In Multics vereiste het omleiden van de invoer of uitvoer van een opdracht afzonderlijke opdrachten om de omleiding te starten en te stoppen; in Unix zou men eenvoudig een argument aan de opdrachtregel kunnen toevoegen, bestaande uit het symbool < gevolgd door een bestandsnaam voor invoer of het symbool > voor uitvoer, en de shell zou I/O omleiden voor de duur van het commando. Deze syntax was al aanwezig bij de release van de eerste versie van Unix in 1971.

Een latere toevoeging was het begrip buizen . Op voorstel van Douglas McIlroy werd de omleidingssyntaxis uitgebreid, zodat de uitvoer van een commando kon worden doorgegeven aan de invoer van een ander commando. De originele pipe-syntaxis, zoals beschreven in de versie 3 handleiding, was:

command1 >command2>

Deze syntaxis bleek te dubbelzinnig en werd gemakkelijk verward met omleiding van en naar bestanden - het systeem kan niet bepalen of "command2" het commando "command2" of het bestand "command2" is. In versie 4 was de syntaxis gewijzigd om zowel de | en ^ symbolen om pijpen aan te duiden:

command1 | command2

Dit levert precies hetzelfde resultaat op als:

command1 ^ command2

Het > symbool veranderde in:

command1 > file1

Dit zou de uitvoer van command1 in file1 plaatsen.

De Thompson shell-syntaxis voor omleiding met < en >, en piping met |, is duurzaam gebleken en is overgenomen door de meeste andere Unix-shells en opdrachtshells van verschillende andere besturingssystemen, met name op DOS , OS/2 en Microsoft Windows .

Weigeren en vervangingen

Het ontwerp van de schaal was opzettelijk minimalistisch; zelfs indien en goto statements, van essentieel belang voor de controle van het programma flow, werden geïmplementeerd als afzonderlijke opdrachten. Als gevolg hiervan werd het bij de release van versie 6 Unix in 1975 duidelijk dat de Thompson-shell niet geschikt was voor de meeste serieuze programmeertaken.

Op dat moment begonnen de ontwikkelaars van de Programmer's Workbench UNIX- distributie, met name John Mashey , de Thompson-shell aan te passen om deze geschikter te maken voor programmeren. Het resultaat, bekend als de PWB-schaal of de Mashey-schaal, omvatte meer geavanceerde stroomregelingsmechanismen en introduceerde schaalvariabelen, maar bleef beperkt door de noodzaak om compatibel te blijven met de Thompson-schaal.

Ten slotte werd de Thompson-shell als de belangrijkste Unix-shell vervangen door de Bourne-shell in versie 7 Unix en de C-shell in 2BSD , beide uitgebracht in 1979. Aangezien vrijwel alle moderne Unix- en Unix-achtige systemen afstammen van V7 en 2BSD, is de Thompson shell wordt over het algemeen niet meer gebruikt. Het is echter beschikbaar als open-source als onderdeel van verschillende oude Unix- brondistributies en is overgezet naar moderne Unices als een historische tentoonstelling.

Zie ook

Referenties

Externe links