Автор (ы) оригинала | Дэвид Корн |
---|---|
Первый выпуск | 1983 [1] [2] |
Окончательный релиз | 93u + / 1 августа 2012 г . |
Предварительный выпуск | 93в- / 24 декабря 2014 г . |
Репозиторий | github |
Написано в | C |
Операционная система | Unix и Unix-подобные (например, Linux и macOS ; также работает в Windows 10 [3] ) |
Доступно в | английский |
Тип | Оболочка Unix |
Лицензия |
|
Веб-сайт | www |
Разработчики) | Куртис Райдер, Ситешвар Вашишт, сообщество |
---|---|
Окончательный релиз | 2020/10 октября 2019 г . |
Репозиторий | github |
Предшественник | 93в- |
Разработчики) | Мартин Деккер, сообщество |
---|---|
Репозиторий | github |
Предшественник | 93u + |
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)
- динамический поиск функций
- математические функции
- подмена процесса и перенаправление процесса
- Выражения, подобные C-языку
- улучшенные ориентированные на выражения циклы for и while
- динамическая расширяемость (динамически загружаемых) встроенных команд (начиная с ksh93 )
- ссылочные переменные
- иерархически вложенные переменные
- переменные могут иметь связанные с ними функции-члены
- объектно-ориентированное программирование (начиная с ksh93t )
- переменные могут быть объектами с переменными-членами (под-) и методами-членами
- методы объекта вызываются с именем переменной объекта, за которым следует (после символа точки) имя метода
- вызываются специальные методы объекта: инициализация или присвоение объекта, отказ от объекта (не установлен )
- доступен состав и агрегирование, а также форма наследования
История [ править ]
KornShell изначально была проприетарной программой . В 2000 году исходный код был выпущен под лицензией, характерной для AT&T, но с момента выпуска ksh93q в начале 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 года. В конечном итоге эта работа была взята на себя в основном Red Hat в 2017 году (из-за запросов клиентов) и привела к окончательному первоначальному выпуску ksh2020 [19] осенью 2019 года. В этом первоначальном выпуске (хотя и исправлено несколько предыдущих проблем со стабильностью) были обнаружены некоторые незначительные поломки и проблемы совместимости. [20] В марте 2020 года AT&T решила отменить изменения сообщества, спрятать их в ветке и перезапустить с ksh93u +., поскольку изменения были слишком широкими и слишком сфокусированными на ksh, чтобы компания могла их внедрить в проект в режиме обслуживания. [21] [22] Разработка исправлений продолжается в ветви ksh93u + m на основе последнего стабильного выпуска AT&T ( ksh93u + 2012-08-01). [23]
Основные вклады в основную ветку программного обеспечения [ править ]
Для целей приведенных ниже списков основная программная ветвь KSH определяется как исходная программа, начиная с июля 1983 года и вплоть до выпуска KSH2020 в конце 2019 года. Продолжается разработка последующих версий (ветвей) KSH. разделились на разные группы начиная с 2020 года и не рассматриваются ниже.
основные индивидуальные участники [ править ]
Ниже перечислены их вклады в примерно возрастающем хронологическом порядке:
- Дэвид Г. Корн (AT&T Bell Laboratories, AT&T Laboratories и Google; и создатель)
- Гленн С. Фаулер (AT&T Bell Laboratories, AT&T Laboratories)
- Кием-Фонг Во (AT&T Bell Laboratories, AT&T Laboratories)
- Адам Эдгар (AT&T Bell Laboratories)
- Майкл Т. Вич (AT&T Bell Laboratories)
- Патрик Д. Салливан (AT&T Bell Laboratories)
- Маттис Н. Мельхиор (AT&T Network Systems International)
- Карстен-Флейшер (Omnium Software Engineering)
- Бойер-Мур
- Сайешвар Вашишт (Red Hat)
- Куртис Райдер
консультант по интеграции [ править ]
- Роланд Майнц
основные корпоративные участники [ править ]
Ниже перечислены их вклады в примерно возрастающем хронологическом порядке:
- AT&T Bell Laboratories
- AT&T Network Systems International
- AT&T Laboratories (теперь AT&T Labs)
- Омниум Программная инженерия
- Корпорация Oracle
- Красная шляпа
пожертвованные корпоративные ресурсы [ править ]
Помимо основных корпораций-вкладчиков (перечисленных выше), некоторые компании внесли бесплатные ресурсы в развитие KSH. Они перечислены ниже (без определенного порядка).
- GitHub
- Трэвис Си
- Покровительство
Варианты [ править ]
С 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 . [26] По этой традиции MorphOS использует pdksh в своем SDK.
- Оболочка MKS Korn от MKS Inc. - проприетарная реализация языка KornShell от Microsoft Windows Services для UNIX (SFU) до версии 2.0; согласно Дэвиду Корну, оболочка MKS Korn не была полностью совместима с KornShell в 1998 году. [27] [28] В SFU версии 3.0 Microsoft заменила оболочку MKS Korn новой POSIX.2-совместимой оболочкой в составе Interix . [29]
- KornShell включен в UWIN , пакет совместимости с Unix, разработанный Дэвидом Корном. [30]
См. Также [ править ]
- Сравнение компьютерных оболочек
- Список команд Unix
- Тест программы
Ссылки [ править ]
- ^ a b Рон Гомес (9 июня 1983 г.). «Расписание конференции USENIX в Торонто (предварительно)» . Группа новостей : net.usenix . Проверено 29 декабря 2010 года .
- ^ Б Гай Харрис (10 октября 1983). "csh вопрос" . Группа новостей : net.flame . Проверено 29 декабря 2010 года .
- ^ «Korn Shell Launcher для подсистемы Windows для Linux« Musings » . blog.fpmurphy.com . Источник 2021-01-29 .
- ^ a b «Архивная копия» . Архивировано из оригинала на 2018-11-14 . Проверено 10 декабря 2018 .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ "Архивная копия" . Архивировано из оригинала на 2012-02-06 . Проверено 10 июня 2010 .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ a b "MirBSD Korn Shell" . Mirbsd.org . Проверено 10 декабря 2018 .
- ^ Корн, Дэвид Г. (26 октября 1994 г.), «ksh - расширяемый язык высокого уровня» , Материалы симпозиума по языкам очень высокого уровня USENIX 1994 г. , Ассоциация USENIX , получено 5 февраля 2015 г.
Вместо изобретения нового языка сценариев , мы создали систему ввода формы, изменив оболочку Bourne, добавив при необходимости встроенные команды.
- ^ Bolsky, Моррис I .; Корн, Дэвид Г. (1989). «Благодарности». Командный язык и язык программирования KornShell . Энглвуд Клиффс, Нью-Джерси: Prentice Hall. стр. xii. ISBN 0-13-516972-0.
- ^ «2020.0.0: стабильный выпуск ksh-2020.0.0» . GitHub . Источник 2021-01-29 .
Примечание: ksh2020 не поддерживается и не поддерживается
- ^ «ksh 2020.0.0 CHANGELOG» . GitHub . 2021-01-29.
- ^ "Традиционная семья оболочки Борна / история и развитие" . In-ulm.de . Проверено 10 декабря 2018 .
- ^ «Это сайт загрузки программного обеспечения AT&T Software Technology от компании AT&T Research. Коллекция программного обеспечения с открытым исходным кодом AT&T AST содержит обзор и практическое программное обеспечение UNIX многократного использования». Github.com . 10 декабря 2018 . Проверено 10 декабря 2018 .
- ^ Билл Розенблатт; Арнольд Роббинс (2002). Изучение оболочки Корна (2-е изд.). O'Reilly Media, Inc., стр. Viii – ix. ISBN 978-0-596-00195-7.
- ^ J. Стивен Pendergrast (1995). Графическое программирование Desktop KornShell . Эддисон-Уэсли. п. 359. ISBN. 978-0-201-63375-7.
- ^ Кейси Кэннон; Скотт Трент; Кэролайн Джонс (1999). Просто AIX 4.3 . Prentice Hall PTR. п. 21. ISBN 978-0-13-021344-0.
- ^ «Центр знаний IBM» . Ibm.com . Проверено 10 декабря 2018 .
- ^ «Центр знаний IBM» . Ibm.com . Проверено 10 декабря 2018 .
- ^ "Соответствие UNIX95" . Uw714doc.sco.com . Проверено 10 декабря 2018 .
- ^ "кш2020" . GitHub . 26 февраля 2021 г.
- ^ "Журнал изменений ksh2020" . GitHub . 29 мая 2020.
- ^ «Перемотка этого репо и поощрение сообщества · Проблема № 1466 · att / ast» . GitHub .
- ^ "segfault с расширенными глобусами · # 1464 · att / ast" . GitHub .
- ^ " кш 93у + м " . GitHub .
- ^ "Окш на GitHub" . GitHub . 1 августа 2020.
- ^ "Архивная копия" . Архивировано из оригинала на 2014-07-28 . Проверено 28 июля 2014 .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ http://aminet.net/package/util/shell/SKsh21
- ^ «Дэвид Корн говорит все» . Slashdot . Проверено 22 октября 2009 .
- ^ "Джерри Фельдман - участник конференции USENIX NT / LISA NT" . Lists.blu.org . Проверено 22 октября 2009 .
- ^ «Службы Windows для UNIX версии 3.0» . Technet.microsoft.com . Проверено 22 октября 2009 .
- ^ Анатоль 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 (мкш)
- - Руководство по основным командам MirOS BSD i386