stringtranslate.com

KornShell

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

Функции

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

История

Korn Shell, работающая на Windows Services для UNIX

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

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

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

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

Оригинальная оболочка KornShell, ksh88 , стала оболочкой по умолчанию в AIX в версии 4, [13] [14] а ksh93 была доступна отдельно. [15]

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

Дистрибутив ksh93 претерпел менее стабильную судьбу после того, как авторы покинули AT&T около 2012 года на стабильной версии ksh93u+ . Основные авторы продолжали работать над веткой ksh93v- beta примерно до 2014 года. В конечном итоге эта работа была продолжена в первую очередь Red Hat в 2017 году (из-за запросов клиентов) и привела к окончательному первоначальному выпуску ksh2020 [17] осенью 2019 года. Этот первоначальный выпуск (хотя и исправил несколько предыдущих проблем со стабильностью) привел к некоторым незначительным проблемам сбоев и совместимости. [18] В марте 2020 года AT&T решила откатить изменения сообщества, спрятать их в ветке и перезапустить с ksh93u+ , поскольку изменения были слишком обширными и слишком сфокусированными на ksh, чтобы компания могла включить их в проект в режиме обслуживания. [19] [20] Разработка исправлений ошибок продолжается в ветке ksh93u+m , основанной на последнем стабильном релизе AT&T ( ksh93u+ 2012-08-01). [21] ksh2020 [22] был выпущен как «основной релиз по нескольким причинам» [23] , таким как удаление поддержки EBCDIC , прекращение поддержки бинарных плагинов, написанных для ksh93u+ , и удаление некоторых сломанных математических функций, но никогда не поддерживался и не поддерживался AT&T (даже в первоначальную дату выпуска).

Основной вклад в основную отрасль программного обеспечения

Для целей списков ниже основная программная ветвь KSH определяется как исходная программа, датируемая с июля 1983 года и до выпуска KSH2020 в конце 2019 года. Продолжающаяся разработка последующих версий (ветвей) KSH разделилась на разные группы, начиная с 2020 года, и ниже не рассматривается.

Основные индивидуальные участники

Ниже приведен список в примерном хронологическом порядке возрастания их вклада:

Консультант по интеграции

Основные корпоративные вкладчики

Ниже приведен список в примерном хронологическом порядке возрастания их вклада:

Пожертвованные корпоративные ресурсы

Помимо основных крупных корпораций-доноров (перечисленных выше), некоторые компании внесли бесплатные ресурсы в разработку KSH. Они перечислены ниже (в алфавитном порядке):

Варианты

Существует несколько форков и клонов KornShell:

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

