Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

KornShell ( ksh) - это оболочка Unix, которая была разработана Дэвидом Корном в Bell Labs в начале 1980-х и анонсирована на USENIX 14 июля 1983 года. [1] [2] Первоначальная разработка была основана на исходном коде оболочки Bourne . [7] Другими ранними участниками были разработчики Bell Labs Майк Вич и Пэт Салливан, написавшие код режимов редактирования строк в стиле Emacs и vi , соответственно. [8] KornShell обратно совместим с оболочкой Bourne и включает многие функции оболочки C , вдохновленные запросами пользователей Bell Labs.

KornShell, то есть ksh2020 [9], «основной выпуск по нескольким причинам» [10] (например, удаление поддержки EBCDIC , отказ от поддержки бинарных плагинов, написанных для ksh93u + и удаление некоторых неработающих математических функций), был выпущен AT&T, но не поддерживается и не поддерживается (AT&T; даже в дату выпуска не было).

Дизайн [ править ]

KornShell соответствует POSIX.2 , оболочке и утилитам , интерпретатору команд (IEEE Std 1003.2-1992). Основные различия между KornShell и традиционной оболочкой Bourne включают:

  • Управление заданий , команда сглаживание , и история команд разработаны после того, как соответствующие C оболочке функций. Управление заданиями было добавлено в Bourne Shell в 1989 г. [11]
  • Выбор из трех стилей редактирования командной строки на основе vi , Emacs и Gosling Emacs .
  • Ассоциативные массивы и встроенные с плавающей запятой арифметических операций (только в ksh93 версии Kornshell).
  • Динамическая расширяемость встроенных команд ( начиная с ksh93 ).

История [ править ]

Оболочка Korn, работающая в службах Windows для UNIX

KornShell изначально была проприетарной программой . В 2000 году исходный код был выпущен под лицензией, характерной для AT&T, но с момента выпуска 93q в начале 2005 года он был лицензирован по лицензии Eclipse Public License . [4] KornShell доступен как часть коллекции программного обеспечения с открытым исходным кодом AT&T Software Technology (AST). Поскольку KornShell изначально был доступен только по проприетарной лицензии от AT&T, был создан ряд бесплатных альтернатив с открытым исходным кодом. К ним относятся pdksh , mksh , bash и zsh .

Функциональность исходной оболочки KornShell, ksh88 , использовалась в качестве основы для стандартного POSIX.2 , Shell и утилит, интерпретатора команд (IEEE Std 1003.2-1992.)

Некоторые поставщики по-прежнему поставляют свои собственные версии более старого варианта ksh88 , иногда с расширениями. ksh93 поддерживается на GitHub . [12]

Как «Desktop KornShell» ( dtksh ), ksh93 распространяется как часть Common Desktop Environment . [13] Эта версия также обеспечивает отображение на уровне оболочки для виджетов Motif . Он был задуман как конкурент Tcl / Tk . [14]

Исходная оболочка KornShell, ksh88 , стала оболочкой по умолчанию в AIX в версии 4, [15] [16], причем ksh93 доступен отдельно. [17]

UnixWare 7 включает как ksh88, так и ksh93 . Оболочка Korn по умолчанию - ksh93 , которая поставляется как / usr / bin / ksh , а более старая версия доступна как / usr / bin / ksh88 . [18] UnixWare также включает dtksh при установке CDE .

Дистрибутив ksh93 претерпел менее стабильную судьбу после того, как авторы покинули AT&T примерно в 2012 году на стабильной версии ksh93u +. Авторы продолжали работать над веткой ksh93v-beta примерно до 2014 года, когда несколько разработчиков сообщества по существу «взяли на себя» и продолжили работу над созданием сильно отремонтированного ksh2020 [19], в котором также были проблемы с поломками и совместимостью. [20] В марте 2020 года AT&T решила откатить изменения сообщества, спрятать их в ветке и перезапустить с ksh93u +, поскольку изменения были слишком широкими и слишком ориентированными на ksh, чтобы компания могла их внедрить в проект в режиме обслуживания. [21] [22] Продолжается разработка исправлений ошибок в ветви ksh 93u + m на основе последнего стабильного выпуска AT&T (93u + 2012-08-01). [23]

Варианты [ править ]

С KornShell связано несколько программных продуктов:

  • dtksh  - форк ksh93, входящий в состав CDE .
  • tksh  - форк ksh93 , обеспечивающий доступ к инструментарию виджетов Tk .
  • oksh  - портированная версия KornShell из OpenBSD , предназначенная для максимальной переносимости [24] между операционными системами. Он использовался в качестве оболочки по умолчанию в DeLi Linux 7.2.
  • mksh  - бесплатная реализация языка KornShell, созданная на основе OpenBSD pdksh . Первоначально он был разработан для MirOS BSD и лицензируется на разрешительных условиях (но не является общественным достоянием); в частности, Лицензия МирОС . [6] Помимо использования в BSD, этот вариант заменил pdksh в Debian, [25] и является оболочкой по умолчанию в Android.
  • SKsh  - разновидность AmigaOS, которая предоставляет несколько специфичных для Amiga функций, таких как совместимость с ARexx .
  • Оболочка MKS Korn от MKS Inc. - проприетарная реализация языка KornShell от Microsoft Windows Services для UNIX (SFU) до версии 2.0; согласно Дэвиду Корну, оболочка MKS Korn не была полностью совместима с KornShell в 1998 году. [26] [27] В SFU версии 3.0 Microsoft заменила оболочку MKS Korn новой POSIX.2-совместимой оболочкой в ​​составе Interix . [28]
  • KornShell включен в UWIN , пакет совместимости с Unix, разработанный Дэвидом Корном. [29]

