Jump to content

Оболочка Борна

Оболочка Борна
Оригинальный автор(ы) Стивен Борн
Разработчик(и) Телефонные лаборатории Белла
Первоначальный выпуск 1979 год ; 45 лет назад ( 1979 )
Операционная система Юникс
Тип оболочка Unix
Лицензия [ в стадии обсуждения ]

Оболочка Борна ( sh) — интерпретатор командной строки для компьютерных операционных систем .

Оболочка Bourne была оболочкой по умолчанию для Unix версии 7 . Unix-подобные системы продолжают иметь /bin/sh— это будет оболочка Bourne, символическая ссылка или жесткая ссылка на совместимую оболочку — даже если большинство пользователей используют другие оболочки.

Разработанная Стивеном Борном из Bell Labs , она стала заменой оболочке Thompson , исполняемый файл которой имел то же имя — sh. Он был выпущен в 1979 году в версии 7 Unix, распространяемой среди колледжей и университетов. Хотя он используется в качестве интерактивного интерпретатора команд, он также задумывался как язык сценариев и содержит большинство функций, которые обычно используются для создания структурированных программ.

Он приобрел популярность после публикации книги «Среда программирования Unix» Брайана Кернигана и Роба Пайка — первой коммерчески изданной книги, в которой оболочка представлена ​​как язык программирования в учебной форме.

Версия 7 Unix : оригинальная страница руководства по оболочке Bourne . PDP-11 Моделирование с помощью SIMH

Происхождение

[ редактировать ]

Работа над оболочкой Bourne началась в 1976 году. [1] Впервые появившись в версии 7 Unix , [2] оболочке Bourne предшествовала оболочка Mashey .

Некоторые из основных целей оболочки были: [3]

Особенности оригинальной версии

[ редактировать ]

Особенности оболочки UNIX Bourne версии 7 включают в себя:

  • Сценарии можно вызывать как команды, используя их имена файлов.
  • Может использоваться интерактивно или неинтерактивно.
  • Позволяет как синхронное, так и асинхронное выполнение команд.
  • Поддерживает перенаправление ввода и вывода и конвейеры.
  • Предоставляет набор встроенных команд.
  • Предоставляет конструкции управления потоком и средства котировок.
  • Бестиповые переменные
  • Обеспечивает область видимости локальных и глобальных переменных.
  • Скрипты не требуют компиляции перед выполнением
  • Не имеет средства перехода, поэтому может потребоваться реструктуризация кода.
  • Подстановка команд с использованием обратных кавычек : `command`.
  • Здесь документы с использованием << встроить блок входного текста в скрипт.
  • for ~ do ~ done циклы, в частности использование $* для перебора аргументов, а также for ~ in ~ do ~ done циклы для перебора списков.
  • case ~ in ~ esac механизм выбора, в первую очередь предназначенный для помощи в анализе аргументов .
  • sh обеспечена поддержка переменных среды с использованием параметров ключевых слов и экспортируемых переменных.
  • Содержит строгие условия для управления вводом и выводом, а также средства сопоставления выражений .

Оболочка Bourne также была первой, в которой было реализовано соглашение об использовании файлового дескриптора. 2> для сообщений об ошибках , что обеспечивает гораздо больший программный контроль во время написания сценариев, сохраняя сообщения об ошибках отдельно от данных.

На стиль программирования Стивена Борна повлиял его опыт работы с ALGOL 68C. компилятором [2] над которым он работал в Кембриджском университете . В дополнение к стилю, в котором была написана программа, Борн повторно использовал части языка АЛГОЛА 68 . if ~ then ~ elif ~ then ~ else ~ fi, case ~ in ~ esac и for/while ~ do ~ od" (с использованием done вместо od) в обычном синтаксисе оболочки Unix Bourne. Более того, хотя оболочка v7 написана на C , Борн воспользовался некоторыми макросами. [4] C чтобы придать исходному коду оттенок ALGOL 68. Эти макросы (вместе с командой Finger , распространяемой в Unix версии 4.2BSD ) вдохновили на проведение Международного конкурса запутанного кода C (IOCCC). [5]

