WikiDer > Оболочка Томпсона
Оригинальный автор (ы) | Кен Томпсон |
---|---|
Разработчики) | AT&T Bell Laboratories |
изначальный выпуск | 3 ноября 1971 г. |
Операционная система | 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 в качестве исторического экспоната.
Смотрите также
Рекомендации
- ^ а б c Дж. Р. Машей (1976-10-13). «Использование командного языка как языка программирования высокого уровня». Труды 2-й Международной конференции по программной инженерии: 169–176. Цитировать журнал требует
| журнал =
(помощь)
внешняя ссылка
- Страница руководства для оболочки Томпсона в Unix 1st Edition.
- Эволюция системы разделения времени Unix - описывает раннее развитие оболочки
- Происхождение оболочки Борна - страницы руководства по оболочкам Thompson 3-го, 4-го и 6-го изданий и другие ресурсы по ранним оболочкам
- Шестое издание порта Thompson Shell - оболочка Thompson и связанные с ней утилиты, перенесенные на современные системы Unix