См. Также [ править ]

  • Сравнение компьютерных оболочек
  • Список команд Unix
  • Тест программы

Ссылки [ править ]

  1. ^ a b Рон Гомес (9 июня 1983 г.). «Расписание конференции USENIX в Торонто (предварительно)» . Группа новостей :  net.usenix . Проверено 29 декабря 2010 года .
  2. ^ Б Гай Харрис (10 октября 1983). "csh вопрос" . Группа новостейnet.flame . Проверено 29 декабря 2010 года .
  3. ^ «Korn Shell Launcher для подсистемы Windows для Linux« Musings » . blog.fpmurphy.com . Источник 2021-01-29 .
  4. ^ a b «Архивная копия» . Архивировано из оригинала на 2018-11-14 . Проверено 10 декабря 2018 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  5. ^ a b "MirBSD Korn Shell" . Mirbsd.org . Проверено 10 декабря 2018 .
  6. ^ Корн, Дэвид Г. (26 октября 1994 г.), «ksh - расширяемый язык высокого уровня» , Материалы симпозиума по языкам очень высокого уровня USENIX 1994 , Ассоциация USENIX , получено 5 февраля 2015 г. , Вместо изобретения нового языка сценариев , мы создали систему ввода формы, изменив оболочку Bourne, добавив при необходимости встроенные команды.
  7. ^ Bolsky, Моррис I .; Корн, Дэвид Г. (1989). «Благодарности». Командный язык и язык программирования KornShell . Энглвуд Клиффс, Нью-Джерси: Prentice Hall. стр. xii. ISBN 0-13-516972-0.
  8. ^ «2020.0.0: стабильный выпуск ksh-2020.0.0» . GitHub . Источник 2021-01-29 . Примечание: ksh2020 не поддерживается и не поддерживается
  9. ^ «ksh 2020.0.0 CHANGELOG» . GitHub . 2021-01-29.
  10. ^ "Традиционная семья оболочки Борна / история и развитие" . In-ulm.de . Проверено 10 декабря 2018 .
  11. ^ «Это сайт загрузки программного обеспечения AT&T Software Technology от компании AT&T Research. Коллекция программного обеспечения с открытым исходным кодом AT&T AST предоставляет обзор и практическое программное обеспечение UNIX многократного использования». Github.com . 10 декабря 2018 . Проверено 10 декабря 2018 .
  12. ^ Билл Розенблатт; Арнольд Роббинс (2002). Изучение оболочки Корна (2-е изд.). O'Reilly Media, Inc., стр. Viii – ix. ISBN 978-0-596-00195-7.
  13. ^ J. Стивен Pendergrast (1995). Графическое программирование Desktop KornShell . Эддисон-Уэсли. п. 359. ISBN. 978-0-201-63375-7.
  14. ^ Кейси Кэннон; Скотт Трент; Кэролайн Джонс (1999). Просто AIX 4.3 . Prentice Hall PTR. п. 21. ISBN 978-0-13-021344-0.
  15. ^ «Центр знаний IBM» . Ibm.com . Проверено 10 декабря 2018 .
  16. ^ «Центр знаний IBM» . Ibm.com . Проверено 10 декабря 2018 .
  17. ^ "Соответствие UNIX95" . Uw714doc.sco.com . Проверено 10 декабря 2018 .
  18. ^ "кш2020" . GitHub . 26 февраля 2021 г.
  19. ^ "Журнал изменений ksh2020" . GitHub . 29 мая 2020.
  20. ^ «Перемотка этого репо и поощрение сообщества · Проблема № 1466 · att / ast» . GitHub .
  21. ^ "segfault с расширенными глобусами · # 1464 · att / ast" . GitHub .
  22. ^ "кш 93у + м" . GitHub .
  23. ^ "Окш на GitHub" . GitHub . 1 августа 2020.
  24. ^ "Архивная копия" . Архивировано из оригинала на 2014-07-28 . Проверено 28 июля 2014 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  25. ^ «Дэвид Корн говорит все» . Slashdot . Проверено 22 октября 2009 .
  26. ^ "Джерри Фельдман - участник конференции USENIX NT / LISA NT" . Lists.blu.org . Проверено 22 октября 2009 .
  27. ^ «Службы Windows для UNIX версии 3.0» . Technet.microsoft.com . Проверено 22 октября 2009 .
  28. ^ Анатоль Olczak (2001). Оболочка Korn: руководство по программированию для Unix и Linux . Эддисон-Уэсли Профессионал. п. 4. ISBN 978-0-201-67523-8.

Дальнейшее чтение [ править ]

  • Моррис И. Болски; Дэвид Г. Корн (1995). Новый язык команд и программирования KornShell . Prentice Hall PTR. ISBN 978-0-13-182700-4.
  • Дэвид Г. Корн, Чарльз Дж. Нортрап и Джеффри Корн . Новая оболочка KornShell - ksh93 , Linux Journal , выпуск 27, июль 1996 г.

Внешние ссылки [ править ]

  • Справочная страница ksh93 на Wayback Machine (архивировано 5 июня 2013 г.)
  • Справочная страница ksh88 на Wayback Machine (архивировано 5 ноября 2015 г.)
  • Оболочка Public Domain Korn (pdksh) на Wayback Machine (архивировано 21 октября 2016 г.)
  • MirBSD Korn Shell (мкш)
  • mksh(1) -  Руководство по основным командам MirOS BSD i386