Функции, представленные после 1979 г.

[ редактировать ]

С годами оболочка Bourne была усовершенствована в AT&T. Таким образом, различные варианты называются как соответствующие версии Unix AT&T, с которыми они были выпущены (некоторыми важными вариантами являются Version7, System III, SVR2, SVR3, SVR4). Поскольку версия оболочки никогда не устанавливалась, единственным способом ее идентификации было тестирование ее функций. [6]

Особенности версий оболочки Bourne с 1979 года включают: [7]

  • Встроенный test команда - оболочка System III (1981)
  • # как символ комментария – оболочка System III (1981)
  • Двоеточие в замене параметров "${parameter:=word}" - оболочка System III (1981)
  • continue с аргументом - оболочка System III (1981)
  • cat <<-EOF для документов с отступом – оболочка System III (1981 г.)
  • Функции и return встроенный — оболочка СВР2 (1984 г.)
  • Встроенные модули unset, echo, type — снаряд СВР2 (1984 г.)
  • Исходный код, де-АЛГОЛ68 - оболочка SVR2 (1984 г.)
  • Современный " $@» – снаряд СВР3 (1986 г.)
  • Встроенный getopts — снаряд СВР3 (1986 г.)
  • Очищенная обработка параметров позволяет рекурсивно вызывать функции – оболочка SVR3 (1986).
  • 8-битная очистка — оболочка SVR3 (1986)
  • Управление заданиями – оболочка СВР4 (1989 г.)
  • Многобайтовая поддержка - оболочка SVR4 (1989 г.)

Варианты

[ редактировать ]

Оболочка ДМЕРТ

[ редактировать ]

Duplex Multi-Environment Real-Time ( DMERT ) — это гибридная операционная система с разделением времени и режимом реального времени, разработанная в 1970-х годах в лаборатории Bell Labs в Индиан-Хилл в Нейпервилле, штат Иллинойс, с использованием моментального снимка Bourne Shell 1978 года «ВЕРСИЯ sys137 ДАТА 1978 г., 12 октября 1978 г.». 22:39:57». [ нужна ссылка ] Оболочка DMERT работает на компьютерах 3B21D , которые до сих пор используются в телекоммуникационной отрасли. [ нужна ссылка ]

Корн оболочка

[ редактировать ]
Взаимодействие с pdksh в OpenBSD (оболочка по умолчанию)

Оболочка Korn (ksh), написанная Дэвидом Корном на основе исходного кода Bourne Shell. [8] был промежуточным путём между оболочкой Bourne и C. оболочкой Его синтаксис был в основном заимствован из оболочки Bourne, а функции управления заданиями напоминали функции оболочки C. Функциональность оригинальной оболочки Korn Shell (известной как ksh88 с года ее появления) была использована в качестве основы для стандарта оболочки POSIX . Более новая версия, ksh93, имеет открытый исходный код с 2000 года и используется в некоторых дистрибутивах Linux . Клон ksh88, известный как pdksh, является оболочкой по умолчанию в OpenBSD.

Шили Борн Шелл

[ редактировать ]

Йорга Шиллинга включает в себя три производных от Bourne Shell. Schily-Tools [9]

Отношения с другими оболочками

[ редактировать ]

оболочка C

[ редактировать ]

Билл Джой , автор оболочки C , раскритиковал оболочку Bourne как недружественную для интерактивного использования, [10] задача, в решении которой сам Стивен Борн признал превосходство оболочки C. Борн, однако, заявил, что его оболочка превосходит возможности написания сценариев и доступна в любой системе Unix. [11] а Том Кристиансен также раскритиковал оболочку C как непригодную для написания сценариев и программирования. [12]

Альмквистские снаряды

[ редактировать ]

Из-за проблем с авторскими правами, связанными с оболочкой Bourne Shell, поскольку она использовалась в исторических выпусках CSRG BSD, Кеннет Альмквист разработал клон Bourne Shell, известный некоторым как оболочка Almquist и доступный по лицензии BSD , который используется сегодня в некоторых BSD. потомков и в ситуациях с нехваткой памяти. Оболочка Almquist была перенесена на Linux, а порт переименован в оболочку Debian Almquist , или тире. Эта оболочка обеспечивает более быстрое выполнение стандартных sh (и стандарт POSIX sh, в современных потомках) скрипты с меньшим объемом памяти , чем его аналог Bash. Его использование имеет тенденцию выявлять башизмы — предположения, ориентированные на bash, сделанные в сценариях, предназначенных для работы на sh.

Другие снаряды

[ редактировать ]
  • Bash ( оболочка Bourne-Again ) была разработана в 1989 году для проекта GNU и включает в себя функции оболочки Bourne, csh и ksh. Он должен быть POSIX-совместимым.
  • rc был создан в Bell Labs Томом Даффом в качестве замены sh для версии 10 Unix . Это оболочка по умолчанию для Plan 9 от Bell Labs . Он был перенесен в UNIX как часть Plan 9 из User Space .
  • Оболочка Z , разработанная Полом Фалстадом в 1990 году, представляет собой расширенную оболочку Bourne с большим количеством улучшений, включая некоторые функции Bash , ksh и tcsh .

Использование

[ редактировать ]

Оболочка Bourne когда-то была стандартной для всех фирменных Unix систем , хотя исторически в системах на базе BSD было много сценариев, написанных на csh . В основе POSIX sh синтаксиса, сценарии оболочки Bourne обычно можно запускать с помощью Bash или Dash в Linux или других Unix-подобных системах.

См. также

[ редактировать ]
  1. ^ https://www.bsdcan.org/2015/schedule/events/612.en.html Основной доклад Стивена Борна для BSDCan 2015
  2. Перейти обратно: Перейти обратно: а б Макилрой, доктор медицины (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Лаборатории Белла. 139. Архивировано (PDF) из оригинала 4 мая 2014 года.
  3. ^ «А-Я языков программирования: оболочка Bourne, или sh» . www.computerworld.com.au . Архивировано из оригинала 11 января 2010 года . Проверено 6 марта 2009 г.
  4. ^ Борн, Стив (12 января 1979 г.). «mac.h — макросы, используемые Борном для структурирования C, например Algol68C» . Корпорация AT&T . Проверено 9 сентября 2006 г.
  5. ^ Лэндон Курт Нолл ; Саймон Купер; Питер Сибах и Леонид А. Брухис (2004). «Часто задаваемые вопросы IOCCC – Вопросы и ответы: Как возникла IOCCC?» . ioccc.org . Проверено 9 сентября 2006 г.
  6. ^ «что это за оболочка» . www.in-ulm.de .
  7. ^ «Традиционная семья раковин Борнов / история и развитие» . www.in-ulm.de .
  8. ^ Корн, Дэвид Г. (26 октября 1994 г.), «ksh - расширяемый язык высокого уровня» , Труды симпозиума USENIX 1994 г. по языкам очень высокого уровня , Ассоциация USENIX , получено 5 февраля 2015 г. , Вместо того, чтобы изобретать новый скриптовый язык, мы создали систему ввода форм путем изменения оболочки Bourne, добавляя при необходимости встроенные команды.
  9. ^ «Schily Bourne Shell — современный расширенный и совместимый с POSIX исходный код Bourne Shell, поддерживаемый Йоргом Шиллингом» . Шили-Инструменты .
  10. ^ Введение в оболочку C. Архивировано 13 июля 2018 года в Wayback Machine Биллом Джоем . [ нужна страница ]
  11. ^ Борн, Стивен Р. (октябрь 1983 г.). «Оболочка Unix» . БАЙТ . п. 187 . Проверено 30 января 2015 г.
  12. ^ Том Кристиансен (28 сентября 1995 г.). «Программирование Csh считается вредным» . Проверено 17 февраля 2014 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b05a13960ece4f6404751bfdb4738245__1716236580
URL1:https://arc.ask3.ru/arc/aa/b0/45/b05a13960ece4f6404751bfdb4738245.html
Заголовок, (Title) документа по адресу, URL1:
Bourne shell - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)