Оболочка Томпсона - Thompson shell

Оболочка Томпсона
Оригинальный автор (ы)Кен Томпсон
Разработчики)AT&T Bell Laboratories
изначальный выпуск3 ноября 1971 г.; 49 лет назад (1971-11-03)
Операционная системаUnix и Unix-подобный
ТипОболочка Unix

В Оболочка Томпсона это первый Оболочка Unix, представленный в первой версии Unix в 1971 году и был написан Кен Томпсон.[1]Это был простой интерпретатор команд, не предназначенный для написания сценариев, но, тем не менее, он привнес в систему несколько инновационных функций. Интерфейс командной строки и привел к развитию более поздних оболочек Unix.

История

Название «оболочка» для интерпретатор командной строки и концепция превращения оболочки в пользовательскую программу вне операционной системы ядро были введены в предшественнике Unix Мультики.

Ранней особенностью оболочки Томпсона был компактный синтаксис для перенаправления ввода / вывода. В Multics для перенаправления ввода или вывода команды требовались отдельные команды для запуска и остановки перенаправления; в Unix можно было просто добавить аргумент в командную строку, состоящий из символа <, за которым следует имя файла для ввода или символа> для вывода, и оболочка перенаправляла ввод-вывод на время выполнения команды. Этот синтаксис уже присутствовал при выпуске первой версии Unix в 1971 году.

Позднее добавление было концепцией трубы. По предложению Дуглас Макилрой, синтаксис перенаправления был расширен, чтобы выходные данные одной команды могли передаваться на вход другой команды. Исходный синтаксис канала, описанный в руководстве по версии 3, был следующим:

команда1> команда2>

Этот синтаксис оказался слишком двусмысленным, и его легко спутать с перенаправлением в файлы и из файлов - система не может определить, является ли «command2» командой «command2» или файлом «command2». В версии 4 синтаксис был изменен, чтобы использовать как | и символы ^ для обозначения труб:

command1 | command2

Это дает точно такой же результат, как:

команда1 ^ команда2

Символ> изменился на:

команда1> файл1

Это поместит вывод command1 в file1.

Синтаксис оболочки Томпсона для перенаправления с помощью <и> и конвейерной передачи с помощью | доказал свою надежность и был принят большинством других оболочек Unix и командных оболочек некоторых других операционных систем, особенно в ДОС, OS / 2 и Майкрософт Виндоус.

Отклонение и замены

Дизайн корпуса был намеренно минималистичным; даже если и идти к Операторы, необходимые для управления потоком программы, были реализованы как отдельные команды.[1]В результате к выпуску 1975 г. Версия 6 Unix становилось ясно, что оболочка Томпсона не подходит для большинства серьезных задач программирования.

На этот раз разработчики Инструментальные средства программиста UNIX распространение, в первую очередь Джон Маши, начал модифицировать оболочку Томпсона, чтобы сделать ее более подходящей для программирования.[1]Результат, известный как PWB оболочка или оболочка Mashey, включала более продвинутые механизмы управления потоком и вводила переменные оболочки, но оставалась ограниченной из-за необходимости оставаться совместимой с оболочкой Томпсона.

Наконец, оболочка Томпсона была заменена в качестве основной оболочки Unix на Оболочка Борна в Версия 7 Unix и Оболочка C в 2BSD, оба выпущены в 1979 году. Поскольку практически все современные Unix и Unix-подобный системы происходят от V7 и 2BSD, оболочка Thompson обычно больше не используется. Однако он доступен как Открытый исходный код как часть нескольких Древний Unix исходный код и был перенесен на современные Unices в качестве исторического экспоната.

Смотрите также

Рекомендации

  1. ^ а б c Дж. Р. Машей (1976-10-13). «Использование командного языка как языка программирования высокого уровня». Труды 2-й Международной конференции по программной инженерии: 169–176. Цитировать журнал требует | журнал = (помощь)

внешняя ссылка