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

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

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

Содержание

  • 1 История
  • 2 Отклонение и замены
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки

История

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

Ранняя особенность Thompson оболочка была компактным синтаксисом для перенаправления ввода / вывода. В Multics для перенаправления ввода или вывода команды требовались отдельные команды для запуска и остановки перенаправления; в Unix можно было просто добавить аргумент в командную строку, состоящий из символа < symbol followed by a filename for input or the>для вывода, и оболочка перенаправляла ввод-вывод на время выполнения команды. Этот синтаксис уже присутствовал при выпуске первой версии Unix в 1971 году.

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

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

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

command1 | command2

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

command1 ^ command2

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

command1>file1

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

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

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

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

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

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

См. Также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-11 10:32:01
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте