stringtranslate.com

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

Оболочка Bourne ( 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 включают в себя:

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

На стиль программирования Стивена Борна повлиял его опыт работы с компилятором ALGOL 68C [2] , над которым он работал в Кембриджском университете . В дополнение к стилю, в котором была написана программа, Борн повторно использовал части ALGOL 68 и предложения « (используя вместо ) в обычном синтаксисе оболочки Unix Bourne. Более того, хотя оболочка v7 написана на C — Борн воспользовался некоторыми макросами [4] , чтобы придать исходному коду C разновидность ALGOL 68. Эти макросы (вместе с командой Finger , распространяемой в Unix версии 4.2BSD ) вдохновили на проведение Международного конкурса запутанного кода C (IOCCC) .if ~ then ~ elif ~ then ~ else ~ ficase ~ in ~ esacfor/while ~ do ~ oddoneod

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

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

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

Варианты

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

Duplex Multi-Environment Real-Time ( DMERT ) — это гибридная операционная система с разделением времени и режимом реального времени, разработанная в 1970-х годах в лаборатории Bell Labs Indian Hill в Нейпервилле, штат Иллинойс, с использованием моментального снимка 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.

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

Schily-Tools Йорга Шиллинга включает в себя три производных от Bourne Shell. [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.

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

Применение

Оболочка 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. ^ «AZ языков программирования: оболочка 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 г.

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