PWB оболочка - PWB shell

PWB оболочка
Оригинальный автор (ы)Джон Маши
Разработчики)AT&T Bell Laboratories
Операционная системаUnix
Доступно ванглийский
ТипОболочка Unix

В PWB оболочка (также известный как Машей оболочка) был Оболочка Unix.[1]

История

Оболочка PWB была модифицированной (и, как правило, была ограничена совместимостью снизу вверх) версией Оболочка Томпсона с дополнительными функциями для повышения удобства программирования. Это поддерживалось Джон Маши и различные другие (Дик Хейт, Алан Глассер).[1][2][3]

PWB / UNIX началось с Исследование Unix 4-е издание в середине октября 1973 г. и часто обновлялось в течение следующих нескольких лет, как отслеживал отдел PWB. Исследование Unix изменения и добавлены несколько функций. Снаряд PWB был выпущен в середине 1975 г. [4] и оставался доступным через Версия 6 Unix на основе PWB / UNIX.[5] В версии 7 Unix (1979) оболочка PWB была заменена Оболочка Борна.[6] Оболочка PWB была стандартной оболочкой для PWB / UNIX, примерно 1975–78 гг.,[1] но не работал ни с одним изданием Исследование Unix, так как требовался новый системный вызов удата (2) что позволяет логин (1) установить имя входа, каталог входа ($ s) и TTY ($ т) так ш (1) чтобы получить их.

Примечательные особенности

В оболочку PWB было введено несколько функций, которые остались во многих более поздних оболочках. В если и идти к команды были сделаны внутри оболочки и расширены, чтобы позволить если-тогда-еще-endif, и выключатель и пока были введены конструкции, а также onintr игнорировать прерывания или перехватывать их для выполнения очистки.[1] Можно было использовать простые переменные, хотя их имена были ограничены одной буквой, а некоторые буквы были зарезервированы для специальных целей, некоторые из которых являются предшественниками переменные среды встречается во всех системах Unix от Версия 7 вперед.

Например, $ s переменная была предком $ HOME, используется, чтобы избежать жестко заданных путей. В $ p переменная была предком $ PATH, которые позволяют пользователям искать команды в каталогах по своему выбору. В отличие от большинства систем UNIX того времени, исходный компьютерный центр PWB / UNIX использовался несколькими группами программистов, которые не могли изменять содержимое / bin или / usr / bin, но хотели создать свои собственные наборы общих команд. Кроме того, поиск команд оболочки был расширен, чтобы позволить вызывать процедуры оболочки как двоичные команды, то есть, если оболочка обнаруживает небинарный файл, помеченный как исполняемый, она будет форкнуть другой экземпляр оболочки, чтобы прочитать этот файл как сценарий оболочки. Таким образом люди могли печатать аргументы команды скорее, чем sh имя пути / аргументы команды. Все это поведение было упаковано как функция pexec, который был предком execvp, чтобы позволить любой программе вызывать команды так же, как оболочка.

Символ $, ранее использовавшийся для идентификации аргументов в сценарий оболочки, стал маркером для разыменования переменной и мог использоваться для вставлять значение переменной в строку в двойные кавычки. (В дополнение к более поздним оболочкам, эта функция также позже появится в Perl и PHP языки программирования.)

Потомки

Эти функции не смогли преодолеть недостатки оболочки Томпсона, поэтому новая оболочка была написана с нуля. Стивен Борн. Этот Оболочка Борна был несовместим с оболочками Thompson и PWB, но включал в себя эквиваленты большинства функций оболочки PWB, но создавался с нуля, а не постепенно, с большим обсуждением среди различных участников. Особенно, переменные среды и сопутствующее оборудование были разработаны Стивеном Борном, Джон Маши, и Деннис Ричи как общий механизм замены более ранних, более ограниченных функций. После принятия оболочки Борна в качестве стандартной оболочки в Версия 7 Unix, использование оболочки PWB было прекращено, хотя какое-то время существовал внутренний курс Bell Labs под названием Программирование Bourne Shell для программистов Mashey Shell. (The Оболочка C, разработанная до публичного выпуска оболочки Bourne, также унаследовала некоторые функции оболочки PWB.[нужна цитата ])

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

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

  1. ^ а б c d Маши, Джон Р. (1976-10-13). «Использование командного языка как языка программирования высокого уровня». Сан-Франциско, Калифорния, США: Материалы 2-й Международной конференции по программной инженерии: 169–176. В архиве из оригинала 12 апреля 2020 г.. Получено 12 апреля 2020. В дополнение к этим переменным [$ n, $ p, $ r, $ s и $ t] предоставляется следующее: $$ содержит 5-значное число, которое является уникальным номером процесса текущей оболочки. В некоторых случаях необходимо знать номер процесса, например, чтобы убить его. Однако на сегодняшний день его наиболее распространенным использованием было создание уникальных имен для временных файлов. Цитировать журнал требует | журнал = (помощь)
  2. ^ Ликич, Владимир (28 сентября 2018 г.). «Понимание Bash: элементы программирования». Linux Journal. Архивировано из оригинал на 2018-12-21. Получено 2018-12-31. Исходная оболочка Томпсона, оболочка Маши и оболочка Борна назывались sh, и в 1970–1976 годах они перекрывали друг друга или заменяли друг друга, поскольку они были усовершенствованы и получили дополнительные возможности. ... Оболочка Томпсона не имела возможностей программирования. Это изменилось с развитием оболочки Mashey (а позже оболочки Bourne).
  3. ^ Уайлс, Джек (13 октября 2011 г.). Руководство TechnoSecurity по электронному обнаружению и цифровой криминалистике: всеобъемлющее руководство. Эльзевир. ISBN  9780080558813. Получено 31 декабря 2018 - через Google Книги.
  4. ^ Маши, Джон Р. (27 января 1999 г.) [1986]. Туми, Уоррен (ред.). "Re: История Shell, правдивые факты, но длинные | Группы новостей: net.unix-wizards". Архивировано из оригинал на 2016-10-06. Получено 2018-12-31. PWB Shell впервые появился в середине 1975 года. Это произошло из набора требований и предложений от меня в начале 1975 года, когда я пытался заниматься серьезным программированием оболочки. В середине 1975 года оболочка приобрела переменные, в том числе 3, которые были получены из данных по процессам. Здесь и появилась идея более обобщенного поиска пути.
  5. ^ Хорафас, Димитрис Н. (1986). Какой Unix? : AT&T, IBM и другие знаменосцы. Макгроу-Хилл. ISBN  9780070108790. Архивировано из оригинал 31 декабря 2018 г.. Получено 2018-12-31.
  6. ^ Ифтехер, Мохаммад Форгад (10 ноября 2015 г.). «Эволюция оболочек Unix / Linux - Unixmen». Unixmen.com. В архиве с оригинала 21 июля 2019 г.. Получено 31 декабря 2018.

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