Ссылки

  1. ^ ab Ron Gomes (9 июня 1983 г.). "Расписание конференции USENIX в Торонто (предварительное)". Группа новостей : net.usenix . Получено 29 декабря 2010 г.
  2. ^ ab Guy Harris (10 октября 1983 г.). "csh question". Группа новостей : net.flame . Получено 29 декабря 2010 г.
  3. ^ "Korn Shell Launcher for Windows Subsystem for Linux « Musings». blog.fpmurphy.com . Получено 29.01.2021 .
  4. ^ ab "ast-open package". AT&T Research. nd Архивировано из оригинала 1 октября 2015 г. Получено 19 декабря 2022 г.
  5. ^ ab "MirBSD Korn Shell". Mirbsd.org . Получено 10 декабря 2018 г. .
  6. ^ Korn, David G. (26 октября 1994 г.), «ksh — расширяемый язык высокого уровня», Труды симпозиума по языкам очень высокого уровня USENIX 1994 г. , Ассоциация USENIX , получено 5 февраля 2015 г. Вместо того чтобы изобретать новый язык сценариев, мы построили систему ввода форм, изменив оболочку Bourne, добавив встроенные команды по мере необходимости.
  7. ^ Bolsky, Morris I.; Korn, David G. (1989). "Благодарности". Язык команд и программирования KornShell. Englewood Cliffs, NJ: Prentice Hall. стр. xii. ISBN 0-13-516972-0.
  8. ^ "традиционная семья Борн Шелл / история и развитие". In-ulm.de . Получено 10 декабря 2018 г. .
  9. ^ "Это сайт загрузки программного обеспечения AT&T Software Technology ast от AT&T Research. Коллекция программного обеспечения AT&T AST OpenSource содержит обзор и практическое повторно используемое программное обеспечение UNIX". Github.com . 10 декабря 2018 г. . Получено 10 декабря 2018 г. .
  10. ^ Билл Розенблатт; Арнольд Роббинс (2002). Learning the Korn Shell (2-е изд.). O'Reilly. стр. viii–ix. ISBN 978-0-596-00195-7.
  11. ^ Pendergrast, J. Stephen (1995). Графическое программирование KornShell для настольных компьютеров. Addison-Wesley. стр. 359. ISBN 978-0-201-63375-7.
  12. ^ Кейси Кэннон; Скотт Трент; Кэролин Джонс (1999). Simply AIX 4.3 . Prentice Hall. стр. 21. ISBN 978-0-13-021344-0.
  13. ^ "IBM Knowledge Center". IBM . Получено 10 декабря 2018 г. .
  14. ^ "IBM Knowledge Center". IBM . Получено 10 декабря 2018 г. .
  15. ^ "Соответствие UNIX95". Uw714doc.sco.com . Получено 10 декабря 2018 г. .
  16. ^ "ksh2020". GitHub . 26 февраля 2021 г.
  17. ^ "ksh2020 changelog". GitHub . 29 мая 2020 г.
  18. ^ "Перематываем этот репозиторий и призываем сообщество · Проблема № 1466 · att/ast". GitHub .
  19. ^ "segfault с расширенными glob · #1464 · att/ast". GitHub .
  20. ^ "ksh 93u+m". GitHub . 17 ноября 2021 г.
  21. ^ "2020.0.0: Стабильный выпуск ksh-2020.0.0". GitHub . Получено 29.01.2021 . Примечание: ksh2020 не поддерживается и не обслуживается
  22. ^ "ksh 2020.0.0 CHANGELOG". GitHub . 2021-01-29.
  23. ^ "oksh на GitHub". GitHub . 1 августа 2020 г.
  24. ^ "loksh на GitHub". GitHub . 15 октября 2021 г.
  25. ^ "5.11. Переход от PDKSH к MKSH". Архивировано из оригинала 2014-07-28 . Получено 2014-07-28 .
  26. ^ "Aminet - util/Shell/SKsh21.LZH".
  27. ^ "David Korn Tells All". Slashdot . Получено 22 октября 2009 г.
  28. ^ "Джерри Фельдман — участник конференции USENIX NT/LISA NT". Lists.blu.org. 29 августа 1998 г. Получено 22 октября 2009 г.
  29. ^ "Службы Windows для UNIX версии 3.0". Technet.microsoft.com . Получено 2009-10-22 .
  30. ^ Анатоль Олчак (2001). Оболочка Korn: руководство по программированию в Unix и Linux. Addison-Wesley Professional. стр. 4. ISBN 978-0-201-67523-8.
  31. ^ Натали, Рон (2023-01-30). ""Управление заданиями и другие терминальные забавы"". Из списка рассылки TUHS ("The Unix Heritage Society"). Архивировано из оригинала 2024-07-07 . Получено 2024-07-07 . ... Управление заданиями Беркли было интересным хаком. Для нас в BRL проблема была в том, что я абсолютно ненавидел синтаксис оболочки C. Оболочка Korn еще не ушла от AT&T, поэтому я потратил время на выяснение того, как это на самом деле работает в оболочке C (не очень хорошо документированной), в основном путем проверки, а затем повторно реализовал ее в оболочке Bourne Shell (для этого мы использовали версию исходного кода System V). Я все еще не мог получить поддержку в BRL для использования оболочки Bourne, потому что к тому времени вышел tcsh с редактированием командной строки. Поэтому я вернулся к исходникам оболочки. К этому времени вышел 5R2, поэтому я схватил исходный код оболочки [ sic ], который. [...] Я переделал редактирование командной строки в стиле emacs в оболочку. Впоследствии у меня состоялся приятный разговор с Дэвидом Корном из USENIX, которые, вероятно, на тот момент были двумя наиболее знакомыми с внутренними элементами управления заданиями оболочки Bourne. Я также посидел с ребятами, которые писали либо bash, либо pdksh (не помню, что именно), и объяснили, как это работает [ sic ]. ... Годы спустя я ушел из BRL, провел три года в качестве администратора Ратгерса и работал в небольшом стартапе в Вирджинии. Там была рабочая станция MIPS. Я корпел над ней, используя ed... Не думая об этом, я попытался извлечь фоновое задание, набрав "fg". К моему удивлению, оболочка выдала "Управление заданиями не включено". Хм, говорю я. Похоже на мое сообщение об ошибке. "set -J" я набираю. "Управление заданиями включено". Эй! Это моя оболочка. Оказалось, что Дуг Гвин поместил мои модификации на свою дистрибутивную ленту «System V on BSD», и они попали в кодовую базу Mach, и поэтому все производные от Mach системы в конечном итоге содержали их.

Дальнейшее чтение

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