Thompson Shell

Linie de comandă interpret dezvoltat cu UNIX din 1969 este retronymously menționată la ca Thompson shell după dezvoltator Ken Thompson . Scris inițial în asamblare , shell-ul original Unix a fost re-implementat în 1973 împreună cu versiunea UNIX 4 în C. sh

Thompson shell este un prim, variantă foarte rudimentară a unui shell Unix, dar multe scoici Unix mai târziu, îmbunătățite și extinse pot fi urmărite înapoi la ea. Nu mai este utilizat pe sistemele moderne Unix și Unix , dar ultima versiune a fost reimplementată pentru sistemele moderne .

istorie

UNICS, așa cum sistemul a fost numit în 1969 ca un joc de cuvinte și o aluzie la proiectul anterior de sistem de operare Multics , a folosit unele dintre conceptele Multics, pe care unii dezvoltatori Unix mai târziu, precum Ken Thompson, Doug McIlroy , Dennis Ritchie și Joseph Ossanna a lucrat pe scurt. Unul dintre ei a fost cochilia . De exemplu, UNIX - ortografia a fost utilizată odată cu publicarea primei versiuni cel târziu în 1971 - consta din componentele de bază ale sistemului de fișiere Unix și shell Unix în plus față de nucleu . Încă din 1972, conceptul de lanț de comandă și filtru ( țevi ) al lui Doug McIlroy a fost implementat în acest shell.

Thompson shell ( sh) a fost învelișul standard AT & T UNIX , până la eliberarea V7 UNIX (1979). Stephen R. Bourne a dezvoltat un shell Unix îmbunătățit încă din anii 1970 , care a înlocuit shell-ul Thompson începând cu V7 UNIX . Se execută și shell-ul Bournesh . Dar alte shell-uri Unix, mai târziu, mai moderne folosesc și sintaxa introdusă de shell-ul Thompson în plus față de numele fișierului executabil ; Printre altele, utilizarea caracterelor superioare și inferioare pentru redirecționarea intrărilor și ieșirilor a fost folosită pentru prima dată în shell-ul Thompson .

Caracteristici

Thompson shell are proprietățile de bază ale unui shell Unix:

  • Lanțuri de comandă sau filtrare ( conducte , „conducte”)
  • Redirecționarea intrărilor și ieșirilor programului
  • Rezumate de comenzi sau lanțuri de comenzi în fișiere de comandă ( script-uri shell )

Spre deosebire de shell-urile Unix mai moderne, care sunt interpreți de comandă și limbaje de programare , shell-ul Thompson nu are propriile constructii de programare. Instrucțiunile ifși gotosunt implementate ca comenzi separate cu ajutorul cărora anumite sarcini de programare (control condiționat al secvenței programului) pot fi rezolvate, dar nu este disponibilă posibilitatea acordului variabilelor . Cu toate acestea, mai multe argumente pot fi transmise interpretului de comandă, care simulează indirect funcția variabilelor apelând noi instanțe shell.

Reimplementarea

Când oshThompson shell - ul a fost reimplemented pentru sisteme moderne de operare Unix. Numele provine din engleza old shell , „coajă veche”. Succesorul lor este cuetshîmbunătățită shell Thompson . Spre deosebire de shell-ul Thompson original de la începutul anilor 1970, variabilele de mediu pot fi setate direct în ambele ; Când sunt utilizate ca shell primar, reimplementările citesc și un fișier de profil administrat de utilizator, de ex. B. pentru setarea informațiilor despre cale.

literatură

  • Ken Thompson: Limbajul de comandă UNIX. În: Programare structurată - Raportul internațional privind stadiul actual al computerelor, Infotech Information Ltd. Maidenhead, Berkshire, 1975, pp. 375-384.

Link-uri web

Dovezi individuale

  1. Universitatea din Michigan (Ed.): Jurnalul programatorului . bandă 5 . Creații de avangardă, 1987, pp. 16 (engleză, nu există previzualizare disponibilă ): „Ken Thompson, tatăl Unix, a scris prima interfață de comandă rudimentară pentru sistemul de operare al lui Ma Bell - în mod tipic cercetător numindu-l shell-ul Thompson”.
  2. Isrd: Bazele programării Os Unix și Shell . Tata McGraw-Hill Education, 2006, ISBN 978-0-07-061681-3 (engleză, previzualizare limitată în Google Book Search): „MULTICS a exercitat o puternică influență asupra noului sistem de operare. Organizarea sistemului de fișiere de bază, ideea de shell-ul ca proces de utilizator, utilizarea unui proces separat pentru fiecare comandă și alte caracteristici similare au fost moștenite de la acesta. "
  3. ^ Michael L. Scott: Pragmatica limbajului de programare . Morgan Kaufmann, 2009, ISBN 978-0-08-092299-7 (engleză, previzualizare limitată în căutarea de cărți Google): „Când au început lucrările la sistemul inovator de multics în 1964, [Louis] Pouzin a schițat proiectarea unei comenzi extinse limbaj, cu mecanisme de citare și de transmitere a argumentelor, pentru care a inventat termenul „coajă”.
  4. ^ SK Bajpai: Introducere la calculatoare și C de programare . New Age International, 2007, ISBN 978-81-224-1379-3 (engleză, previzualizare limitată în Căutare de cărți Google): „UNIX ... are în esență următoarele părți: Kernel ..., Shell ..., Sistemul de fișiere ...”